homework-jianmu/docs/zh/08-develop/12-third-party.md

20 KiB
Raw Blame History

title sidebar_label toc_max_heading_level
与第三方集成 与第三方集成 4

import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem";

TDengine是一个高性能、可扩展的时序数据库它支持SQL查询语言兼容标准的JDBC和ODBC接口同时还支持RESTful接口。这使得TDengine能够轻松地与各种商业智能软件和工具集成从而构建一个开放的技术生态系统。本章将简要介绍TDengine 如何与一些流行的第三方工具进行集成。

Grafana

Grafana是一个广受欢迎的开源可视化和分析工具旨在帮助用户轻松地查询、可视化和监控存储在不同位置的指标、日志和跟踪信息。通过Grafana用户可以将时序数据库中的数据以直观的图表形式展示出来实现数据的可视化分析。

为了方便用户在Grafana中集成TDengine并展示时序数据TDengine团队提供了一个名为TDengine Datasource的Grafana插件。通过安装此插件用户无须编写任何代码即可实现TDengine与Grafana的快速集成。这使得用户能够轻松地将存储在TDengine 中的时序数据以可视化的方式呈现在Grafana的仪表盘中从而更好地监控和分析数据库性能。

前置条件

要让 Grafana 能正常添加 TDengine 数据源,需要以下几方面的准备工作。

  1. TDengine 集群已经部署并正常运行;
  2. taosAdapter 已经安装并正常运行;
  3. Grafana 7.5.0 及以上的版本已经安装并正常运行。

记录以下信息:

  1. taosAdapter 的 REST API 地址,例如:http://www.example.com:6041
  2. TDengine 集群的认证信息包括用户名和密码默认为root/taosdata

安装 TDengine Datasource 插件

TDengine Datasource插件安装方式如下。 第1步在Web浏览器打开Grafana页面点击页面左上角的3个横条图标然后点击Connections按钮。 第2步在弹出页面的搜索栏内搜索TDengine选择TDengine Datasource。 第3步点击Install按钮以安装TDengine插件。 安装完成后进入插件的详情页面点击右上角的Add new data source按钮即可进入数据源添加页面。 进入数据源添加页面后输入RESTful接口地址和TDengine集群的认证信息后点击Save & test按钮即可完成TDengine数据源的添加如下图所示

添加 TDengine 数据源

创建 Dashboard

添加TDengine数据源后直接点击界面右上角的Build a dashboard按钮即可创建 Dashboard。在Input Sql文本栏中输入TDengine的查询语句便可以轻松实现监控指标的可视化如下图所示

Dashboard

在该示例中查询的是由taosBenchmark --start-timestamp=1704802806146 --database= power --time-step=1000 -y写入的数据数据库的名称为power查询的是超级表meters 中记录的voltage具体的SQL如下。

select _wstart, last(voltage) from power.meters where ts>=$from and ts<=$to interval(1m)

其中from、to为内置变量表示从TDengine Datasource插件Dashboard获取的查询范围和时间间隔。Grafana还提供了其他内置全局变量如 interval、org、user、timeFilter具体可以参阅Grafana的官方文档的Variables部分。可以通过group by或partition by列名来实现分组展示数据。假设要按照不同的 groupId 来分组展示voltage为了避免线条太多只查询3个分组SQL如下。

select _wstart, groupid, last(voltage) from power.meters where groupid < 4 and ts>=$from and ts<=$to partition by groupid interval(1m) fill(null);

然后在上图所示的 Group By Column 文本框中配置要分组的列,此处填 groupId。将Group By Fromat设置为 groupId-{{groupId}}展示的legend名字为格式化的列名。配置好后可如下图所示看到多条曲线。

按照不同的groupId来分组展示voltage

在编写和调试SQL时可以使用Grafana提供的Query Inspector通过它可以看到SQL的执行结果十分方便。

为了简化通过Grafana对TDengine实例的运行进行检测了解它的健康状态TDengine还提供了一个Grafana Dashboard: TDinsight for 3.x可在Grafana的官网直接按照此名称搜索并获取。通过Grafana导入后即可直接使用省去了用户自己创建Dashboard的麻烦。

Looker Studio

Looker Studio作为Google旗下的一个功能强大的报表和商业智能工具前身名为Google Data Studio。在2022年的Google Cloud Next大会上Google将其更名为Looker Studio。这个工具凭借其丰富的数据可视化选项和多样化的数据连接能力为用户提供了便捷的数据报表生成体验。用户可以根据预设的模板轻松创建数据报表满足各种数据分析需求。

由于其简单易用的操作界面和庞大的生态系统支持Looker Studio在数据分析领域受到众多数据科学家和专业人士的青睐。无论是初学者还是资深分析师都可以利用Looker Studio快速构建美观且实用的数据报表从而更好地洞察业务趋势、优化决策过程并提升整体运营效率。

获取

目前TDengine连接器作为Looker Studio的合作伙伴连接器partner connector已在Looker Studio官网上线。用户访问Looker Studio的Data Source列表时只须输入 “TDengine”进行搜索便可轻松找到并立即使用TDengine连接器。

TDengine连接器兼容TDengine Cloud和TDengine Server两种类型的数据源。TDengine Cloud是涛思数据推出的全托管物联网和工业互联网大数据云服务平台为用户提供一站式数据存储、处理和分析解决方案而TDengine Server则是用户自行部署的本地版本支持通过公网访问。以下内容将以TDengine Cloud为例进行介绍。

使用

在Looker Studio中使用TDengine连接器的步骤如下。

第1步进入TDengine连接器的详情页面后在Data Source下拉列表中选择TDengine Cloud然后点击Next按钮即可进入数据源配置页面。在该页面中填写以下信息然后点击Connect按钮。

  • URL和TDengine Cloud Token可以从TDengine Cloud的实例列表中获取。
  • 数据库名称和超级表名称。
  • 查询数据的开始时间和结束时间。 第2步Looker Studio会根据配置自动加载所配置的TDengine数据库下的超级表的字段和标签。 第3步点击页面右上角的Explore按钮即查看从TDengine数据库中加载的数据。 第4步根据需求利用Looker Studio提供的图表进行数据可视化的配置。

注意 在第一次使用时请根据页面提示对Looker Studio的TDengine连接器进行访问授权。

PowerBI

Power BI是由Microsoft提供的一种商业分析工具。通过配置使用ODBC连接器Power BI可以快速访问TDengine的数据。用户可以将标签数据、原始时序数据或按时间聚合后的时序数据从TDengine导入到Power BI制作报表或仪表盘整个过程不需要任何代码编写过程。

前置条件

安装完成Power BI Desktop软件并运行如未安装请从其官方地址下载最新的Windows操作系统X64版本

安装 ODBC 驱动

从TDengine官网下载最新的Windows操作系统X64客户端驱动程序并安装在运行Power BI的机器上。安装成功后可在“ODBC数据源64位”管理工具中看到 TAOS_ODBC_DSN”驱动程序。

配置ODBC数据源

配置ODBC数据源的操作步骤如下。

第1步在Windows操作系统的开始菜单中搜索并打开“ODBC数据源64位”管理工具。 第2步点击“用户DSN”选项卡→“添加”按钮进入“创建新数据源”对话框。 第3步选择想要添加的数据源后选择“TDengine”点击“完成”按钮进入TDengine ODBC数据源配置页面。填写如下必要信息。

  • DSN数据源名称必填比如“MyTDengine”。
  • 连接类型勾选“WebSocket”复选框。
  • 服务地址输入“taos://127.0.0.1:6041”。
  • 数据库表示需要连接的数据库可选比如“test”。
  • 用户名输入用户名如果不填默认为“root”。
  • 密码输入用户密码如果不填默认为“taosdata”。 第4步点击“测试连接”按钮测试连接情况如果成功连接则会提示“成功连接到taos://root:taosdata@127.0.0.1:6041”。 第5步点击“确定”按钮即可保存配置并退出。

导入TDengine数据到Power BI

将TDengine数据导入Power BI的操作步骤如下。

第1步打开Power BI并登录后点击“主页”→“获取数据”→“其他”→“ODBC”→“连接”添加数据源。 第2步选择刚才创建的数据源名称比如“MyTDengine”点击“确定”按钮。在弹出的“ODBC驱动程序”对话框中在左侧导航栏中点击“默认或自定义”→“连接”按钮即可连接到配置好的数据源。进入“导航器”后可以浏览对应数据库的数据表并加载。 第3步如果需要输入SQL则可以点击“高级选项”选项卡在展开的对话框中输入并加载数据。

为了充分发挥Power BI在分析TDengine中数据方面的优势用户需要先理解维度、度量、窗口切分查询、数据切分查询、时序和相关性等核心概念之后通过自定义的SQL导入数据。

  • 维度通常是分类文本数据描述设备、测点、型号等类别信息。在TDengine的超级表中使用标签列存储数据的维度信息可以通过形如“select distinct tbname, tag1, tag2 from supertable”的SQL语法快速获得维度信息。
  • 度量可以用于进行计算的定量数值字段常见计算有求和、取平均值和最小值等。如果测点的采集周期为1s那么一年就有3000多万条记录把这些数据全部导入Power BI会严重影响其执行效率。在TDengine中用户可以使用数据切分查询、窗口切分查询等语法结合与窗口相关的伪列把降采样后的数据导入Power BI中具体语法请参阅TDengine官方文档的特色查询功能部分。
  • 窗口切分查询比如温度传感器每秒采集一次数据但须查询每隔10min的温度平均值在这种场景下可以使用窗口子句来获得需要的降采样查询结果对应的SQL形如select tbname, _wstart dateavg(temperature) temp from table interval(10m)其中_wstart是伪列表示时间窗口起始时间10m表示时间窗口的持续时间avg(temperature)表示时间窗口内的聚合值。
  • 数据切分查询如果需要同时获取很多温度传感器的聚合数值可对数据进行切分然后在切分出的数据空间内进行一系列的计算对应的SQL形如 partition by part_list。数据切分子句最常见的用法是在超级表查询中按标签将子表数据进行切分,将每个子表的数据独立出来,形成一条条独立的时间序列,方便针对各种时序场景的统计分析。
  • 时序在绘制曲线或者按照时间聚合数据时通常需要引入日期表。日期表可以从Excel表格中导入也可以在TDengine中执行SQL获取例如 select _wstart date, count(*) cnt from test.meters where ts between A and B interval(1d) fill(0)其中fill字句表示数据缺失情况下的填充模式伪列_wstart则为要获取的日期列。
  • 相关性告诉数据之间如何关联如度量和维度可以通过tbname列关联在一起日期表和度量则可以通过date列关联配合形成可视化报表。

智能电表样例

TDengine采用了一种独特的数据模型以优化时序数据的存储和查询性能。该模型利用超级表作为模板为每台设备创建一张独立的表。每张表在设计时考虑了高度的可扩展性最多可包含4096个数据列和128个标签列。这种设计使得TDengine能够高效地处理大量时序数据同时保持数据的灵活性和易用性。

以智能电表为例假设每块电表每秒产生一条记录那么每天将产生86 400条记录。对于1000块智能电表来说每年产生的记录将占用大约600GB的存储空间。面对如此庞大的数据量Power BI等商业智能工具在数据分析和可视化方面发挥着重要作用。

在Power BI中用户可以将TDengine表中的标签列映射为维度列以便对数据进行分组和筛选。同时数据列的聚合结果可以导入为度量列用于计算关键指标和生成报表。通过这种方式Power BI能够帮助决策者快速获取所需的信息深入了解业务运营情况从而制定更加明智的决策。

根据如下步骤便可以体验通过Power BI生成时序数据报表的功能。 第1步使用TDengine的taosBenchMark快速生成1000块智能电表3天的数据采集频率为1s。 shell taosBenchmark-t1000-n259200-S1000-H200-y 第2步导入维度数据。在Power BI中导入表的标签列取名为tags通过如下SQL获取超级表下所有智能电表的标签数据。 sql selectdistincttbnamedevice,groupId,locationfromtest.meters 第3步导入度量数据。在Power BI中按照1小时的时间窗口导入每块智能电表的电流均值、电压均值、相位均值取名为dataSQL如下。 sql 第3步导入度量数据。在Power BI中按照1小时的时间窗口导入每块智能电表的电流均值、电压均值、相位均值取名为dataSQL如下。 第4步导入日期数据。按照1天的时间窗口获得时序数据的时间范围及数据计数SQL如下。需要在Power Query编辑器中将date列的格式从“文本”转化为“日期”。 sql select_wstartdate,count(*)fromtest.metersinterval(1d)havingcount(*)>0 第5步建立维度和度量的关联关系。打开模型视图建立表tags和data的关联关系将tbname设置为关联数据列。 第6步建立日期和度量的关联关系。打开模型视图建立数据集date和data的关联关系关联的数据列为date和datatime。 第7步制作报告。在柱状图、饼图等控件中使用这些数据。

由于TDengine处理时序数据的超强性能使得用户在数据导入及每日定期刷新数据时都可以得到非常好的体验。更多有关Power BI视觉效果的构建方法请参照Power BI的官方文档。

永洪 BI

永洪 BI 是一个专为各种规模企业打造的全业务链大数据分析解决方案,旨在帮助用户轻松发掘大数据价值,获取深入的洞察力。该平台以其灵活性和易用性而广受好评,无论企业规模大小,都能从中受益。

为了实现与 TDengine 的高效集成,永洪 BI 提供了 JDBC 连接器。用户只须按照简单的步骤配置数据源,即可将 TDengine 作为数据源添加到永洪BI中。这一过程不仅快速便捷还能确保数据的准确性和稳定性。

一旦数据源配置完成永洪BI便能直接从TDengine中读取数据并利用其强大的数据处理和分析功能为用户提供丰富的数据展示、分析和预测能力。这意味着用户无须编写复杂的代码或进行烦琐的数据转换工作即可轻松获取所需的业务洞察。

安装永洪 BI

确保永洪 BI 已经安装并运行(如果未安装,请到永洪科技官方下载页面下载)。

安装JDBC驱动

从 maven.org 下载 TDengine JDBC 连接器文件 “taos-jdbcdriver-3.2.7-dist.jar”并安装在永洪 BI 的机器上。

配置JDBC数据源

配置JDBC数据源的步骤如下。

第1步在打开的永洪BI中点击“添加数据源”按钮选择SQL数据源中的“GENERIC”类型。 第2步点击“选择自定义驱动”按钮在“驱动管理”对话框中点击“驱动列表”旁边的“+”输入名称“MyTDengine”。然后点击“上传文件”按钮上传刚刚下载的TDengine JDBC连接器文件“taos-jdbcdriver-3.2.7-dist.jar”并选择“com.taosdata.jdbc. rs.RestfulDriver”驱动最后点击“确定”按钮完成驱动添加步骤。 第3步复制下面的内容到“URL”字段。 text jdbc:TAOS-RS://127.0.0.1:6041?user=root&password=taosdata 第4步在“认证方式”中点击“无身份认证”单选按钮。 第5步在数据源的高级设置中修改“Quote 符号”的值为反引号(`)。 第6步点击“测试连接”按钮弹出“测试成功”对话框。点击“保存”按钮输入“MyTDengine”来保存TDengine数据源。

创建TDengine数据集

创建TDengine数据集的步骤如下。

第1步在永洪BI中点击“添加数据源”按钮展开刚刚创建的数据源并浏览TDengine中的超级表。 第2步可以将超级表的数据全部加载到永洪BI中也可以通过自定义SQL导入部分数据。 第3步当勾选“数据库内计算”复选框时永洪BI将不再缓存TDengine的时序数据并在处理查询时将SQL请求发送给TDengine直接处理。

当导入数据后永洪BI会自动将数值类型设置为“度量”列将文本类型设置为“维度”列。而在TDengine的超级表中由于将普通列作为数据的度量将标签列作为数据的维度因此用户可能需要在创建数据集时更改部分列的属性。TDengine在支持标准SQL的基础之上还提供了一系列满足时序业务场景需求的特色查询语法例如数据切分查询、窗口切分查询等具体操作步骤请参阅TDengine的官方文档。通过使用这些特色查询当永洪BI将SQL查询发送到TDengine时可以大大提高数据访问速度减少网络传输带宽。

在永洪BI中你可以创建“参数”并在SQL中使用通过手动、定时的方式动态执行这些SQL即可实现可视化报告的刷新效果。如下SQL可以从TDengine实时读取数据。

select _wstart ws, count(*) cnt from supertable where tbname=?{metric} and ts = ?{from} and ts < ?{to} interval(?{interval})

其中:

  1. _wstart:表示时间窗口起始时间。
  2. count*:表示时间窗口内的聚合值。
  3. ?{interval}:表示在 SQL 语句中引入名称为 interval 的参数,当 BI 工具查询数据时,会给 interval 参数赋值,如果取值为 1m则表示按照 1 分钟的时间窗口降采样数据。
  4. ?{metric}:该参数用来指定查询的数据表名称,当在 BI 工具中把某个“下拉参数组件”的 ID 也设置为 metric 时,该“下拉参数组件”的被选择项将会和该参数绑定在一起,实现动态选择的效果。
  5. ?{from}{to}:这两个参数用来表示查询数据集的时间范围,可以与“文本参数组件”绑定。 您可以在 BI 工具的“编辑参数”对话框中修改“参数”的数据类型、数据范围、默认取值,并在“可视化报告”中动态设置这些参数的值。

21.4.5 制作可视化报告

制作可视化报告的步骤如下。

  1. 在永洪 BI 工具中点击“制作报告”,创建画布。
  2. 拖动可视化组件到画布中,例如“表格组件”。
  3. 在“数据集”侧边栏中选择待绑定的数据集,将数据列中的“维度”和“度量”按需绑定到“表格组件”。
  4. 点击“保存”后,即可查看报告。
  5. 更多有关永洪 BI 工具的信息,请查询永洪科技官方帮助文档。