定时扫描同步任务
简介
RETL(定时扫描同步)是一种 按固定周期拉取数据 并写入目标端的同步方式,适合:
- 没有 CDC 日志能力的数据源
- 需要“每 N 秒/分钟”刷新数据的场景
- 可接受轻微时延的准实时同步
支持的链路
| 源端 -> 目标端 | 同步模式 | 执行前动作(可选) | 增量字段1类型 |
|---|---|---|---|
| StarRocks -> MySQL | 定时扫描 | 清空对端2、历史表归档3 | 日期时间 |
| Doris -> MySQL | 定时扫描 | 清空对端、历史表归档 | 日期时间、高精度日期时间 |
| Redshift -> MySQL | 定时扫描 | 清空对端 | 时间戳 |
| Elastisearch -> Elasticsearch | 定时扫描 | 清空对端 | 日期、纳秒日期、ES 时间戳 |
| OssFile -> PostgreSQL | 定时扫描 | 清空对端4 | / |
| SshFile -> PostgreSQL | 定时扫描 | 清空对端 | / |
| S3File -> PostgreSQL | 定时扫描 | 清空对端 | / |
| Yuque -> PostgreSQL | 定时扫描 | 清空对端 | / |
信息
- 增量字段必须为时间类型。配置该字段后,系统每次扫描只会拉取时间在“上次扫描之后”的新增或更新数据,实现增量同步效果(注意:暂不支持同步源端的删除操作)。
- 清空对端:执行当前轮次前,执行 清空对端表 的动作,适用于整张表定时迁移(如报表结果)。
- 历史表归档:执行当前轮次前,执行
rename table A to A_arc_时间戳,create table A like A_arc_时间戳。适用于整张表定时迁移(如报表结果)。 - 源端为文件类的操作,清空对端 仅会删除对应文件的数据 ,而非清空整个表记录。
操作步骤
选择数据源
- 选择源端和目标端数据源,点击 测试连接。
- 选择需要同步的 schema 信息。
配置任务
- 在功能配置页面,任务类型 选择 增量同步。
- 同步 模式 选择 定时扫描,并 设置参数。
- 执行周期:即每次扫描的间隔,单位秒 (默认 300 秒)
- 执行前动作:即开始扫描之前可以执行的动作。
选择数据表
- 在表 & action 过滤页面,选择要迁移的表。
- 在表格右上方点击 打开操作黑名单,可过滤各类 DML/DDL 操作。
处理数据
- 在数据处理页面的左侧选择表,并勾选要迁移的列。
- 按需设置 增量字段(不设置则每次进行全量扫描):
- 单独设置:在左侧点击 操作 > 增量字段,为这张表设置增量字段。
- 批量操作:在右上角点击 批量操作 > 增量字段,为多张表统一设置增量字段。
创建确认
- 在创建确认页面,确认任务信息。
- 确认无误后,点击 创建任务。
参数设置建议
- 执行周期:建议先调大(如 300 秒),稳定 后再调小。
- 执行前动作:
- 如果需要实现增量同步(即数据处理页选择增量字段),则选择 无。
- 如果表较小,并且需要复制源端的删除操作,则数据处理页不选择增量字段,且此处选择 清空对端。
- 增量字段:优先选 可排序、稳定递增或可比较 的时间字段。
常见问题
Q:为什么我看不到“增量字段”可选?
当前链路未开放该能力,或当前对象字段类型不在支持范围内。
Q:不配置增量字段可以吗?
可以(若该链路实现支持)。通常会按周期做全量扫描/复制。
Q:如何判断任务是否按 RETL 运行?
在任务列表和任务详情页会显示“定时扫描”图标(钟表状)。
