Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
68f0359f
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
68f0359f
编写于
12月 10, 2020
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/develop' into feature/wal
上级
d0141f7a
37cc4203
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
296 addition
and
74 deletion
+296
-74
documentation20/webdocs/assets/connector.png
documentation20/webdocs/assets/connector.png
+0
-0
documentation20/webdocs/markdowndocs/Documentation-ch.md
documentation20/webdocs/markdowndocs/Documentation-ch.md
+2
-1
documentation20/webdocs/markdowndocs/Getting Started-ch.md
documentation20/webdocs/markdowndocs/Getting Started-ch.md
+42
-13
documentation20/webdocs/markdowndocs/Model-ch.md
documentation20/webdocs/markdowndocs/Model-ch.md
+3
-3
documentation20/webdocs/markdowndocs/TAOS SQL-ch.md
documentation20/webdocs/markdowndocs/TAOS SQL-ch.md
+27
-10
documentation20/webdocs/markdowndocs/administrator-ch.md
documentation20/webdocs/markdowndocs/administrator-ch.md
+68
-2
documentation20/webdocs/markdowndocs/connector-ch.md
documentation20/webdocs/markdowndocs/connector-ch.md
+51
-40
documentation20/webdocs/markdowndocs/connector-java-ch.md
documentation20/webdocs/markdowndocs/connector-java-ch.md
+4
-1
documentation20/webdocs/markdowndocs/faq-ch.md
documentation20/webdocs/markdowndocs/faq-ch.md
+11
-1
documentation20/webdocs/markdowndocs/insert-ch.md
documentation20/webdocs/markdowndocs/insert-ch.md
+1
-1
tests/pytest/fulltest.sh
tests/pytest/fulltest.sh
+1
-1
tests/pytest/functions/function_twa_test2.py
tests/pytest/functions/function_twa_test2.py
+85
-0
tests/pytest/pytest_1.sh
tests/pytest/pytest_1.sh
+1
-1
未找到文件。
documentation20/webdocs/assets/connector.png
0 → 100644
浏览文件 @
68f0359f
538.1 KB
documentation20/webdocs/markdowndocs/Documentation-ch.md
浏览文件 @
68f0359f
...
...
@@ -84,6 +84,7 @@ TDengine是一个高效的存储、查询、分析时序大数据的平台,专
-
[
数据导出
](
https://www.taosdata.com/cn/documentation20/administrator/#数据导出
)
:从shell按表导出,也可用taosdump工具做各种导出
-
[
系统监控
](
https://www.taosdata.com/cn/documentation20/administrator/#系统监控
)
:检查系统现有的连接、查询、流式计算,日志和事件等
-
[
文件目录结构
](
https://www.taosdata.com/cn/documentation20/administrator/#文件目录结构
)
:TDengine数据文件、配置文件等所在目录
-
[
参数限制和保留关键字
](
https://www.taosdata.com/cn/documentation20/administrator/#参数限制和保留关键字
)
:TDengine的参数限制和保留关键字列表
## [TAOS SQL](https://www.taosdata.com/cn/documentation20/taos-sql)
...
...
@@ -128,4 +129,4 @@ TDengine是一个高效的存储、查询、分析时序大数据的平台,专
## [培训和FAQ](https://www.taosdata.com/cn/faq)
-
[
FAQ
](
https://www.taosdata.com/cn/documentation20/faq
)
:常见问题与答案
-
[
应用案列
](
https://www.taosdata.com/cn/blog/?categories=4
)
:一些使用实例来解释如何使用TDengine
\ No newline at end of file
-
[
应用案列
](
https://www.taosdata.com/cn/blog/?categories=4
)
:一些使用实例来解释如何使用TDengine
documentation20/webdocs/markdowndocs/Getting Started-ch.md
浏览文件 @
68f0359f
...
...
@@ -2,7 +2,35 @@
## 快捷安装
TDengine软件分为服务器、客户端和报警模块三部分,目前2.0版仅能在Linux系统上安装和运行,后续会支持Windows、MAC OS等系统。如果应用需要在Windows或Mac上运行,目前只能使用TDengine的RESTful接口连接服务器。硬件支持X64,后续会支持ARM、龙芯等CPU系统。用户可根据需求选择通过
[
源码
](
https://www.taosdata.com/cn/getting-started/#通过源码安装
)
或者
[
安装包
](
https://www.taosdata.com/cn/getting-started/#通过安装包安装
)
来安装。
TDengine软件分为服务器、客户端和报警模块三部分,目前2.0版服务器仅能在Linux系统上安装和运行,后续会支持Windows、mac OS等系统。
**应用驱动**
如果应用在Windows和Linux上运行,可使用C/C++/C#/JAVA/Python/Go/Node.js接口连接服务器。如果应用在Mac上运行,目前可以使用RESTful接口连接服务器。
**CPU**
CPU支持X64/ARM64/MIPS64/Alpha64,后续会支持ARM32、RISC-V等CPU架构。用户可根据需求选择通过
[
源码
](
https://www.taosdata.com/cn/getting-started/#通过源码安装
)
或者
[
安装包
](
https://www.taosdata.com/cn/getting-started/#通过安装包安装
)
来安装。
**服务器**
目前TDengine服务器可以运行在以下平台上:
| |
**CentOS**
**6/7/8**
|
**Ubuntu**
**16/18/20**
|
**Other Linux**
|
**Win64/32**
|
**macOS**
|
**统信****UOS**
|
**银河****/****中标麒麟**
|
**凝思**
**V60/V80**
|
| -------------- | --------------------- | ------------------------ | --------------- | ------------ | --------- | --------------- | ------------------------- | --------------------- |
| X64 | ● | ● | | ○/○ | ○ | ○ | ● | ● |
| 树莓派ARM32 | | ● | ● | | | | | |
| 龙芯MIPS64 | | | ● | | | | | |
| 鲲鹏 ARM64 | | ○ | ○ | | | | ● | |
| 申威 Alpha64 | | | ○ | | | ● | | |
| 飞腾ARM64 | | | ○优麒麟 | | | | | |
| 海光X64 | ● | ● | ● | | | ○ | ● | ● |
| 瑞芯微ARM64/32 | | | ○ | | | | | |
| 全志ARM64/32 | | | ○ | | | | | |
| 炬力ARM64/32 | | | ○ | | | | | |
| TI ARM32 | | | ○ | | | | | |
### 通过源码安装
...
...
@@ -16,28 +44,27 @@ TDengine软件分为服务器、客户端和报警模块三部分,目前2.0版
服务器部分,我们提供三种安装包,您可以根据需要选择。TDengine的安装非常简单,从下载到安装成功仅仅只要几秒钟。
<ul
id=
'packageList'
>
<li><a
id=
'tdengine-rpm'
style=
'color:var(--b2)'
>
TDengine-server-2.0.0.0-Linux-x64.rpm (5.3M)
</a></li>
<li><a
id=
'tdengine-deb'
style=
'color:var(--b2)'
>
TDengine-server-2.0.0.0-Linux-x64.deb (2.5M)
</a></li>
<li><a
id=
'tdengine-tar'
style=
'color:var(--b2)'
>
TDengine-server-2.0.0.0-Linux-x64.tar.gz (5.3M)
</a></li>
</ul>
-
TDengine-server-2.0.9.0-Linux-x64.rpm (4.2M)
-
TDengine-server-2.0.9.0-Linux-x64.deb (2.7M)
-
TDengine-server-2.0.9.0-Linux-x64.tar.gz (4.5M)
客户端部分,Linux安装包如下:
-
TDengine-client-2.0.0.0-Linux-x64.tar.gz (3.4M)
-
TDengine-client-2.0.9.0-Linux-x64.tar.gz(3.0M)
-
TDengine-client-2.0.9.0-Windows-x64.exe(2.8M)
-
TDengine-client-2.0.9.0-Windows-x86.exe(2.8M)
报警模块的Linux安装包如下(请参考
[
报警模块的使用方法
](
https://github.com/taosdata/TDengine/blob/master/alert/README_cn.md
)
):
-
TDengine-alert-2.0.0-Linux-x64.tar.gz (8.1M)
-
TDengine-alert-2.0.
9.
0-Linux-x64.tar.gz (8.1M)
目前,TDengine
只支持在使用
[
`systemd`
](
https://en.wikipedia.org/wiki/Systemd
)
做进程服务管理的linux系统上安装。其他linux系统的支持正在开发中。
用
`which systemctl`
命令来检测系统中是否存在
`systemd`
包:
目前,TDengine
支持在使用
[
`systemd`
](
https://en.wikipedia.org/wiki/Systemd
)
做进程服务管理的linux系统上安装,
用
`which systemctl`
命令来检测系统中是否存在
`systemd`
包:
```
cmd
which systemctl
```
如果系统中不存在
`systemd`
包,请考虑
[
通过源码安装
](
#通过源码安装
)
TDengine。
具体的安装过程,请参见
<a
href=
"https://www.taosdata.com/blog/2019/08/09/566.html"
>
TDengine多种安装包的安装和卸载
</a>
。
## 轻松启动
...
...
@@ -54,12 +81,14 @@ systemctl status taosd
```
如果TDengine服务正常工作,那么您可以通过TDengine的命令行程序
`taos`
来访问并体验TDengine。
**注意:**
-
systemctl命令需要 _root_ 权限来运行,如果您非 _root_ 用户,请在命令前添加 sudo
-
为更好的获得产品反馈,改善产品,TDengine会采集基本的使用信息,但您可以修改系统配置文件taos.cfg里的配置参数telemetryReporting, 将其设为0,就可将其关闭。
如果系统中不支持
`systemd`
,也可以用手动运行 /usr/local/taos/bin/taosd 方式启动 TDengine 服务。
## TDengine命令行程序
执行TDengine命令行程序,您只要在Linux终端执行
`taos`
即可。
...
...
documentation20/webdocs/markdowndocs/Model-ch.md
浏览文件 @
68f0359f
...
...
@@ -6,12 +6,12 @@ TDengine采用关系型数据模型,需要建库、建表。因此对于一个
## 创建库
不同类型的数据采集点往往具有不同的数据特征,包括数据采集频率的高低,数据保留时间的长短,副本的数目,数据块的大小等等。为让各种场景下TDengine都能最大效率的工作,TDengine建议将不同数据特征的表创建在不同的库里,因为每个库可以配置不同的存储策略。创建一个库时,除SQL标准的选项外,应用还可以指定保留时长、副本数、内存块个数、时间精度、文件块里最大最小记录条数、是否压缩、一个数据文件覆盖的天数等多种参数。比如:
不同类型的数据采集点往往具有不同的数据特征,包括数据采集频率的高低,数据保留时间的长短,副本的数目,数据块的大小
,是否允许更新数据
等等。为让各种场景下TDengine都能最大效率的工作,TDengine建议将不同数据特征的表创建在不同的库里,因为每个库可以配置不同的存储策略。创建一个库时,除SQL标准的选项外,应用还可以指定保留时长、副本数、内存块个数、时间精度、文件块里最大最小记录条数、是否压缩、一个数据文件覆盖的天数等多种参数。比如:
```
cmd
CREATE DATABASE power KEEP 365 DAYS 10 BLOCKS 4;
CREATE DATABASE power KEEP 365 DAYS 10 BLOCKS 4
UPDATE 1
;
```
上述语句将创建一个名为power的库,这个库的数据将保留365天(超过365天将被自动删除),每10天一个数据文件,内存块数为4。详细的语法及参数请见
<a
href=
"https://www.taosdata.com/cn/documentation20/taos-sql/"
>
TAOS SQL
</a>
上述语句将创建一个名为power的库,这个库的数据将保留365天(超过365天将被自动删除),每10天一个数据文件,内存块数为4
,允许更新数据
。详细的语法及参数请见
<a
href=
"https://www.taosdata.com/cn/documentation20/taos-sql/"
>
TAOS SQL
</a>
创建库之后,需要使用SQL命令USE将当前库切换过来,例如:
...
...
documentation20/webdocs/markdowndocs/TAOS SQL-ch.md
浏览文件 @
68f0359f
...
...
@@ -2,7 +2,7 @@
本文档说明TAOS SQL支持的语法规则、主要查询功能、支持的SQL查询函数,以及常用技巧等内容。阅读本文档需要读者具有基本的SQL语言的基础。
TAOS SQL是用户对TDengine进行数据写入和查询的主要工具。TAOS SQL为了便于用户快速上手,在一定程度上提供类似于标准SQL类似的风格和模式。严格意义上,TAOS SQL并不是也不试图提供SQL标准的语法。此外,由于TDengine针对的时序性结构化数据不提供
修改和更新功能,因此在TAO SQL中不提供数据更新和
数据删除的相关功能。
TAOS SQL是用户对TDengine进行数据写入和查询的主要工具。TAOS SQL为了便于用户快速上手,在一定程度上提供类似于标准SQL类似的风格和模式。严格意义上,TAOS SQL并不是也不试图提供SQL标准的语法。此外,由于TDengine针对的时序性结构化数据不提供
删除功能,因此在TAO SQL中不提供
数据删除的相关功能。
本章节SQL语法遵循如下约定:
...
...
@@ -57,18 +57,29 @@ TDengine缺省的时间戳是毫秒精度,但通过修改配置参数enableMic
## 数据库管理
-
**创建数据库**
```
mysql
CREATE DATABASE [IF NOT EXISTS] db_name [KEEP keep];
```
说明:
1)
`KEEP`
是该数据库的数据保留多长天数,缺省是3650天(10年),数据库会自动删除超过时限的数据;
2) 数据库名最大长度为33;
3) 一条SQL 语句的最大长度为65480个字符;
4) 数据库还有更多与存储相关的配置参数,请参见
[
系统管理
](
../administrator/#服务端配置
)
。
```
mysql
CREATE DATABASE [IF NOT EXISTS] db_name [KEEP keep] [UPDATE 1];
```
说明:
1) KEEP是该数据库的数据保留多长天数,缺省是3650天(10年),数据库会自动删除超过时限的数据;
2) UPDATE 标志数据库支持更新相同时间戳数据;
3) 数据库名最大长度为33;
4) 一条SQL 语句的最大长度为65480个字符;
5) 数据库还有更多与存储相关的配置参数,请参见系统管理。
-
**显示系统当前参数**
```
mysql
SHOW VARIABLES;
```
-
**使用数据库**
```
mysql
USE db_name;
```
...
...
@@ -143,6 +154,12 @@ TDengine缺省的时间戳是毫秒精度,但通过修改配置参数enableMic
显示当前数据库下的所有数据表信息。说明:可在like中使用通配符进行名称的匹配。 通配符匹配:1)’%’ (百分号)匹配0到任意个字符;2)’_’下划线匹配一个字符。
-
**在线修改显示字符宽度**
```mysql
SET MAX_BINARY_DISPLAY_WIDTH <nn>;
```
-
**获取表的结构信息**
```mysql
...
...
documentation20/webdocs/markdowndocs/administrator-ch.md
浏览文件 @
68f0359f
...
...
@@ -96,6 +96,7 @@ TDengine系统后台服务由taosd提供,可以在配置文件taos.cfg里修
-
maxSQLLength:单条SQL语句允许最长限制。默认值:65380字节。
-
telemetryReporting: 是否允许 TDengine 采集和上报基本使用信息,0表示不允许,1表示允许。 默认值:1。
-
stream: 是否启用连续查询(流计算功能),0表示不允许,1表示允许。 默认值:1。
-
queryBufferSize: 为所有并发查询占用保留的内存大小。计算规则可以根据实际应用可能的最大并发数和表的数字相乘,再乘 170 。单位为字节。
**注意:**
对于端口,TDengine会使用从serverPort起13个连续的TCP和UDP端口号,请务必在防火墙打开。因此如果是缺省配置,需要打开从6030都6042共13个端口,而且必须TCP和UDP都打开。
...
...
@@ -156,6 +157,9 @@ TDengine系统的前台交互客户端应用程序为taos,它与taosd共享同
客户端配置参数
-
firstEp: taos启动时,主动连接的集群中第一个taosd实例的end point, 缺省值为 localhost:6030。
-
secondEp: taos 启动时,如果 firstEp 连不上,将尝试连接 secondEp。
-
locale
默认值:系统中动态获取,如果自动获取失败,需要用户在配置文件设置或通过API设置
...
...
@@ -229,7 +233,7 @@ TDengine系统的前台交互客户端应用程序为taos,它与taosd共享同
-
maxBinaryDisplayWidth
Shell中binary 和 nchar字段的显示宽度上限,超过此限制的部分将被隐藏。默认值:30。可在 shell 中通过命令 set max_binary_display_width nn 动态修改此选项。
## 用户管理
...
...
@@ -264,7 +268,7 @@ SHOW USERS;
```
显示所有用户
**注意:**
SQL 语法中,
<
>
表示需要用户输入的部分,但请不要输入
<
>
本身
## 数据导入
...
...
@@ -413,3 +417,65 @@ TDengine的所有可执行文件默认存放在 _/usr/local/taos/bin_ 目录下
您可以通过修改系统配置文件taos.cfg来配置不同的数据目录和日志目录。
## TDengine参数限制与保留关键字
-
数据库名:不能包含“.”以及特殊字符,不能超过32个字符
-
表名:不能包含“.”以及特殊字符,与所属数据库名一起,不能超过192个字符
-
表的列名:不能包含特殊字符,不能超过64个字符
-
表的列数:不能超过1024列
-
记录的最大长度:包括时间戳8 byte,不能超过16KB
-
单条SQL语句默认最大字符串长度:65480 byte
-
数据库副本数:不能超过3
-
用户名:不能超过20个byte
-
用户密码:不能超过15个byte
-
标签(Tags)数量:不能超过128个
-
标签的总长度:不能超过16Kbyte
-
记录条数:仅受存储空间限制
-
表的个数:仅受节点个数限制
-
库的个数:仅受节点个数限制
-
单个库上虚拟节点个数:不能超过64个
目前TDengine有将近200个内部保留关键字,这些关键字无论大小写均不可以用作库名、表名、STable名、数据列名及标签列名等。这些关键字列表如下:
| 关键字列表 | | | | |
| ---------- | ----------- | ------------ | ---------- | --------- |
| ABLOCKS | CONNECTION | GT | MINUS | SHOW |
| ABORT | CONNECTIONS | ID | MNODES | SLASH |
| ACCOUNT | COPY | IF | MODULES | SLIDING |
| ACCOUNTS | COUNT | IGNORE | NCHAR | SMALLINT |
| ADD | CREATE | IMMEDIATE | NE | SPREAD |
| AFTER | CTIME | IMPORT | NONE | STAR |
| ALL | DATABASE | IN | NOT | STATEMENT |
| ALTER | DATABASES | INITIALLY | NOTNULL | STDDEV |
| AND | DAYS | INSERT | NOW | STREAM |
| AS | DEFERRED | INSTEAD | OF | STREAMS |
| ASC | DELIMITERS | INTEGER | OFFSET | STRING |
| ATTACH | DESC | INTERVAL | OR | SUM |
| AVG | DESCRIBE | INTO | ORDER | TABLE |
| BEFORE | DETACH | IP | PASS | TABLES |
| BEGIN | DIFF | IS | PERCENTILE | TAG |
| BETWEEN | DIVIDE | ISNULL | PLUS | TAGS |
| BIGINT | DNODE | JOIN | PRAGMA | TBLOCKS |
| BINARY | DNODES | KEEP | PREV | TBNAME |
| BITAND | DOT | KEY | PRIVILEGE | TIMES |
| BITNOT | DOUBLE | KILL | QUERIES | TIMESTAMP |
| BITOR | DROP | LAST | QUERY | TINYINT |
| BOOL | EACH | LE | RAISE | TOP |
| BOTTOM | END | LEASTSQUARES | REM | TRIGGER |
| BY | EQ | LIKE | REPLACE | UMINUS |
| CACHE | EXISTS | LIMIT | REPLICA | UPLUS |
| CASCADE | EXPLAIN | LINEAR | RESET | USE |
| CHANGE | FAIL | LOCAL | RESTRICT | USER |
| CLOG | FILL | LP | ROW | USERS |
| CLUSTER | FIRST | LSHIFT | ROWS | USING |
| COLON | FLOAT | LT | RP | VALUES |
| COLUMN | FOR | MATCH | RSHIFT | VARIABLE |
| COMMA | FROM | MAX | SCORES | VGROUPS |
| COMP | GE | METRIC | SELECT | VIEW |
| CONCAT | GLOB | METRICS | SEMI | WAVG |
| CONFIGS | GRANTS | MIN | SET | WHERE |
| CONFLICT | GROUP | | | |
documentation20/webdocs/markdowndocs/connector-ch.md
浏览文件 @
68f0359f
# 连接器
TDengine提供了丰富的应用程序开发接口,其中包括C/C++、JAVA、Python、RESTful、Go等,便于用户快速开发应用。
TDengine提供了丰富的应用程序开发接口,其中包括C/C++、C# 、Java、Python、Go、Node.js、RESTful 等,便于用户快速开发应用。
![
image-connecotr
](
../assets/connector.png
)
目前TDengine的连接器可支持的平台广泛,目前包括:X64/X86/ARM64/ARM32/MIPS/Alpha等硬件平台,以及Linux/Win64/Win32等开发环境。对照矩阵如下:
| |
**CPU**
|
**X64 64bit**
|
**X86 32bit**
|
**ARM64**
|
**ARM32**
|
**MIPS **
**龙芯**
|
**Alpha **
**申威**
|
**X64 **
**海光**
| | |
| ---------------------------- | --------- | --------------- | --------------- | --------- | --------- | ------------------- | -------------------- | ------------------ | --------- | --------- |
| |
**OS**
|
**Linux**
|
**Win64**
|
**Win32**
|
**Win32**
|
**Linux**
|
**Linux**
|
**Linux**
|
**Linux**
|
**Linux**
|
|
**连**
**接**
**器**
|
**C/C++**
| ● | ● | ● | ○ | ● | ● | ● | ● | ● |
|
**JDBC**
| ● | ● | ● | ○ | ● | ● | ● | ● | ● | |
|
**Python**
| ● | ● | ● | ○ | ● | ● | ● | -- | ● | |
|
**Go**
| ● | ● | ● | ○ | ● | ● | ○ | -- | -- | |
|
**NodeJs**
| ● | ● | ○ | ○ | ● | ● | ○ | -- | -- | |
|
**C#**
| ○ | ● | ● | ○ | ○ | ○ | ○ | -- | -- | |
|
**RESTful**
| ● | ● | ● | ● | ● | ● | ● | ● | ● | |
注意:所有执行 SQL 语句的 API,例如 C/C++ Connector 中的
`tao_query`
、
`taos_query_a`
、
`taos_subscribe`
等,以及其它语言中与它们对应的API,每次都只能执行一条 SQL 语句,如果实际参数中包含了多条语句,它们的行为是未定义的。
...
...
@@ -664,23 +679,45 @@ import (
_ "github.com/taosdata/driver-go/taosSql"
)
```
**建议Go版本是1.13或以上,并开启模块支持:**
```
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
```
### 常用API
*
`sql.Open(DRIVER_NAME string, dataSourceName string) *DB`
该API用来打开DB,返回一个类型为
*
DB的对象,一般情况下,DRIVER_NAME设置为字符串
`taosSql`
, dataSourceName设置为字符串
`user:password@/tcp(host:port)/dbname`
,如果客户想要用多个goroutine并发访问TDengine, 那么需要在各个goroutine中分别创建一个sql.Open对象并用之访问TDengine
**注意**
: 该API成功创建的时候,并没有做权限等检查,只有在真正执行Query或者Exec的时候才能真正的去创建连接,并同时检查user/password/host/port是不是合法。 另外,由于整个驱动程序大部分实现都下沉到taosSql所依赖的libtaos中。所以,sql.Open本身特别轻量。
*
`func (db *DB) Exec(query string, args ...interface{}) (Result, error)`
-
sql.Open(DRIVER_NAME string, dataSourceName string)
*
DB
`
该API用来打开DB,返回一个类型为*DB的对象,一般情况下,DRIVER_NAME设置为字符串`
taosSql
`, dataSourceName设置为字符串`
user:password@/tcp(host:port)/dbname
`,如果客户想要用多个goroutine并发访问TDengine, 那么需要在各个goroutine中分别创建一个sql.Open对象并用之访问TDengine
**注意**: 该API成功创建的时候,并没有做权限等检查,只有在真正执行Query或者Exec的时候才能真正的去创建连接,并同时检查user/password/host/port是不是合法。 另外,由于整个驱动程序大部分实现都下沉到taosSql所依赖的libtaos中。所以,sql.Open本身特别轻量。
- `
func (db
*
DB) Exec(query string, args ...interface{}) (Result, error)
`
sql.Open内置的方法,用来执行非查询相关SQL
*
`func (db *DB) Query(query string, args ...interface{}) (*Rows, error)`
- `
func (db
*DB) Query(query string, args ...interface{}) (*
Rows, error)
`
sql.Open内置的方法,用来执行查询语句
- `
func (db
*DB) Prepare(query string) (*
Stmt, error)
`
sql.Open内置的方法,Prepare creates a prepared statement for later queries or executions.
- `
func (s
*
Stmt) Exec(args ...interface{}) (Result, error)
`
sql.Open内置的方法,executes a prepared statement with the given arguments and returns a Result summarizing the effect of the statement.
- `
func (s
*Stmt) Query(args ...interface{}) (*
Rows, error)
`
sql.Open内置的方法,Query executes a prepared query statement with the given arguments and returns the query results as a *Rows.
- `
func (s
*
Stmt) Close() error
`
sql.Open内置的方法,Close closes the statement.
## Node.js Connector
TDengine 同时也提供了node.js 的连接器。用户可以通过[npm](https://www.npmjs.com/)来进行安装,也可以通过源代码*src/connector/nodejs/* 来进行安装。[具体安装步骤如下](https://github.com/taosdata/tdengine/tree/master/src/connector/nodejs):
...
...
@@ -701,32 +738,6 @@ npm install td2.0-connector
- `
make
`
- c语言编译器比如[GCC](https://gcc.gnu.org)
### macOS
-
`python`
(建议
`v2.7`
,
`v3.x.x`
目前还不支持)
-
Xcode
- 然后通过Xcode安装
```
Command Line Tools
```
在
```
Xcode -> Preferences -> Locations
```
目录下可以找到这个工具。或者在终端里执行
```
xcode-select --install
```
- 该步执行后 `gcc` 和 `make`就被安装上了
### Windows
#### 安装方法1
...
...
documentation20/webdocs/markdowndocs/connector-java-ch.md
浏览文件 @
68f0359f
# Java Connector
Java连接器支持的系统有: Linux 64/Windows x64/Windows x86。
TDengine 为了方便 Java 应用使用,提供了遵循 JDBC 标准(3.0)API 规范的
`taos-jdbcdriver`
实现。目前可以通过
[
Sonatype Repository
][
1
]
搜索并下载。
由于 TDengine 是使用 c 语言开发的,使用 taos-jdbcdriver 驱动包时需要依赖系统对应的本地函数库。
...
...
@@ -24,7 +26,8 @@ TDengine 的 JDBC 驱动实现尽可能的与关系型数据库驱动保持一
| taos-jdbcdriver 版本 | TDengine 版本 | JDK 版本 |
| --- | --- | --- |
| 2.0.4 | 2.0.0.x 及以上 | 1.8.x |
| 2.0.12 及以上 | 2.0.8.0 及以上 | 1.8.x |
| 2.0.4 - 2.0.11 | 2.0.0.0 - 2.0.7.x | 1.8.x |
| 1.0.3 | 1.6.1.x 及以上 | 1.8.x |
| 1.0.2 | 1.6.1.x 及以上 | 1.8.x |
| 1.0.1 | 1.6.1.x 及以上 | 1.8.x |
...
...
documentation20/webdocs/markdowndocs/faq-ch.md
浏览文件 @
68f0359f
...
...
@@ -117,7 +117,17 @@ Connection = DriverManager.getConnection(url, properties);
## 16. 怎么报告问题?
## 16. 如何进行数据迁移?
TDengine是根据hostname唯一标志一台机器的,在数据文件从机器A移动机器B时,注意如下两件事:
-
2.0.0.0 至 2.0.6.x 的版本,重新配置机器B的hostname为机器A的hostname
-
2.0.7.0 及以后的版本,到/var/lib/taos/dnode下,修复dnodeEps.json的dnodeId对应的FQDN,重启。确保机器内所有机器的此文件是完全相同的。
-
1.x 和 2.x 版本的存储结构不兼容,需要使用迁移工具或者自己开发应用导出导入数据。
## 17. 怎么报告问题?
如果 FAQ 中的信息不能够帮到您,需要 TDengine 技术团队的技术支持与协助,请将以下两个目录中内容打包:
1.
/var/log/taos
...
...
documentation20/webdocs/markdowndocs/insert-ch.md
浏览文件 @
68f0359f
...
...
@@ -24,7 +24,7 @@ INSERT INTO d1001 VALUES (1538548685000, 10.3, 219, 0.31) (1538548695000, 12.6,
-
要提高写入效率,需要批量写入。一批写入的记录条数越多,插入效率就越高。但一条记录不能超过16K,一条SQL语句总长度不能超过64K(可通过参数maxSQLLength配置,最大可配置为1M)。
-
TDengine支持多线程同时写入,要进一步提高写入速度,一个客户端需要打开20个以上的线程同时写。但线程数达到一定数量后,无法再提高,甚至还会下降,因为线程切频繁切换,带来额外开销。
-
对同一张表,如果新插入记录的时间戳已经存在,
新记录将被直接抛弃,也就是说,在一张表里,时间戳必须是唯一的。如果应用自动生成记录,很有可能生成的时间戳是一样的,这样,成功插入的记录条数会小于应用插入的记录条数
。
-
对同一张表,如果新插入记录的时间戳已经存在,
默认(没有使用 UPDATE 1 创建数据库)新记录将被直接抛弃,也就是说,在一张表里,时间戳必须是唯一的。如果应用自动生成记录,很有可能生成的时间戳是一样的,这样,成功插入的记录条数会小于应用插入的记录条数。如果在创建数据库时使用 UPDATE 1 选项,插入相同时间戳的新记录将覆盖原有记录
。
-
写入的数据的时间戳必须大于当前时间减去配置参数keep的时间。如果keep配置为3650天,那么无法写入比3650天还老的数据。写入数据的时间戳也不能大于当前时间加配置参数days。如果days配置为2,那么无法写入比当前时间还晚2天的数据。
## Prometheus直接写入
...
...
tests/pytest/fulltest.sh
浏览文件 @
68f0359f
...
...
@@ -32,7 +32,6 @@ python3 ./test.py -f table/create_sensitive.py
python3 ./test.py
-f
table/max_table_length.py
python3 ./test.py
-f
table/alter_column.py
python3 ./test.py
-f
table/boundary.py
python3 ./test.py
-f
table/create-a-lot.py
python3 ./test.py
-f
table/create.py
python3 ./test.py
-f
table/del_stable.py
python3 ./test.py
-f
table/queryWithTaosdKilled.py
...
...
@@ -213,6 +212,7 @@ python3 ./test.py -f functions/function_stddev.py -r 1
python3 ./test.py
-f
functions/function_sum.py
-r
1
python3 ./test.py
-f
functions/function_top.py
-r
1
#python3 ./test.py -f functions/function_twa.py -r 1
python3 ./test.py
-f
functions/function_twa_test2.py
python3 queryCount.py
python3 ./test.py
-f
query/queryGroupbyWithInterval.py
python3 client/twoClients.py
...
...
tests/pytest/functions/function_twa_test2.py
0 → 100644
浏览文件 @
68f0359f
###################################################################
# Copyright (c) 2016 by TAOS Technologies, Inc.
# All rights reserved.
#
# This file is proprietary and confidential to TAOS Technologies.
# No part of this file may be reproduced, stored, transmitted,
# disclosed or used in any form or by any means other than as
# expressly provided by the written permission from Jianhui Tao
#
###################################################################
# -*- coding: utf-8 -*-
import
sys
import
taos
from
util.log
import
*
from
util.cases
import
*
from
util.sql
import
*
import
numpy
as
np
class
TDTestCase
:
def
init
(
self
,
conn
,
logSql
):
tdLog
.
debug
(
"start to execute %s"
%
__file__
)
tdSql
.
init
(
conn
.
cursor
())
self
.
rowNum
=
10
self
.
ts
=
1537146000000
def
run
(
self
):
tdSql
.
prepare
()
tdSql
.
execute
(
"create table t1(ts timestamp, c int)"
)
for
i
in
range
(
self
.
rowNum
):
tdSql
.
execute
(
"insert into t1 values(%d, %d)"
%
(
self
.
ts
+
i
*
10000
,
i
+
1
))
# twa verifacation
tdSql
.
query
(
"select twa(c) from t1 where ts >= '2018-09-17 09:00:00.000' and ts <= '2018-09-17 09:01:30.000' "
)
tdSql
.
checkRows
(
1
)
tdSql
.
checkData
(
0
,
0
,
5.5
)
tdSql
.
query
(
"select twa(c) from t1 where ts >= '2018-09-17 09:00:00.000' and ts <= '2018-09-17 09:01:30.000' interval(10s)"
)
tdSql
.
checkRows
(
10
)
tdSql
.
checkData
(
0
,
1
,
1.49995
)
tdSql
.
checkData
(
1
,
1
,
2.49995
)
tdSql
.
checkData
(
2
,
1
,
3.49995
)
tdSql
.
checkData
(
3
,
1
,
4.49995
)
tdSql
.
checkData
(
4
,
1
,
5.49995
)
tdSql
.
checkData
(
5
,
1
,
6.49995
)
tdSql
.
checkData
(
6
,
1
,
7.49995
)
tdSql
.
checkData
(
7
,
1
,
8.49995
)
tdSql
.
checkData
(
8
,
1
,
9.49995
)
tdSql
.
checkData
(
9
,
1
,
10
)
tdSql
.
query
(
"select twa(c) from t1 where ts >= '2018-09-17 09:00:00.000' and ts <= '2018-09-17 09:01:30.000' interval(10s) sliding(5s)"
)
tdSql
.
checkRows
(
20
)
tdSql
.
checkData
(
0
,
1
,
1.24995
)
tdSql
.
checkData
(
1
,
1
,
1.49995
)
tdSql
.
checkData
(
2
,
1
,
1.99995
)
tdSql
.
checkData
(
3
,
1
,
2.49995
)
tdSql
.
checkData
(
4
,
1
,
2.99995
)
tdSql
.
checkData
(
5
,
1
,
3.49995
)
tdSql
.
checkData
(
6
,
1
,
3.99995
)
tdSql
.
checkData
(
7
,
1
,
4.49995
)
tdSql
.
checkData
(
8
,
1
,
4.99995
)
tdSql
.
checkData
(
9
,
1
,
5.49995
)
tdSql
.
checkData
(
10
,
1
,
5.99995
)
tdSql
.
checkData
(
11
,
1
,
6.49995
)
tdSql
.
checkData
(
12
,
1
,
6.99995
)
tdSql
.
checkData
(
13
,
1
,
7.49995
)
tdSql
.
checkData
(
14
,
1
,
7.99995
)
tdSql
.
checkData
(
15
,
1
,
8.49995
)
tdSql
.
checkData
(
16
,
1
,
8.99995
)
tdSql
.
checkData
(
17
,
1
,
9.49995
)
tdSql
.
checkData
(
18
,
1
,
9.75000
)
tdSql
.
checkData
(
19
,
1
,
10
)
def
stop
(
self
):
tdSql
.
close
()
tdLog
.
success
(
"%s successfully executed"
%
__file__
)
tdCases
.
addWindows
(
__file__
,
TDTestCase
())
tdCases
.
addLinux
(
__file__
,
TDTestCase
())
tests/pytest/pytest_1.sh
浏览文件 @
68f0359f
...
...
@@ -30,7 +30,6 @@ python3 ./test.py -f table/create_sensitive.py
python3 ./test.py
-f
table/max_table_length.py
python3 ./test.py
-f
table/alter_column.py
python3 ./test.py
-f
table/boundary.py
python3 ./test.py
-f
table/create-a-lot.py
python3 ./test.py
-f
table/create.py
python3 ./test.py
-f
table/del_stable.py
python3 ./test.py
-f
table/queryWithTaosdKilled.py
...
...
@@ -206,6 +205,7 @@ python3 ./test.py -f functions/function_stddev.py -r 1
python3 ./test.py
-f
functions/function_sum.py
-r
1
python3 ./test.py
-f
functions/function_top.py
-r
1
#python3 ./test.py -f functions/function_twa.py -r 1
python3 ./test.py
-f
functions/function_twa_test2.py
python3 queryCount.py
python3 ./test.py
-f
query/queryGroupbyWithInterval.py
python3 client/twoClients.py
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录