ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

TDengine 连接器全解析:WebSocket、原生连接与 REST API 的选型、安装与兼容矩阵

TDengine 连接器全解析:WebSocket、原生连接与 REST API 的选型、安装与兼容矩阵 数据库时序数据库物联网大数据实时分析云原生【免费下载链接】tdengineTDengine is an open source, high-performance, cloud native time-series database optimized for Internet of Things (IoT), Connected Cars, Industrial IoT and DevOps.项目地址https://gitcode.com/taosdata/tdengine点击查看免费下载TDengine 为开发者提供了覆盖 C/C、Java、Python、Go、Node.js、C#、Rust 等主流语言的官方连接器支持通过原生接口Native RPC、WebSocket 接口以及 REST API 三种方式访问 TDengine TSDB 集群。本文以官方开发者指南《Client Libraries》为核心系统梳理三种连接方式的工作原理、平台与版本兼容矩阵、特性支持差异以及客户端驱动taosc在 Linux / Windows / macOS 上的完整安装与验证流程帮助你在实际项目中快速做出连接方案选型并完成环境搭建。连接方式总览三种访问 TDengine 的途径TDengine TSDB 提供了丰富的应用开发接口。官方连接器覆盖 C/C、Java、Python、Go、Node.js、C# 和 Rust 七种语言社区开发者还贡献了 ADO.NET、Lua、PHP 等非官方连接器。所有连接器均支持通过原生接口和WebSocket 接口连接 TDengine TSDB 集群此外用户还可以直接调用 taosAdapter 提供的 REST API 完成数据写入与查询。下图展示了 TDengine 客户端与服务器之间三种连接方式的整体架构从架构图可以看出访问 TDengine TSDB 共有三条路径WebSocket 连接连接器通过 taosAdapter 组件提供的 WebSocket API 与 taosd 建立连接下文统称 WebSocket 连接。该方式提供兼容性保证——所有支持此连接方式的连接器均与 TDengine TSDB 3.3.6.0 及更高版本的服务端兼容。享受该保证需要满足各连接器的最低版本要求Rust 无特殊要求Java ≥ 3.6.0Go ≥ 3.7.0Pythontaos-ws-py≥ 0.6.1Node.js ≥ 3.2.2C# ≥ 3.1.7C/C/ODBC ≥ 3.3.6.0。官方推荐优先使用 WebSocket 连接。原生连接连接器通过客户端驱动 taosc 与服务器程序 taosd 建立直接连接下文统称 原生连接。REST API不使用连接器直接通过 HTTP 客户端调用 taosAdapter 组件提供的 REST API 与 taosd 通信下文统称 REST API。注意客户端驱动 taosc 内部包含 C 原生连接器和 WebSocket 连接器因此 C/C 语言开发的应用必须依赖客户端驱动 taosc。对于 WebSocket 连接与原生连接各连接器提供了相同或相近的数据库操作 API唯一细微差别在于连接初始化方式因此使用者在日常开发中几乎感知不到差异。两种连接方式的关键区别总结如下对比维度WebSocket 连接推荐原生连接客户端驱动安装除 C/C 与 ODBC 连接器外无需安装 taosc必须安装且版本与服务器一致版本兼容性提供兼容性保证无需保持客户端与服务端版本一致taosc 版本必须与服务器端 TDengine TSDB 一致云服务支持必须使用 WebSocket 连接云服务实例不支持连接云服务实例后续演进Go、C#、Java 的原生连接已弃用将于2027-01-01停止支持C/C、Python、Rust 原生连接继续支持重要迁移提示Go、C#、Java 连接器的原生连接已标记为弃用将于 2027-01-01 停止支持请提前迁移至 WebSocket 连接同样Java、Python、Go 的 REST 连接也已弃用将于同一日期停止支持请迁移到 WebSocket 连接。REST API 方式的限制也需要留意它只提供执行 SQL 的功能不支持参数绑定Parameter Binding和数据订阅TMQ。支持的平台与硬件架构TDengine 连接器覆盖广泛的硬件平台与开发环境包括 X64/X86/ARM64/ARM32/MIPS/LoongArch64或 Loong64等硬件平台以及 Linux/Win64/Win32/macOS 等开发环境。官方兼容性矩阵如下● 表示官方测试验证通过○ 表示非官方测试验证通过-- 表示未验证CPUX64 64bitX64 64bitX64 64bitARM64ARM64OSLinuxWin64macOSLinuxmacOSC/C●●●●●JDBC●●●●●Python●●●●●Go●●●●●NodeJs●●●●●C#●●○○○Rust●●●○●REST API●●●●●从矩阵可以看到C/C、JDBC、Python、Go、Node.js 在全部五种平台组合上均通过官方验证C# 与 Rust 在部分组合上仅通过非官方验证C# 的 macOS/ARM64 组合未验证REST API 本身与具体语言无关在所有平台组合上均通过官方验证。连接器与 TDengine 版本匹配关系TDengine 版本更新时常伴随新功能引入。下表给出了各 TDengine 版本对应的最佳连接器版本是选型时的直接依据TDengine 版本JavaPythonGoC#Node.jsRustC/C3.3.0.0 及以上3.3.0 及以上taospy 2.7.15 及以上taos-ws-py 0.3.2 及以上3.5.5 及以上3.1.3 及以上3.1.0 及以上当前版本与 TDengine 版本一致3.0.0.0 及以上3.0.2 及以上当前版本3.0 分支3.0.03.1.0当前版本与 TDengine 版本一致2.4.0.14 及以上2.0.38当前版本develop 分支1.0.2 - 1.0.62.0.10 - 2.0.12当前版本与 TDengine 版本一致2.4.0.4 - 2.4.0.132.0.37当前版本develop 分支1.0.2 - 1.0.62.0.10 - 2.0.12当前版本与 TDengine 版本一致2.2.x.x2.0.36当前版本master 分支n/a2.0.7 - 2.0.9当前版本与 TDengine 版本一致2.0.x.x2.0.34当前版本master 分支n/a2.0.1 - 2.0.6当前版本与 TDengine 版本一致需要注意C/C 连接器即客户端驱动 taosc的版本号与 TDengine 服务器版本严格对应。尽管在前三段版本号相同仅第四段不同时较低版本的客户端驱动可以兼容较高版本的服务器但官方强烈建议使用与 TDengine 服务器相同版本的客户端驱动且强烈不建议使用较高版本的客户端驱动访问较低版本的服务器。从源码结构看客户端驱动的发布与服务器版本保持一致例如 include/client/taos.h 定义了 C 语言连接 API其二进制随各发行版同步打包。特性支持矩阵WebSocket 与原生连接下表展示了不同连接器对 TDengine TSDB 核心特性的支持情况针对 WebSocket/原生连接特性JavaPythonGoC#Node.jsRustC/C连接管理Connection Management支持支持支持支持支持支持支持执行 SQLExecute SQL支持支持支持支持支持支持支持参数绑定Parameter Binding支持支持支持支持支持支持支持数据订阅 TMQData Subscription支持支持支持支持支持支持支持无模式写入Schema-less Write支持支持支持支持支持支持支持注意Node.js 连接器不支持原生连接仅支持 WebSocket 连接。此外还有两点需要了解由于各编程语言数据库框架规范存在差异并不意味着所有 C/C 接口都需要在其他语言的连接器中提供对应的封装支持。无论使用哪种编程语言的连接器对于 TDengine TSDB 2.0 及以上版本都建议数据库应用的每个线程建立独立的连接或创建基于线程的连接池以避免线程之间共享连接时 USE statement 状态互相干扰不过连接的查询和写入操作本身是线程安全的。对于 REST API 方式特性支持相对有限仅支持执行 SQLExecute SQL不支持参数绑定与数据订阅。安装客户端驱动taosc只有在以下两种场景下才需要单独安装客户端驱动使用原生接口连接器且当前系统未安装 TDengine 服务器软件使用C/C WebSocket 连接器。如果你使用其他语言的 WebSocket 连接器如 Java、Python、Go、Node.js、C#、Rust则无需安装客户端驱动。下面按操作系统分别给出安装步骤。Linux 安装步骤下载客户端安装包获取 TDengine TSDB 企业版客户端Linux-Generic 平台安装包。解压软件包将安装包放到当前用户具有读写权限的任意目录执行tar -xzvf tdengine-tsdb-enterprise-client-{{VERSION}}-linux-x64.tar.gz运行安装脚本解压后解压目录中会看到以下文件目录install_client.sh安装脚本用于应用驱动程序package.tar.gz应用驱动安装包driverTDengine 应用驱动examples各编程语言的示例程序。 运行install_client.sh完成安装。配置 taos.cfg编辑taos.cfg文件默认路径/etc/taos/taos.cfg将firstEP改为 TDengine 服务器的 End Point例如h1.tdengine.com:6030。提示从 3.4.0.0 版本开始企业版与社区版不完全兼容。为避免两者互联出现兼容性问题请确保安装与服务器对应的客户端驱动。使用社区版驱动连接企业版服务器会报错 Edition not compatible反之亦然。如果 TDengine 服务未部署在本机、仅安装应用驱动则taos.cfg中只需配置firstEP本机无需配置FQDN。为避免连接服务器时出现 Unable to resolve FQDN 错误建议确保本机/etc/hosts文件已配置服务器的正确 FQDN 值或正确配置 DNS 服务。Windows 安装步骤下载客户端安装包获取 TDengine TSDB 企业版客户端Windows 平台安装包。运行安装程序按提示选择默认值完成安装。安装路径默认安装路径为C:\TDengine包含以下文件目录taos.exeTDengine CLI 命令行程序taosadapter.exe提供 RESTful 服务并接收各种其他软件写入请求的服务器可执行程序taosBenchmark.exeTDengine 测试程序cfg配置文件目录driver应用驱动动态链接库examplesbash/C/C#/go/JDBC/Python/Node.js 示例程序include头文件log日志文件unins000.exe卸载程序。配置 taos.cfg编辑taos.cfg文件默认路径C:\TDengine\cfg\taos.cfg将firstEP改为 TDengine 服务器的 End Point例如h1.tdengine.com:6030。提示企业版与社区版 3.4.0.0 起不完全兼容请使用与服务器对应的客户端驱动否则报错 Edition not compatible。如果使用 FQDN 连接服务器请确保本地网络 DNS 配置正确或在 hosts 文件中添加 FQDN 解析记录例如编辑C:\Windows\system32\drivers\etc\hosts添加类似192.168.1.99 h1.taos.com的记录。卸载运行unins000.exe即可卸载 TDengine 应用驱动。macOS 安装步骤下载客户端安装包获取 TDengine TSDB 企业版客户端macOS 平台安装包。运行安装程序按提示选择默认值完成安装。若安装被阻止可右键或按住 Ctrl 点击安装包然后选择Open打开。配置 taos.cfg编辑taos.cfg文件默认路径/etc/taos/taos.cfg将firstEP改为 TDengine 服务器的 End Point例如h1.tdengine.com:6030。提示与 Linux 类似企业版与社区版 3.4.0.0 起不完全兼容若 TDengine 服务未部署在本机taos.cfg只需配置firstEP为避免 Unable to resolve FQDN 错误请确保/etc/hosts已配置服务器 FQDN 或 DNS 服务正确。安装验证完成上述安装与配置、并确认 TDengine 服务已正常启动后可以使用 TDengine CLI 工具登录验证。Linux / macOS 验证在 shell 中直接执行taos连接 TDengine 服务进入 TDengine CLI 界面$ taos taos show databases; name | information_schema | performance_schema | db | Query OK, 3 rows in database (0.019154s) taosWindows 验证在 cmd 中进入C:\TDengine目录直接执行taos.exe连接 TDengine 服务taos show databases; name | create_time | vgroups | ntables | replica | strict | duration | keep | buffer | pagesize | pages | minrows | maxrows | comp | precision | status | retention | single_stable | cachemodel | cachesize | wal_level | wal_fsync_period | wal_retention_period | wal_retention_size | information_schema | NULL | NULL | 14 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | ready | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | performance_schema | NULL | NULL | 3 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | ready | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | test | 2022-08-04 16:46:40.506 | 2 | 0 | 1 | off | 14400m | 5256000m,5256000m,5256000m | 96 | 4 | 256 | 100 | 4096 | 2 | ms | ready | NULL | false | none | 1 | 1 | 3000 | 0 | 0 | 0 | 0 | Query OK, 3 rows in database (0.123000s) taos若能看到information_schema、performance_schema等数据库列表即表示客户端驱动安装成功、与服务器的连接配置正确。各语言连接器开发指南导航在连接方案选定、客户端驱动就绪之后可以进一步参考针对各语言的具体开发指南它们与本页同属一个文档目录包含完整的 API 使用示例C/C 连接器以taos.h头文件与taos动态库为基础taos_connect()默认走原生连接通过taos_options(TSDB_OPTION_DRIVER, websocket)切换为 WebSocket 连接该选项必须在程序开头调用且只能调用一次。Java 连接器Go 连接器Rust 连接器Python 连接器taospy / taos-ws-pyNode.js 连接器仅支持 WebSocket 连接C# 连接器R 语言连接器ODBC 连接器REST API 参考以 C/C 为例无论采用哪种连接方式都需要包含taos.h头文件并链接taos动态库#include taos.h安装 TDengine 客户端或服务器后头文件与动态库的位置如下平台头文件位置动态库位置Linux/usr/local/taos/include/usr/local/taos/driver/libtaos.soWindowsC:\TDengine\includeC:\TDengine\driver\taos.dllmacOS/usr/local/include/usr/local/lib/libtaos.dylib对应的连接示例// 原生连接TDengine 默认连接方式 TAOS *taos taos_connect(ip, user, password, database, port); // WebSocket 连接先设置驱动类型再调用 taos_connect taos_options(TSDB_OPTION_DRIVER, websocket); TAOS *taos taos_connect(ip, user, password, database, port);从源码结构看C 客户端驱动的 API 原型定义于 include/client/taos.h各语言连接器的原生封装实现集中维护在 source/client/wrapper 目录含 JNI 等包装层可作为深入理解连接器内部机制的起点。REST API 快速验证REST API 不依赖任何 TDengine 库只要开发语言支持 HTTP 协议即可使用且由 taosAdapter 提供使用前必须确保 taosAdapter 已运行。在 Linux 下 taosAdapter 默认由 systemd 管理可用systemctl start taosadapter启动。以 Ubuntu 环境下的curl为例请确认已安装 curl验证 RESTful 接口是否正常工作。下面的示例列出所有数据库请将h1.tdengine.com和 6041默认端口替换为实际运行的 TDengine 服务 FQDN 与端口curl -L -H Authorization: Basic cm9vdDp0YW9zZGF0YQ \ -d select name, ntables, status from information_schema.ins_databases; \ h1.tdengine.com:6041/rest/sql返回code: 0即表示验证通过。注意 RESTful 接口是无状态的USE db_name命令不会生效所有表名、超级表名的引用都需要带数据库名前缀也可以在 RESTful URL 中指定 db_name此时 SQL 未指定库名前缀时会使用 URL 中的 db_name。小结如何选择合适的连接方式综合本文内容连接方案选型可以遵循以下原则新项目优先选择 WebSocket 连接它提供版本兼容性保证、无需安装客户端驱动除 C/C 与 ODBC 外、是连接云服务实例的唯一途径也是官方明确推荐的连接方式。使用 Java、Python、Go 的连接器时注意迁移窗口Go、C#、Java 的原生连接以及 Java、Python、Go 的 REST 连接均计划于 2027-01-01 停止支持相关应用应尽早迁移到 WebSocket 连接。C/C、Python、Rust 的原生连接将继续支持如果追求最低通信开销或已有基于 taosc 的应用可以继续使用原生连接但务必保持客户端驱动与服务器版本一致。REST API 适合轻量集成它只支持执行 SQL不支持参数绑定与数据订阅适合脚本、监控集成等简单场景且无需任何 TDengine 客户端库。赞分享数据库时序数据库物联网大数据实时分析云原生【免费下载链接】tdengineTDengine is an open source, high-performance, cloud native time-series database optimized for Internet of Things (IoT), Connected Cars, Industrial IoT and DevOps.项目地址https://gitcode.com/taosdata/tdengine点击查看免费下载相关推荐TDengine 建立连接指南安装驱动与连接器通过 WebSocket、原生连接与 REST API 接入时序数据库TDengine 建立连接指南安装驱动与连接器通过 WebSocket、原生连接与 REST API 接入时序数据库 TDengine 为应用程序提供了三种数据库时序数据库大数据物联网云原生TDengine 连接器参考手册多语言驱动与 REST API 全指南TDengine 连接器参考手册多语言驱动与 REST API 全指南 TDengine 为不同编程语言的应用开发者提供了完整的官方连接器体系覆盖 C/C数据库时序数据库大数据物联网云原生MaaAssistantArknights Windows 模拟器支持指南兼容性矩阵、连接配置与源码原理MaaAssistantArknights Windows 模拟器支持指南兼容性矩阵、连接配置与源码原理 导读 本文基于 MaaAssistantArknig计算机视觉GUI自动化RPA上一篇Btrfs元数据备份WinBtrfs防止关键数据丢失下一篇Meshery CLI命令全解析从基础操作到高级技巧创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表