IoTDB 端边云同步:SQL 一键搞定 5 大常见场景

48e9736b6e18e220621d412c9c65532c.jpeg

简单的 SQL,实现 IoTDB 无缝流动同步!

之前的推文中我们介绍了 IoTDB 端边云同步技术的功能和特点,也了解其在多级时序数据管理场景中能够帮助企业实现更高效、可靠的端边云数据一站式管理

IoTDB 以简洁灵活的 SQL 操作和直观的配置方式,为用户提供了一种高效的数据同步解决方案。只需简单的 SQL 配置步骤,即可一键生成并启动 IoTDB 的端边云同步任务,实现数据在端、边、云之间的无缝流动。

今天我们一起继续深入探索 IoTDB 端边云同步的 5 大常见场景以及它们非常简便的使用方式。

01 场景一:基础数据同步

基础数据同步分为两种常见模式:

  • 全量数据同步:将一个 IoTDB 实例中的所有数据完整地同步到另一个 IoTDB 实例,同时确保数据的高可用性和安全性。这一功能在数据备份、灾难恢复以及数据迁移等场景中尤为常用。

  • 范围数据同步:将一个 IoTDB 实例中的指定时间范围、指定测点的数据同步到另一个 IoTDB 实例。这一功能在关键数据备份与恢复场景中较为常见。

在此场景中,IoTDB 通过一条简单的 SQL 命令即可实现全量或范围数据同步,无需借助第三方组件或工具,简化了数据迁移的复杂度。同时,IoTDB 的内部优化机制能够在迁移过程中显著减少对 CPU 和内存资源的占用,即使在不影响集群正常使用的情况下也能进行数据迁移。

365ef462bfd66d70d015fa6a7388895a.png

全量数据同步任务具体 SQL 语句如下:

CREATE PIPE A2B 
WITH SINK (
  'node-urls' = '127.0.0.1:6668,127.0.0.1:6669'
)

其中,node-urls 是数据同步的目标节点地址,它可以接受输入多个地址。在本例中,全量数据同步任务 A2B 的设置了两个目标节点 127.0.0.1:6668, 127.0.0.1:6669,此时发送端 A 将均分向两个目标节点发送数据。

范围数据同步任务具体 SQL 语句如下:

CREATE PIPE A2B
WITH SOURCE (
  'path'= 'root.EnergyGroup.WindFarm.**',
  'start-time' = '2024.08.01T08:00:00+00:00',
  'end-time' = '2024.09.01T08:00:00+00:00'
) 
WITH SINK (
  'node-urls'='127.0.0.1:6668'
)

其中,path 字段是需要被同步的测点,start-time 和 end-time 指定了同步的时间范围。

02 场景二:数据降采样同步

降采样同步可以将数据从 IoTDB 实例 A 到 IoTDB 实例 B 同步的同时,将高频率采集的数据转换为较低频率的数据,通常在厂->区域->中心模式的数据汇聚场景中较为常用,能够帮助用户减少上级数据管理数据存储压力并提高数据处理效率

在 IoTDB 中,可以通过创建带有降采样规则的数据同步任务来实现这一功能。

CREATE PIPE a2b
WITH PROCESSOR (
  'processor' = 'changing-value-sampling-processor'
)
WITH SINK (
  'node-urls' = '127.0.0.1:6668'
)

其中,需要将 processor 配置为数据降采样的处理插件。企业版可直接使用内置插件 changing-value-sampling-processor(或基于旋转门算法的趋势变化降采样 swinging-door-trending-sampling-processor、基于滚动时间窗口的降采样 tumbling-time-sampling-processor),该插件用于识别数据流中的数值变化,它可以让数据同步管道仅在数值变化时进行数据同步,从而减少传输的数据量。开源版可以自行实现逻辑,并将插件导入 IoTDB 进行使用。

03 场景三:级联数据同步

级联数据同步常见于多个场站间数据联动汇聚的场景,它通过在多个数据库之间创建链式的数据流动,确保了数据的连贯性和一致性。在 IoTDB 体系中,可在链路上设置多个同步任务实现级联数据同步:每个同步任务负责将数据从当前节点传输到下一个节点,从而实现如 A->B->C 这样的级联传输模式。

cc59460b26a18c5229b62097ac3fd4db.png

如需要构建上图中 A->B->C 三级同步,则需要在 A 执行:

create pipe A2B
with sink (
  'node-urls'='127.0.0.1:6668'
)

在 B 执行:

create pipe B2C
with sink (
  'forwarding-pipe-requests' = 'true',
  'node-urls'='127.0.0.1:6669'
)

其中 'forwarding-pipe-requests' = 'true' 的含义是,转发由 A 同步而来的数据到 C 中。

04 场景四:双向数据同步

双向数据传输通过在两个 IoTDB 实例(单机或集群)之间实现数据的实时镜像,确保了数据的一致性和最新状态,IoTDB 的双活实例就是在此能力基础上搭建的。双向数据同步为多数据双活、灾备、数据备份提供了强有力的支持。

6295a66b48950f93c51d326924676368.png

如要实现 A 和 B 两个实例的双向数据同步,可在 A 中执行 SQL:

CREATE PIPE A2B
WITH SOURCE (
  'forwarding-pipe-requests' = 'false',
)
WITH SINK (
  'node-urls'='127.0.0.1:6668'
)

在 B 中执行 SQL:

CREATE PIPE B2A
WITH SOURCE (
  'forwarding-pipe-requests' = 'false',
)
WITH SINK (
  'node-urls'='127.0.0.1:6667'
)

其中,需要将 forwarding-pipe-requests 设置为 false 防止数据无限循环(此配置为企业版功能)。

05 场景五:跨网闸数据同步

在电力等行业,网络安全至关重要,因此整个系统的网络被精心划分为四个具有不同安全等级的区域。安全区 Ⅰ 是生产控制区,负责关键的实时控制任务;安全区 Ⅱ 是生产非控制区,提供辅助性生产支持;安全区 Ⅲ 是生产管理区,处理生产管理任务;而安全区 Ⅳ 是管理信息区,专注于行政管理和决策支持。

在安全区 Ⅱ 与安全区 Ⅲ 之间,系统通过单向网闸进行交互,正向隔离机制允许高安全等级的系统向低安全等级的系统发送操作指令,而反向隔离则允许低安全等级的系统向高安全等级系统传输数据。这种隔离网闸的存在虽然物理上确保了生产控制区的安全,但也给安全区 Ⅱ 与安全区 Ⅲ 之间的数据同步带来了挑战。

IoTDB 通过内置的跨网闸同步插件支持适配数据在 Syskeeper2000 等型号下的数据同步。

72addcba1e78c828c0bb91c74bdae552.png

如实现上图的数据同步,可使用 SQL:

create pipe A2B
with sink (
  'sink'='iotdb-air-gap-sink',
  'sink.node-urls'='10.53.53.53:9780'
)

其中,需要将 sink 配置为网闸专用处理插件。企业版可直接使用内置插件 iotdb-air-gap-sink,该插件专为通过单向网闸的数据传输设计,确保了数据传输的安全性和合规性。开源版可以自行实现逻辑,并将插件导入 IoTDB 进行使用。

06 总结

IoTDB 端边云同步以灵活和简单为设计的出发点,上述的所有操作,仅仅只需要执行一句 SQL 即可完成。

与此同时,我们也支持同步过程中的加密传输、压缩传输。用户也可以在数据同步框架上继续探索更为高阶的使用方法,通过使用其他参数、组合参数、自行开发插件的方式完成更高阶的使用场景搭建。

更多详细使用方法和介绍,可参考官方用户手册,期待你的更多发现~

规上企业应用实例

能源电力:中核武汉国网信通产业集团华润电力大唐先一上海电气国轩清安储能某储能厂商太极股份绍兴安瑞思

航天航空:中航机载共性北邮一号卫星

钢铁冶炼:宝武钢铁中冶赛迪

交通运输:中车四方长安汽车城建智控德国铁路

智慧工厂与物联:PCB 龙头企业博世力士乐德国宝马京东昆仑数据怡养科技

0f5de11736b9ff8610497ddbbed69914.gif

56369abd7d3492a4808fedb48923980d.jpeg

a8c2dd3862878130a7c883cc9af821dd.jpeg

ea6f905d2f9bf9bde23bca3300284f3f.jpeg

13987107b9b3d9c8fd56421562e336c5.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Apache IoTDB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值