数据集成
产品定位
数帆数据集成解决企业数据孤岛问题,将分散在各业务系统中的数据汇聚到统一的数据平台,为后续数据开发和分析提供基础。
支持的数据源
关系型数据库
| 数据库 | 读取 | 写入 | 实时 CDC |
|---|---|---|---|
| MySQL | ✅ | ✅ | ✅ |
| Oracle | ✅ | ✅ | ✅ |
| PostgreSQL | ✅ | ✅ | ✅ |
| SQL Server | ✅ | ✅ | ✅ |
| TiDB | ✅ | ✅ | ✅ |
大数据存储
| 存储 | 读取 | 写入 |
|---|---|---|
| HDFS | ✅ | ✅ |
| Hive | ✅ | ✅ |
| HBase | ✅ | ✅ |
| ClickHouse | ✅ | ✅ |
| Elasticsearch | ✅ | ✅ |
消息队列 & 流
| 系统 | 读取 | 写入 |
|---|---|---|
| Kafka | ✅ | ✅ |
| RocketMQ | ✅ | ✅ |
| Pulsar | ✅ | ✅ |
云存储 & SaaS
| 系统 | 说明 |
|---|---|
| 阿里云 OSS | 对象存储读写 |
| 腾讯云 COS | 对象存储读写 |
| Salesforce | CRM 数据同步 |
| 钉钉 | 组织架构、审批数据 |
离线同步
全量同步
适用于首次数据迁移或全量刷新:
配置要点
├── 数据源连接(JDBC URL / 账号密码)
├── 同步表/字段选择
├── 目标表映射(字段类型转换)
├── 并发度配置(影响同步速度和源库压力)
└── 执行时间(通常在业务低峰期)性能参考:单表 1 亿行数据,并发 8,约 30-60 分钟完成
增量同步
增量同步只同步新增/变更的数据,减少数据量:
增量策略
├── 时间戳增量
│ └── WHERE updated_at > '上次同步时间'
│ 优点:简单 缺点:依赖时间戳字段,无法捕获删除
├── 自增 ID 增量
│ └── WHERE id > 上次最大 ID
│ 优点:简单 缺点:只适合追加场景
└── CDC(Change Data Capture)
└── 监听数据库 Binlog/Redo Log
优点:完整捕获增删改 缺点:配置复杂实时同步(CDC)
Flink CDC 原理
MySQL Binlog 监听原理
MySQL 主库开启 Binlog(row 格式)
↓
Flink CDC 模拟 MySQL Slave 连接
↓
接收 Binlog 事件(INSERT/UPDATE/DELETE)
↓
解析为结构化数据流
↓
写入目标系统(Kafka / ClickHouse / 数据湖)配置示例(Flink SQL)
sql
-- 创建 MySQL CDC 源表
CREATE TABLE mysql_orders (
id BIGINT,
user_id BIGINT,
amount DECIMAL(10,2),
status VARCHAR(20),
created_at TIMESTAMP,
PRIMARY KEY (id) NOT ENFORCED
) WITH (
'connector' = 'mysql-cdc',
'hostname' = 'mysql-host',
'port' = '3306',
'username' = 'cdc_user',
'password' = '${CDC_PASSWORD}',
'database-name' = 'shop',
'table-name' = 'orders'
);
-- 创建 ClickHouse 目标表
CREATE TABLE ck_orders (
id BIGINT,
user_id BIGINT,
amount DECIMAL(10,2),
status VARCHAR(20),
created_at TIMESTAMP
) WITH (
'connector' = 'clickhouse',
'url' = 'clickhouse://ck-host:8123',
'database-name' = 'dw',
'table-name' = 'orders_realtime'
);
-- 实时同步
INSERT INTO ck_orders SELECT * FROM mysql_orders;数据同步监控
监控指标
├── 同步延迟(实时同步)
├── 同步速率(行/秒)
├── 错误率(失败记录占比)
├── 任务状态(运行/暂停/失败)
└── 数据量统计(今日同步行数)
告警配置
├── 延迟超过阈值(如 > 5 分钟)
├── 任务失败
└── 数据量异常(突增/突降)