index.md 7.1 KB
Newer Older
D
dingbo 已提交
1 2
---
title: 建立连接
D
dingbo 已提交
3
description: "本节介绍如何使用连接器建立与 TDengine 的连接,给出连接器安装、连接的简单说明。"
D
dingbo 已提交
4
---
B
Bo Ding 已提交
5 6 7 8 9 10 11

import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";
import ConnJava from "./_connect_java.mdx";
import ConnGo from "./_connect_go.mdx";
import ConnRust from "./_connect_rust.mdx";
import ConnNode from "./_connect_node.mdx";
12 13
import ConnPythonNative from "./_connect_python.mdx";
import ConnCSNative from "./_connect_cs.mdx";
14
import ConnC from "./_connect_c.mdx";
D
dingbo 已提交
15
import ConnR from "./_connect_r.mdx";
D
dingbo 已提交
16 17 18 19
import InstallOnWindows from "../../14-reference/03-connector/_linux_install.mdx";
import InstallOnLinux from "../../14-reference/03-connector/_windows_install.mdx";
import VerifyLinux from "../../14-reference/03-connector/_verify_linux.mdx";
import VerifyWindows from "../../14-reference/03-connector/_verify_windows.mdx";
B
Bo Ding 已提交
20

D
dingbo 已提交
21
TDengine 提供 REST API,容许在任何平台的任何应用程序通过它访问 TDengine 运行实例,详细介绍请看 [REST API](/reference/rest-api/)。除 REST API 之外,TDengine 还提供多种编程语言的连接器方便用户开发应用程序,其中包括 C/C++、Java、Python、Go、Node.js、C# 等。 本节介绍如何使用连接器建立与 TDengine 的连接,给出连接器安装、连接的简单说明。关于各连接器的详细功能说明,请查看[连接器](https://docs.taosdata.com/reference/connector/)
B
Bo Ding 已提交
22

D
dingbo 已提交
23
## 连接器建立连接的方式
B
Bo Ding 已提交
24

D
dingbo 已提交
25 26 27 28
连接器建立连接的方式,TDengine 提供两种:

1. 通过 taosAdapter 组件提供的 REST API 建立与 taosd 的连接,这种连接方式下文中简称"REST 连接“
2. 通过客户端驱动程序 taosc 直接与服务端程序 taosd 建立连接,这种连接方式下文中简称“原生连接”。
B
Bo Ding 已提交
29

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
30
无论使用何种方式建立连接,连接器都提供了相同或相似的 API 操作数据库,都可以执行 SQL 语句,只是初始化连接的方式稍有不同,用户在使用上不会感到什么差别。
B
Bo Ding 已提交
31

D
dingbo 已提交
32
关键不同点在于:
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
33

D
dingbo 已提交
34
1. 使用 REST 连接,用户无需安装客户端驱动程序 taosc,具有跨平台易用的优势,但性能要下降 30%左右。
35
2. 使用原生连接可以体验 TDengine 的全部功能,如[参数绑定接口](/reference/connector/cpp#参数绑定-api)[订阅](reference/connector/cpp#数据订阅接口)等等。
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
36

37
## 安装客户端驱动 taosc
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
38

D
dingbo 已提交
39
如果选择原生连接,而且应用程序不在 TDengine 同一台服务器上运行,你需要先安装客户端驱动,否则可以跳过此一步。为避免客户端驱动和服务端不兼容,请使用一致的版本。
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
40 41 42 43 44 45 46 47 48 49 50 51 52 53

### 安装步骤

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

### 安装验证

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
54
以上安装和配置完成后,并确认 TDengine 服务已经正常启动运行,此时可以执行安装包里带有的 TDengine 命令行程序 taos 进行登录。
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
55 56 57 58 59 60 61 62 63

<Tabs defaultValue="linux" groupId="os">
  <TabItem value="linux" label="Linux">
    <VerifyLinux />
  </TabItem>
  <TabItem value="windows" label="Windows">
    <VerifyWindows />
  </TabItem>
</Tabs>
B
Bo Ding 已提交
64

D
dingbo 已提交
65
## 安装连接器
B
Bo Ding 已提交
66

D
dingbo 已提交
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
<Tabs groupId="lang">
<TabItem label="Java" value="java">
  
如果使用 maven 管理项目,只需在 pom.xml 中加入以下依赖。

```xml
<dependency>
  <groupId>com.taosdata.jdbc</groupId>
  <artifactId>taos-jdbcdriver</artifactId>
  <version>2.0.38</version>
</dependency>
```

</TabItem>
<TabItem label="Python" value="python">

使用 `pip` 从 PyPI 安装:
D
dingbo 已提交
84

D
dingbo 已提交
85 86 87
```
pip install taospy
```
D
dingbo 已提交
88

D
dingbo 已提交
89
从 Git URL 安装:
D
dingbo 已提交
90

D
dingbo 已提交
91 92 93 94 95 96 97 98
```
pip install git+https://github.com/taosdata/taos-connector-python.git
```

</TabItem>
<TabItem label="Go" value="go">

编辑 `go.mod` 添加 `driver-go` 依赖即可。
D
dingbo 已提交
99

D
dingbo 已提交
100 101 102 103 104 105 106
```go-mod title=go.mod
module goexample

go 1.17

require github.com/taosdata/driver-go/v2 develop
```
D
dingbo 已提交
107

D
dingbo 已提交
108 109
:::note
driver-go 使用 cgo 封装了 taosc 的 API。cgo 需要使用 gcc 编译 C 的源码。因此需要确保你的系统上有 gcc。
B
Bo Ding 已提交
110

D
dingbo 已提交
111
:::
B
Bo Ding 已提交
112

D
dingbo 已提交
113 114
</TabItem>
<TabItem label="Rust" value="rust">
B
Bo Ding 已提交
115

D
dingbo 已提交
116
编辑 `Cargo.toml` 添加 `libtaos` 依赖即可。
D
dingbo 已提交
117

D
dingbo 已提交
118 119 120 121
```toml title=Cargo.toml
[dependencies]
libtaos = { version = "0.4.2"}
```
D
dingbo 已提交
122

D
dingbo 已提交
123
:::info
D
dingbo 已提交
124 125
Rust 连接器通过不同的特性区分不同的连接方式。如果要建立 REST 连接,需要开启 `rest` 特性:

D
dingbo 已提交
126 127 128
```toml
libtaos = { version = "*", features = ["rest"] }
```
B
Bo Ding 已提交
129

D
dingbo 已提交
130 131 132 133 134 135 136
:::

</TabItem>
<TabItem label="Node.js" value="node">

Node.js 连接器通过不同的包提供不同的连接方式。

D
dingbo 已提交
137
1. 安装 Node.js 原生连接器
D
dingbo 已提交
138

D
dingbo 已提交
139 140 141 142 143 144 145 146 147 148 149 150
```
npm i td2.0-connector
```

:::note
推荐 Node 版本大于等于 `node-v12.8.0` 小于 `node-v13.0.0`

::: 2. 安装 Node.js REST 连接器

```
npm i td2.0-rest-connector
```
D
dingbo 已提交
151 152 153 154 155 156

</TabItem>
<TabItem label="C#" value="csharp">

编辑项目配置文件中添加 [TDengine.Connector](https://www.nuget.org/packages/TDengine.Connector/) 的引用即可:

157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
```xml title=csharp.csproj {12}
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <StartupObject>TDengineExample.AsyncQueryExample</StartupObject>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="TDengine.Connector" Version="1.0.6" />
  </ItemGroup>

</Project>
D
dingbo 已提交
173
```
D
dingbo 已提交
174

D
dingbo 已提交
175
也可通过 dotnet 命令添加:
D
dingbo 已提交
176

D
dingbo 已提交
177 178 179
```
dotnet add package TDengine.Connector
```
D
dingbo 已提交
180 181 182

:::note
以下示例代码,均基于 dotnet6.0,如果使用其它版本,可能需要做适当调整。
183 184

:::
D
dingbo 已提交
185 186 187 188

</TabItem>
<TabItem label="R" value="r">

189 190
1. 下载 [taos-jdbcdriver-version-dist.jar](https://repo1.maven.org/maven2/com/taosdata/jdbc/taos-jdbcdriver/2.0.38/)
2. 安装 R 的依赖包`RJDBC`
D
dingbo 已提交
191

192
```R
D
dingbo 已提交
193 194
install.packages("RJDBC")
```
D
dingbo 已提交
195

196 197 198 199 200 201
</TabItem>
<TabItem label="C" value="c">

如果已经安装了 TDengine 服务端软件或 TDengine 客户端驱动 taosc, 那么已经安装了 C 连接器,无需额外操作。
<br/>

D
dingbo 已提交
202
</TabItem>
B
Bo Ding 已提交
203 204
</Tabs>

D
dingbo 已提交
205
## 建立连接
206

D
dingbo 已提交
207
在执行这一步之前,请确保有一个正在运行的,且可以访问到的 TDengine,而且服务端的 FQDN 配置正确。以下示例代码,都假设 TDengine 安装在本机,且 FQDN(默认 localhost) 和 serverPort(默认 6030) 都使用默认配置。
B
Bo Ding 已提交
208

209 210
<Tabs groupId="lang" defaultValue="java">
  <TabItem label="Java" value="java">
D
dingbo 已提交
211
    <ConnJava />
212
  </TabItem>
213
  <TabItem label="Python" value="python">
214 215 216
    <ConnPythonNative />
  </TabItem>
  <TabItem label="Go" value="go">
D
dingbo 已提交
217
      <ConnGo />
218 219
  </TabItem>
  <TabItem label="Rust" value="rust">
D
dingbo 已提交
220
    <ConnRust />
221
  </TabItem>
B
Bo Ding 已提交
222
  <TabItem label="Node.js" value="node">
D
dingbo 已提交
223
    <ConnNode />
224 225 226 227
  </TabItem>
  <TabItem label="C#" value="csharp">
    <ConnCSNative />
  </TabItem>
D
dingbo 已提交
228 229 230
  <TabItem label="R" value="r">
    <ConnR/>
  </TabItem>
231 232 233
  <TabItem label="C" value="c">
    <ConnC />
  </TabItem>
B
Bo Ding 已提交
234
</Tabs>
D
dingbo 已提交
235 236

:::tip
sangshuduo's avatar
sangshuduo 已提交
237
如果建立连接失败,大部分情况下是 FQDN 或防火墙的配置不正确,详细的排查方法请看[《常见问题及反馈》](https://docs.taosdata.com/train-faq/faq)中的“遇到错误 Unable to establish connection, 我怎么办?”
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
238

D
dingbo 已提交
239
:::