DBeaver 是一款流行、开源的数据库管理工具以及 SQL 客户端,其功能强大,并且支持任何拥有 JDBC-Driver 的数据库(这意味着支持几乎所有数据库)。
其官网的介绍是这样的:
Free multi-platform database tool for developers, database administrators, analysts and all people who need to work with databases. Supports all popular databases: MySQL, PostgreSQL, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access, Teradata, Firebird, Apache Hive, Phoenix, Presto, etc.
很多 TDengine 的用户,经常问到如何使用 DBeaver 来连接、管理 TDengine。本文将通过 22.1.2 版本的 DBeaver 详细进行说明。
前置条件
- DBeaver 依赖 Java (JDK) 11 ,不过其安装包中已包含。可选安装 Maven、Git。
- 已安装并启动了 TDengine。
- 若使用 TSDBDriver 驱动类连接 TDengine,请在本地安装 TDengine 客户端。
- 若使用 RestfulDriver 驱动类连接 TDengine,请确保 taosAdapter 已经正常运行。
配置
- 可以克隆 DBeaver 在 GitHub 上的源码,执行
mvn package
,也可以直接下载打包好的安装包。此处选择直接下载安装包。 - 在 GitHub DBeaver 仓库的 Releases 处下载对应版本的 DBeaver,比如系统为 macOS,处理器芯片是 M1 ,此处下载 dbeaver-ce-22.1.2-macos-aarch64.dmg 进行安装。
- 点击数据库标签,选择驱动管理器:

- 新建驱动,选择编译好的 dist-jar 驱动包,驱动包可以下载或者自行编译、打包,可参考 IDEA 博客:

- 添加后点击找到类,此处使用 RESTful 驱动类演示(注意:若使用
com.taosdata.jdbc.TSDBDriver
驱动类,则需要安装 TDengine 客户端):

- 填写一下驱动名称,简单填下配置(需要在 hosts 文件上添加连接串内域名的解析):

- 点击新建连接,搜索配置好的驱动名称,点击后进入下一步:

- 输入密码后,点击“测试连接”:

验证
- 连接成功后,界面左侧能看到刷新出来的数据库(database),点击特定的表可以查看表的结构及数据:

- 点击界面左上方的新建 SQL 编辑器,默认,输入 SQL 进行验证。需要注意的是,RESTful 请求是无状态的,查询、写入需要在表名前带上数据库名。
- 2.X 版本中默认带 log 库,我们可以使用
SHOW log.stables;
查看包含哪些超级表后对特定表进行查询、调试:

- 可以看到有个超级表叫做 dnodes_info,执行
describe log.dnodes_info;
查看表结构:

- 再执行
select last_row(*) from log.dnodes_info group by dnode_id;
通过dnode_id
能分组查询各dnode_id
下的最新一条数据:

- 还有其他操作也可以测试,比如写入一条数据后进行查询:

好了,到这里我们就大功告成了。DBeaver 功能强大,其他常用功能还包括导入导出 SQL 脚本、配置表过滤器、建立数据库任务等,大家可以慢慢体验。
结尾语
感谢您阅读本篇博客,希望以上内容对您有帮助。您在使用 TDengine 这款 TIme-Series Database 的过程中,若遇到棘手的问题或对 TDengine 有改进意见,欢迎在 GitHub 上给我们提 Issue ,内容越详细越好,也可微信扫下方二维码加入社区,与大家进行交流 ~ 最后,感谢使用 TDengine!
