03-connector.mdx 6.7 KB
Newer Older
1 2 3 4
---
title: 连接器
---

5
TDengine 提供了丰富的应用程序开发接口,其中包括支持使用 C/C++、Java、Python、Go、Node.js、C# 等多种语言的连接器,支持使用本地驱动接口 taosc 和 RESTful 接口,便于用户快速开发自己的应用。
6 7 8 9 10 11 12

![image-connector](/img/connector.png)

## 支持的系统

目前 TDengine 的连接器可支持的平台广泛,包括:X64/X86/ARM64/ARM32/MIPS/Alpha 等硬件平台,以及 Linux/Win64/Win32 等开发环境。对照矩阵如下:

13 14 15 16 17 18 19 20 21 22 23
| **CPU**        | **OS**    | **JDBC** | **Python** | **Go** | **Node.js** | **C#** | **Rust** |
| -------------- | --------- | -------- | ---------- | ------ | ----------- | ------ | -------- |
| **X86 64bit**  | **Linux** | ●        | ●          | ●      | ●           | ●      | ●        |
| **X86 64bit**  | **Win64** | ●        | ●          | ●      | ●           | ●      | ●        |
| **X86 64bit**  | **Win32** | ●        | ●          | ●      | ●           | ○      | ○        |
| **X86 32bit**  | **Win32** | ○        | ○          | ○      | ○           | ○      | ○        |
| **ARM64**      | **Linux** | ●        | ●          | ●      | ●           | ○      | ○        |
| **ARM32**      | **Linux** | ●        | ●          | ●      | ●           | ○      | ○        |
| **MIPS 龙芯**  | **Linux** | ○        | ○          | ○      | ○           | ○      | ○        |
| **Alpha 申威** | **Linux** | ○        | ○          | --     | --          | --     | --       |
| **X86 海光**   | **Linux** | ○        | ○          | ○      | --          | --     | --       |
24 25 26 27 28 29 30

其中 ● 表示官方测试验证通过,○ 表示非官方测试验证通过,-- 表示未经验证。

## 特性矩阵

连接器对 TDengine 特性的支持对照矩阵如下[1]:

31 32
### 使用本地驱动接口 taosc

33 34 35 36 37 38 39 40 41 42
| **Feature**        | **Java**  | **Python** | **Go**   | **C#**   | **Node.js** | **Rust** |
| ------------------ | --------- | ---------- | -------- | -------- | ----------- | -------- |
| **连接管理**       | 支持      | 支持       | 支持     | 支持     | 支持        | 支持     |
| **同步查询**       | 支持      | 支持       | 支持     | 支持     | 支持        | 支持     |
| **异步查询**       | 不支持[2] | 支持       | 支持     | 支持     | 支持        | 暂不支持 |
| **参数绑定**       | 支持      | 支持       | 支持     | 支持     | 支持        | 支持     |
| **获取系统信息**   | 暂不支持  | 支持       | 暂不支持 | 暂不支持 | 支持        | 暂不支持 |
| **错误信息**       | 支持      | 支持       | 支持     | 支持     | 支持        | 支持     |
| **订阅功能**       | 支持      | 支持       | 支持     | 支持     | 支持        | 暂不支持 |
| **Schemaless**     | 支持      | 支持       | 支持     | 支持     | 支持        | 支持     |
43 44 45 46 47 48 49 50 51 52 53 54

### 使用 RESTful 接口

| **Feature**        | **Java**  | **Python(暂不支持)** | **Go**   | **C#(暂不支持)**   | **Node.js** | **Rust** |
| ------------------ | --------- | ---------------------- | -------- | -------------------- | ----------- | -------- |
| **连接管理**       | 支持      | n/a                    | 支持     | n/a                  | 支持        | 支持     |
| **同步查询**       | 支持      | n/a                    | 支持     | n/a                  | 支持        | 支持     |
| **异步查询**       | 不支持[2] | n/a                    | 不支持   | n/a                  | 不支持      | 暂不支持 |
| **参数绑定**       | 不支持    | n/a                    | 不支持   | n/a                  | 不支持      | 不支持   |
| **获取系统信息**   | 暂不支持  | n/a                    | 暂不支持 | n/a                  | 支持        | 暂不支持 |
| **错误信息**       | 支持      | n/a                    | 支持     | n/a                  | 支持        | 支持     |
| **订阅功能**       | 不支持    | n/a                    | 不支持   | n/a                  | 不支持      | 不支持   |
55
| **Schemaless**     | 暂不支持  | n/a                    | 暂不支持 | n/a                  | 暂不支持    | 暂不支持 |
56
| **批量拉取(WS)** | 支持      | n/a                    | 暂不支持 | n/a                  | 暂不支持    | 暂不支持 |
57 58 59 60 61 62 63 64 65

备注:

[1]: 由于不同语言数据库框架规范不同,并不意味着所有 C/C++ 接口都需要对应支持。

[2]: JDBC 标准为同步查询。

:::warning

sangshuduo's avatar
sangshuduo 已提交
66
- 在没有安装 TDengine 服务端软件的系统中使用连接器(除 RESTful 外)访问 TDengine 数据库,需要安装相应版本的客户端安装包来使客户端驱动(Linux 系统中文件名为 libtaos.so,Windows 系统中为 taos.dll)被安装在系统中,否则会产生无法找到相应库文件的错误。
67
- 所有执行 SQL 语句的 API,例如 C/C++ Connector 中的 `tao_query`、`taos_query_a`、`taos_subscribe` 等,以及其它语言中与它们对应的 API,每次都只能执行一条 SQL 语句,如果实际参数中包含了多条语句,它们的行为是未定义的。
68
- 升级 TDengine 到 2.0.8.0 版本的用户,必须更新 JDBC。连接 TDengine 必须升级 taos-jdbcdriver 到 2.0.12 及以上。详细的版本依赖关系请参见 [taos-jdbcdriver 文档](/reference/connector/java#version)。
69 70 71 72 73 74 75 76
- 无论选用何种编程语言的连接器,2.0 及以上版本的 TDengine 推荐数据库应用的每个线程都建立一个独立的连接,或基于线程建立连接池,以避免连接内的“USE statement”状态量在线程之间相互干扰(但连接的查询和写入操作都是线程安全的)。

:::

import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";
import InstallOnWindows from "./_linux_install.mdx";
import InstallOnLinux from "./_windows_install.mdx";
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
77 78
import VerifyWindows from "./_verify_windows.mdx";
import VerifyLinux from "./_verify_linux.mdx";
79 80 81 82

## 安装客户端驱动

:::info
D
dingbo 已提交
83
只有在没有安装 TDengine 服务端软件的系统上使用非 REST 连接器才需要安装客户端驱动。
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110

:::

### 安装步骤

<Tabs defaultValue="linux" groupId="os">
  <TabItem value="linux" label="Linux">
    <InstallOnWindows />
  </TabItem>
  <TabItem value="windows" label="Windows">
    <InstallOnLinux />
  </TabItem>
</Tabs>

### 安装验证

以上安装和配置完成后,并确认 TDengine 服务已经正常启动运行,此时可以执行 taos 客户端进行登录。

<Tabs defaultValue="linux" groupId="os">
  <TabItem value="linux" label="Linux">
    <VerifyLinux />
  </TabItem>
  <TabItem value="windows" label="Windows">
    <VerifyWindows />
  </TabItem>
</Tabs>