docs: minor changes

This commit is contained in:
Simon Guan 2025-03-04 23:58:32 +08:00
parent 8aa2573ebf
commit c8fae10a96
14 changed files with 107 additions and 105 deletions

View File

@ -4,7 +4,7 @@ title: TDengine Kafka Connector
description: 使用 TDengine Kafka Connector 的详细指南 description: 使用 TDengine Kafka Connector 的详细指南
--- ---
TDengine Kafka Connector 包含两个插件: TDengine Source Connector 和 TDengine Sink Connector。用户只需提供简单的配置文件就可以将 Kafka 中指定 topic 的数据(批量或实时)同步到 TDengine 或将 TDengine 中指定数据库的数据(批量或实时)同步到 Kafka。 TDengine Kafka Connector 包含 TDengine Source Connector 和 TDengine Sink Connector 两个插件。用户只需提供简单的配置文件,就可以将 Kafka 中指定 topic 的数据(批量或实时)同步到 TDengine或将 TDengine 中指定数据库的数据(批量或实时)同步到 Kafka。
## 什么是 Kafka Connect ## 什么是 Kafka Connect
@ -346,16 +346,16 @@ curl -X DELETE http://localhost:8083/connectors/TDengineSourceConnector
以下配置项对 TDengine Sink Connector 和 TDengine Source Connector 均适用。 以下配置项对 TDengine Sink Connector 和 TDengine Source Connector 均适用。
1. `name`: connector 名称。 1. `name`connector 名称。
1. `connector.class`: connector 的完整类名, 如: com.taosdata.kafka.connect.sink.TDengineSinkConnector。 1. `connector.class`connector 的完整类名,例如如 com.taosdata.kafka.connect.sink.TDengineSinkConnector。
1. `tasks.max`: 最大任务数, 默认 1。 1. `tasks.max`最大任务数, 默认 1。
1. `topics`: 需要同步的 topic 列表, 多个用逗号分隔, 如 `topic1,topic2` 1. `topics`:需要同步的 topic 列表,多个用逗号分隔, 如 `topic1,topic2`
1. `connection.url`: TDengine JDBC 连接字符串, `jdbc:TAOS://127.0.0.1:6030` 1. `connection.url`TDengine JDBC 连接字符串,`jdbc:TAOS://127.0.0.1:6030`
1. `connection.user`TDengine 用户名,默认 root。 1. `connection.user`TDengine 用户名,默认 root。
1. `connection.password`TDengine 用户密码,默认 taosdata。 1. `connection.password`TDengine 用户密码,默认 taosdata。
1. `connection.attempts`:最大尝试连接次数。默认 3。 1. `connection.attempts`:最大尝试连接次数。默认 3。
1. `connection.backoff.ms`:创建连接失败重试时间隔时间,单位为 ms。默认 5000。 1. `connection.backoff.ms`:创建连接失败重试时间隔时间,单位为 ms。默认 5000。
1. `data.precision`: 使用 InfluxDB 行协议格式时,时间戳的精度。可选值为: 1. `data.precision`使用 InfluxDB 行协议格式时,时间戳的精度。可选值为:
1. ms表示毫秒 1. ms表示毫秒
1. us表示微秒 1. us表示微秒
1. ns表示纳秒 1. ns表示纳秒
@ -364,29 +364,29 @@ curl -X DELETE http://localhost:8083/connectors/TDengineSourceConnector
1. `connection.database`:目标数据库名。如果指定的数据库不存在会则自动创建。自动建库使用的时间精度为纳秒。默认值为 null。为 null 时目标数据库命名规则参考 `connection.database.prefix` 参数的说明 1. `connection.database`:目标数据库名。如果指定的数据库不存在会则自动创建。自动建库使用的时间精度为纳秒。默认值为 null。为 null 时目标数据库命名规则参考 `connection.database.prefix` 参数的说明
2. `connection.database.prefix`:当 connection.database 为 null 时, 目标数据库的前缀。可以包含占位符 '$\{topic}'。比如 kafka_$\{topic}, 对于主题 'orders' 将写入数据库 'kafka_orders'。默认 null。当为 null 时,目标数据库的名字和主题的名字是一致的。 2. `connection.database.prefix`:当 connection.database 为 null 时, 目标数据库的前缀。可以包含占位符 '$\{topic}'。比如 kafka_$\{topic}, 对于主题 'orders' 将写入数据库 'kafka_orders'。默认 null。当为 null 时,目标数据库的名字和主题的名字是一致的。
3. `batch.size`: 分批写入每批记录数。当 Sink Connector 一次接收到的数据大于这个值时将分批写入。 3. `batch.size`分批写入每批记录数。当 Sink Connector 一次接收到的数据大于这个值时将分批写入。
4. `max.retries`: 发生错误时的最大重试次数。默认为 1。 4. `max.retries`发生错误时的最大重试次数。默认为 1。
5. `retry.backoff.ms`: 发送错误时重试的时间间隔。单位毫秒,默认为 3000。 5. `retry.backoff.ms`发送错误时重试的时间间隔。单位毫秒,默认为 3000。
6. `db.schemaless`: 数据格式,可选值为: 6. `db.schemaless`数据格式,可选值为:
1. line代表 InfluxDB 行协议格式 1. line代表 InfluxDB 行协议格式
2. json : 代表 OpenTSDB JSON 格式 2. json代表 OpenTSDB JSON 格式
3. telnet代表 OpenTSDB Telnet 行协议格式 3. telnet代表 OpenTSDB Telnet 行协议格式
### TDengine Source Connector 特有的配置 ### TDengine Source Connector 特有的配置
1. `connection.database`: 源数据库名称,无缺省值。 1. `connection.database`源数据库名称,无缺省值。
1. `topic.prefix`:数据导入 kafka 时使用的 topic 名称的前缀。默认为空字符串 ""。 1. `topic.prefix`:数据导入 kafka 时使用的 topic 名称的前缀。默认为空字符串 ""。
1. `timestamp.initial`: 数据同步起始时间。格式为'yyyy-MM-dd HH:mm:ss',若未指定则从指定 DB 中最早的一条记录开始。 1. `timestamp.initial`数据同步起始时间。格式为'yyyy-MM-dd HH:mm:ss',若未指定则从指定 DB 中最早的一条记录开始。
1. `poll.interval.ms`: 检查是否有新建或删除的表的时间间隔,单位为 ms。默认为 1000。 1. `poll.interval.ms`检查是否有新建或删除的表的时间间隔,单位为 ms。默认为 1000。
1. `fetch.max.rows` : 检索数据库时最大检索条数。 默认为 100。 1. `fetch.max.rows`:检索数据库时最大检索条数。默认为 100。
1. `query.interval.ms`: 从 TDengine 一次读取数据的时间跨度,需要根据表中的数据特征合理配置,避免一次查询的数据量过大或过小;在具体的环境中建议通过测试设置一个较优值,默认值为 0即获取到当前最新时间的所有数据。 1. `query.interval.ms`从 TDengine 一次读取数据的时间跨度,需要根据表中的数据特征合理配置,避免一次查询的数据量过大或过小;在具体的环境中建议通过测试设置一个较优值,默认值为 0即获取到当前最新时间的所有数据。
1. `out.format` : 结果集输出格式。`line` 表示输出格式为 InfluxDB Line 协议格式,`json` 表示输出格式是 json。默认为 line。 1. `out.format`结果集输出格式。`line` 表示输出格式为 InfluxDB Line 协议格式,`json` 表示输出格式是 json。默认为 line。
1. `topic.per.stable`: 如果设置为 true表示一个超级表对应一个 Kafka topictopic的命名规则 `<topic.prefix><topic.delimiter><connection.database><topic.delimiter><stable.name>`;如果设置为 false则指定的 DB 中的所有数据进入一个 Kafka topictopic 的命名规则为 `<topic.prefix><topic.delimiter><connection.database>` 1. `topic.per.stable`如果设置为 true表示一个超级表对应一个 Kafka topictopic的命名规则 `<topic.prefix><topic.delimiter><connection.database><topic.delimiter><stable.name>`;如果设置为 false则指定的 DB 中的所有数据进入一个 Kafka topictopic 的命名规则为 `<topic.prefix><topic.delimiter><connection.database>`
1. `topic.ignore.db`: topic 命名规则是否包含 database 名称true 表示规则为 `<topic.prefix><topic.delimiter><stable.name>`false 表示规则为 `<topic.prefix><topic.delimiter><connection.database><topic.delimiter><stable.name>`,默认 false。此配置项在 `topic.per.stable` 设置为 false 时不生效。 1. `topic.ignore.db`topic 命名规则是否包含 database 名称true 表示规则为 `<topic.prefix><topic.delimiter><stable.name>`false 表示规则为 `<topic.prefix><topic.delimiter><connection.database><topic.delimiter><stable.name>`,默认 false。此配置项在 `topic.per.stable` 设置为 false 时不生效。
1. `topic.delimiter`: topic 名称分割符,默认为 `-` 1. `topic.delimiter`topic 名称分割符,默认为 `-`
1. `read.method`: 从 TDengine 读取数据方式query 或是 subscription。默认为 subscription。 1. `read.method`从 TDengine 读取数据方式query 或是 subscription。默认为 subscription。
1. `subscription.group.id`: 指定 TDengine 数据订阅的组 id`read.method` 为 subscription 时,此项为必填项。 1. `subscription.group.id`指定 TDengine 数据订阅的组 id`read.method` 为 subscription 时,此项为必填项。
1. `subscription.from`: 指定 TDengine 数据订阅起始位置latest 或是 earliest。默认为 latest。 1. `subscription.from`指定 TDengine 数据订阅起始位置latest 或是 earliest。默认为 latest。
## 其他说明 ## 其他说明

View File

@ -21,8 +21,11 @@ TDengine连接器兼容TDengine Cloud和TDengine Server两种类型的数据源
- URL 和 TDengine Cloud Token可以从 TDengine Cloud 的实例列表中获取。 - URL 和 TDengine Cloud Token可以从 TDengine Cloud 的实例列表中获取。
- 数据库名称和超级表名称。 - 数据库名称和超级表名称。
- 查询数据的开始时间和结束时间。 - 查询数据的开始时间和结束时间。
第 2 步Looker Studio 会根据配置自动加载所配置的 TDengine 数据库下的超级表的字段和标签。 第 2 步Looker Studio 会根据配置自动加载所配置的 TDengine 数据库下的超级表的字段和标签。
第 3 步,点击页面右上角的 Explore 按钮,即查看从 TDengine 数据库中加载的数据。 第 3 步,点击页面右上角的 Explore 按钮,即查看从 TDengine 数据库中加载的数据。
第 4 步,根据需求,利用 Looker Studio 提供的图表,进行数据可视化的配置。 第 4 步,根据需求,利用 Looker Studio 提供的图表,进行数据可视化的配置。
**注意** 在第一次使用时,请根据页面提示,对 Looker Studio 的 TDengine 连接器进行访问授权。 **注意** 在第一次使用时,请根据页面提示,对 Looker Studio 的 TDengine 连接器进行访问授权。

View File

@ -29,7 +29,7 @@ Power BI 是由 Microsoft 提供的一种商业分析工具。通过配置使用
### 使用说明 ### 使用说明
为了充分发挥 Power BI 在分析 TDengine中 数据方面的优势,用户需要先理解维度、度量、窗口切分查询、数据切分查询、时序和相关性等核心概念,之后通过自定义的 SQL 导入数据。 为了充分发挥 Power BI 在分析 TDengine中 数据方面的优势,用户需要先理解维度、度量、窗口切分查询、数据切分查询、时序和相关性等核心概念,之后通过自定义的 SQL 导入数据。
- 维度:通常是分类(文本)数据,描述设备、测点、型号等类别信息。在 TDengine 的超级表中,使用标签列存储数据的维度信息,可以通过形如 “select distinct tbname, tag1, tag2 from supertable” 的SQL语法快速获得维度信息。 - 维度:通常是分类(文本)数据,描述设备、测点、型号等类别信息。在 TDengine 的超级表中,使用标签列存储数据的维度信息,可以通过形如 `select distinct tbname, tag1, tag2 from supertable` 的 SQL 语法快速获得维度信息。
- 度量:可以用于进行计算的定量(数值)字段,常见计算有求和、取平均值和最小值等。如果测点的采集周期为 1s那么一年就有 3000 多万条记录,把这些数据全部导入 Power BI 会严重影响其执行效率。在 TDengine 中,用户可以使用数据切分查询、窗口切分查询等语法,结合与窗口相关的伪列,把降采样后的数据导入 Power BI 中,具体语法请参阅 TDengine 官方文档的特色查询功能部分。 - 度量:可以用于进行计算的定量(数值)字段,常见计算有求和、取平均值和最小值等。如果测点的采集周期为 1s那么一年就有 3000 多万条记录,把这些数据全部导入 Power BI 会严重影响其执行效率。在 TDengine 中,用户可以使用数据切分查询、窗口切分查询等语法,结合与窗口相关的伪列,把降采样后的数据导入 Power BI 中,具体语法请参阅 TDengine 官方文档的特色查询功能部分。
- 窗口切分查询:比如温度传感器每秒采集一次数据,但须查询每隔 10min 的温度平均值,在这种场景下可以使用窗口子句来获得需要的降采样查询结果,对应的 SQL 形如 `select tbname, _wstart dateavg(temperature) temp from table interval(10m)`,其中,`_wstart` 是伪列表示时间窗口起始时间10m 表示时间窗口的持续时间,`avg(temperature)` 表示时间窗口内的聚合值。 - 窗口切分查询:比如温度传感器每秒采集一次数据,但须查询每隔 10min 的温度平均值,在这种场景下可以使用窗口子句来获得需要的降采样查询结果,对应的 SQL 形如 `select tbname, _wstart dateavg(temperature) temp from table interval(10m)`,其中,`_wstart` 是伪列表示时间窗口起始时间10m 表示时间窗口的持续时间,`avg(temperature)` 表示时间窗口内的聚合值。
- 数据切分查询:如果需要同时获取很多温度传感器的聚合数值,可对数据进行切分,然后在切分出的数据空间内进行一系列的计算,对应的 SQL 形如 `partition by part_list`。数据切分子句最常见的用法是在超级表查询中按标签将子表数据进行切分,将每个子表的数据独立出来,形成一条条独立的时间序列,方便针对各种时序场景的统计分析。 - 数据切分查询:如果需要同时获取很多温度传感器的聚合数值,可对数据进行切分,然后在切分出的数据空间内进行一系列的计算,对应的 SQL 形如 `partition by part_list`。数据切分子句最常见的用法是在超级表查询中按标签将子表数据进行切分,将每个子表的数据独立出来,形成一条条独立的时间序列,方便针对各种时序场景的统计分析。

View File

@ -19,8 +19,7 @@ qStudio 是一款免费的多平台 SQL 数据分析工具,可以轻松浏览
![qStudio 连接 TDengine](./qstudio/qstudio-connect-tdengine.webp) ![qStudio 连接 TDengine](./qstudio/qstudio-connect-tdengine.webp)
2. 配置 TDengine 连接,填入主机地址、端口号、用户名和密码。如果 TDengine 部署在本机,可以只填用户名和密码,默认用户名为 root默认密码为 taosdata。点击“Test”可以对连接是否可用进行测试。如果本机没有安装 TDengine Java 2. 配置 TDengine 连接,填入主机地址、端口号、用户名和密码。如果 TDengine 部署在本机,可以只填用户名和密码,默认用户名为 root默认密码为 taosdata。点击 “Test” 可以对连接是否可用进行测试。如果本机没有安装 TDengine Java 连接器qStudio 会提示下载安装。
连接器qStudio 会提示下载安装。
![下载 Java 连接器](./qstudio/qstudio-jdbc-connector-download.webp) ![下载 Java 连接器](./qstudio/qstudio-jdbc-connector-download.webp)

View File

@ -87,14 +87,14 @@ TDengine 为了解决实际应用中对不同数据采集点数据进行高效
![多表聚合查询流程](./aggquery.png) ![多表聚合查询流程](./aggquery.png)
具体步骤说明如下。 具体步骤说明如下。
第 1 步taosc 从 mnode 获取库和表的元数据信息。 - 第 1 步taosc 从 mnode 获取库和表的元数据信息。
第 2 步mnode 返回请求的元数据信息。 - 第 2 步mnode 返回请求的元数据信息。
第 3 步taosc 向超级表所属的每个 vnode 发送查询请求。 - 第 3 步taosc 向超级表所属的每个 vnode 发送查询请求。
第 4 步vnode 启动本地查询,在获得查询结果后返回查询响应。 - 第 4 步vnode 启动本地查询,在获得查询结果后返回查询响应。
第 5 步taosc 向聚合节点(在本例中为 qnode发送查询请求。 - 第 5 步taosc 向聚合节点(在本例中为 qnode发送查询请求。
第 6 步qnode 向每个 vnode 节点发送数据请求消息来拉取数据。 - 第 6 步qnode 向每个 vnode 节点发送数据请求消息来拉取数据。
第 7 步vnode 返回本节点的查询计算结果。 - 第 7 步vnode 返回本节点的查询计算结果。
第 8 步qnode 完成多节点数据聚合后将最终查询结果返回给客户端。 - 第 8 步qnode 完成多节点数据聚合后将最终查询结果返回给客户端。
TDengine 为了提升聚合计算速度,在 vnode 内实现了标签数据与时序数据的分离存储。首先,系统会在内存中过滤标签数据,以确定需要参与聚合操作的表的集合。这样做可以显著减少需要扫描的数据集,从而大幅提高聚合计算的速度。 TDengine 为了提升聚合计算速度,在 vnode 内实现了标签数据与时序数据的分离存储。首先,系统会在内存中过滤标签数据,以确定需要参与聚合操作的表的集合。这样做可以显著减少需要扫描的数据集,从而大幅提高聚合计算的速度。