/Tiny-TDM

小巧易用的Tdengine GUI,v3版本,后期有需要会通过js脚本扩展兼容其他版本

Primary LanguageVueGNU General Public License v3.0GPL-3.0

开发原因,在使用官方的推荐的TdengineGUI遇到一些问题

  • 我们用的Tdengine3.1.1.0和3.2.3.0连不上了(有些人时候可以连上,不知道为啥)

  • 当数据库表名有大写会无法访问

  • 会卡顿,但官方不咋更新优化了

  • 安装包过大界面风格优点老旧

  • 个人感觉需要一个查看超级表下字表的可视化逻辑

一些想法

  • 如何解决版本兼容性差的问题

    不能采用原生的golang连接,跨版本会导致直接连接不上。采用的rest接口,但其实TdengineGUI也是采用的Rest API的方式为啥还是有版本问题?以及如何解决?

    目前看来v2和v3版本rest接口返回的响应码和数据类型有些许差异。

    解决方法采用动态加载脚本方式实现(目前做了部分,后期可以通过加载文件js脚本扩展),目前已实现v2和v3两个版本返回数据处理的js脚本。代码在frontend/version目录下,在输入连接时会让用户选择版本,后面请求数据会根据选择的版本调用不同版本的数据处理函数。

    v2版本返回

{ "status": "succ", "head": [ "name", "status" ], "data": [ [ "log", "ready" ] ], "rows": 1 }

    v3版本返回

{ "status": "succ", "head": [ "name", "status" ], "data": [ [ "log", "ready" ] ], "rows": 1 }

  • 如何当数据库表名有大写会无法访问的问题

    当数据库或表名有大写时能显示但是查询时因为没使用````转义会导致查询不到导致报错

    解决方法:执行sql时给数据库表名称都进行转义

  • 卡顿优化方面

    Tdengine数据库不同于mysql等关系型数据库存在有:表超多,数据量超大的问题,所以当表过多,数据查询范围过大会导致节点太多造成卡顿

    解决方法:对子表显示进行分页,数据显示进行分页,自定义查询返回结果进行限制

技术栈以及解决上述问题方案

技术 说明 Github地址 优点
wails 基于Golang桌面端开发框架 https://github.com/wailsapp/wailshttps://github.com/wailsapp/wails wails是相比于electron打包更小,好上手
Vue3 核心前端框架 https://github.com/vuejs/vue 大家都在用
arco 字节前端UI框架 https://github.com/arco-design/arco-design-vue 相比element plus易用,风格更好看

实现功能

建立连接

可以新建连接,查看连接详情和删除(没有更新,暂时没时间做)

img

数据库列表 可以查看数据库信息,暂时没提供删除(可以自行通过sql执行)

img

超级表列表 可以查看超级表列表,查询超级表,以及超级表信息,同时考虑到超级表会比较多提供了搜索功能

img

子表列表

可以查看子表列表,以及子表信息,同时考虑到子表会比较多提供了搜索功能,并进行了分页显示,避免字表过多卡顿 img

自定义Sql查询功能img

点击搜索框右边按钮进入自定义Sql查询功能