数据对接
04 数据对接
1. 说明
这份文档总结了两种常见的数据对接思路,以及它们更适合的场景:
- Node-RED 更偏向流程编排、可视化连接和快速验证。
- Airbyte 更偏向数据集成骨架、数据迁移和平台化同步。
2. Node-RED
Node-RED 是一种基于流程的编程工具,通过可视化编辑把 IOT 设备、API 和在线服务连接起来,形成事件驱动的应用。
它基于 Node.js 构建,因此带有事件驱动和非阻塞的特性。
2.1 基本工作方式
它的使用方式很直接:
- 启动 Node-RED 服务。
- 访问
http://localhost:1880进入管理页面。 - 从左侧节点面板拖拽节点到编辑区。
- 通过连线把节点组织成流程。
- 双击节点编辑参数。
- 点击右上角部署按钮让流程运行。
2.2 简单流程示例
一个简单流程可以由四个节点组成:
Inject Node:周期触发,每 10 秒生成一个事件。Change Node:给payload赋随机值。Function Node:准备折线图所需数据。Chart Node:展示折线图。
2.3 OPC-UA 数据流程
OPC-UA 流程可以继续扩展为:
- 使用
node-opcua搭建 UA 服务器。 - 在 Node-RED 中安装
node-red-contrib-opcua节点。 - 通过
Inject Node开始监听。 - 通过
OpcUa-Item Node配置要监听的节点 ID 和数据类型。 - 通过
OpcUa-Client Node连接 UA 服务器并交互。 - 通过
Switch Node分流数据。 - 使用
Debug Node、Function Node、Chart Node完成调试和展示。
2.4 适用场景
Node-RED 更适合:
- 快速搭建流程。
- 做 IOT 设备、API、在线服务之间的连接。
- 做简单的数据采集验证和可视化展示。
- 做 OPC-UA 数据流的验证和调试。
如果进一步考虑批量部署、批量管理、状态监控、性能边界和可靠性,Node-RED 更适合流程编排和原型验证,而不是直接承载完整的生产治理能力。
3. Airbyte
Airbyte 是一个开源的数据集成平台,提供数据迁移的基本骨架。
当工业互联网场景里存在多种来源、多种采集方式、多种目标平台时,它提供了一种高层次抽象和可扩展的方式,把数据迁移流程标准化。
3.1 架构组成
Airbyte 的架构可以分成两部分:
- 平台
- 连接器
平台由微服务组成,提供 UI、配置服务、调度服务、日志和告警等基础能力。
连接器负责 Source 到 Destination 的连接,并且通过 Docker 保持可扩展。
配置服务
调度服务
日志 / 告警
3.2 主要概念
一次数据迁移的主要载体可以理解为一个 Connection。
一个 Connection 一般包含以下部分:
Source CatalogDestinationSync ScheduleSync ModeTransformation
其中:
Source Catalog解决数据从哪儿来,定义 Stream 和 Field。Destination解决数据到哪儿去。Sync Schedule支持手动、按时间、按 Cron 同步。Sync Mode包含全量刷新、增量同步等模式。Transformation是可选项,常用于部分数据库的数据转换。
3.3 Normalization
Airbyte 的 Normalization 可以看作 ELT 里的 T。
原始数据在 Source 和 Destination 间传递时以 JSON 形式组织,如果不处理就会以一个 JSON 列落到目标数据库。
为了减少使用侧的处理成本,Airbyte 提供了 Raw Table 和 Destination Table 的做法。
例如,原始数据可以先落到 _airbyte_raw_cars,再经过 Normalization 变成结构化的 cars 表。
支持 Basic Normalization 的数据库包括:
- BigQuery
- MSSQL Server
- MySQL 8+
- Postgres
- Redshift
- Snowflake
3.4 生产应用
一个典型的生产方案是:
- 从客户现场上位机的 Oracle 数据库同步数据到工业互联网平台的 ClickHouse。
- 核心骨架基于 Airbyte。
- Airbyte 负责 Oracle 抽取并发送到 RabbitMQ。
- 再由消息消费者完成数据转换和 ClickHouse 写入。
Airbyte 需要运行在 Docker 环境下,本地安装和连接器使用也围绕 Docker 展开。
4. 两种方式怎么选
4.1 Node-RED 更适合的场景
- 需要快速把多个节点串起来。
- 需要可视化编辑和快速部署。
- 需要做 IOT、API、在线服务之间的简单连接。
- 需要做 OPC-UA 这类流程验证和展示。
- 适合原型验证、流程编排、现场联调。
4.2 Airbyte 更适合的场景
- 需要做标准化的数据集成和迁移。
- 需要把数据从一个系统稳定同步到另一个系统。
- 需要支持定时同步、增量同步、全量同步。
- 需要把转换放到迁移流程后段处理。
- 适合作为数据集成平台的骨架。
4.3 直观对比
5. 小结
这两种方式的定位并不一样:
- Node-RED 解决的是“把流程先跑起来、把节点先连起来”。
- Airbyte 解决的是“把数据迁移这件事标准化、平台化”。
如果是现场联调、协议验证、快速做一个可视化流程,Node-RED 更合适。
如果是数据从一个系统稳定地流向另一个系统,并且希望有同步策略、连接器和规范化能力,Airbyte 更合适。