1. 概述
本文讲述如何使用数据管道功能。
2. 准备工作
准备工作 | 说明 |
---|---|
步骤一(必做):准备 FDL 独立部署工程 | 管道任务仅支持在 独立部署 环境下使用 参考 FineDataLink部署方案选择 文档,部署 FDL 工程 |
步骤二(必做):注册功能点 | 若需要使用数据管道功能,则需要参考文档注册相关功能点:注册简介 |
步骤三(必做):数据源准备 | 管道任务支持的数据源请参见:数据管道支持的数据源类型 需要拥有数据连接的使用权限,参考 配置数据连接 文档新建数据连接,或者联系管理员分配数据连接的使用权限:数据连接权限概述 |
3. 配置流程
注1:配置管道任务完整示例请参见:管道任务示例
注2:管道任务的来源端若为 MySQL、SQLServer、Oracle,若同一个库中的多张表都需要实时同步,建议在一个管道任务中实现;若同一个库中的多张表,每张表单独配置一个管道任务,数据库将承受较大压力。
步骤 |
---|
步骤一:准备数据库环境(必做) 基于需要设置数据管道任务的数据源,授予数据源配置的账号在数据库进行相应操作的权限。详情请参见:数据库环境准备概述 |
步骤二:管道任务环境准备(必做) 部署 Kafka 开源流处理平台作为中间件。详情请参见:部署Kafka、配置传输队列(只有 FDL 工程的超管才能配置传输队列) 注1:Kafka 建议部署在 Linux 系统中(Kafka 也支持安装在 Windows 中,但性能会受到限制,仅做演示使用,不建议用于生产环境);Kafka 与 FDL 可以不在一个服务器上 注2:重启 Kafka 前,需要先手动暂停管道任务,重启 Kafka 后,再手动重启管道任务,否则管道任务会有异常。 |
步骤三:分配管道任务权限(选做) 若需要使用数据管道的用户不是超级管理员,则需要为对应用户分配数据管道功能的使用权限 若需要在某个文件夹下新建管道任务,则需要分配该文件夹的管理权限 详情请参见:管道任务管理权限 |
步骤四:配置数据管道任务(必做) 按照顺序参考以下文档: 注1:不建议用户使用数据管道同步 longtext 类型的字段,否则 Kafka 会有问题,运行效率也会有问题 注2:不建议来源表字段名称中包含空格,否则任务启动将会报错 |
4. 不同场景下同步逻辑说明
新建管道任务、复制管道任务场景:
1)配置管道任务-选择数据来源 步骤中:
若选择「存量+增量同步」类型:先对所有存量数据同步,然后持续同步新增变化。
任务初次运行时,将完整运行全量同步+增量同步;任务中断或暂停后,再次运行时,如果所有表的全量同步都已完成,则将从增量的断点开始,直接运行增量同步。
若选择仅增量同步类型,具体说明参见文档:配置管道任务-选择数据来源
2)目标表若选择已存在表,目标表结构(表名和字段名)和来源表一致:首次数据同步会清空目标数据表数据,然后全量同步数据,此后增量同步。
暂停管道任务,进入编辑界面:
1)新增来源表:新增的表将按照所选的同步类型进行同步。
同步类型为存量+增量:新增的表需要进行存量同步,那么增量同步将在后台挂起,等新增的表存量跑完,再继续开始增量
同步类型为仅增量:
修改了增量起点:所有表(包含新增的表)按照指定增量起点进行同步
没有修改增量起点:新增表,按照任务内置的断点进行同步
2)删除来源表:删除同步对象并保存时,将同时删除此对象相关的所有关联信息,任务启动时,将不再同步对应表。
处理脏数据 (具体详情点击左侧链接):
1)重试脏数据:对单表和指定多表,重试功能会将缓存的脏数据进行再次提交,并更新数据量统计。
2)重新同步:会将目标端表清空并重新执行全量同步、在全量同步结束后转入增量同步。
开启同步源表结构按钮、选择逻辑删除:
「失败重试」逻辑说明:
若全量同步未完成,会从头全量同步;若全量同步已完成,会从断点开始;即全量阶段没有断点,只有增量阶段有断点同步。
管道任务只要重新运行了,都是按第一次开始重新计算。
5. 管道任务运维
注1:若工程中包含管道任务,关闭工程不建议使用 kill -9 pid 语句,会导致管道任务异常,建议使用 kill pid 语句。详情请参见:关闭或重启FineDataLink工程
注2:4.1.6.3 及之后版本,管道任务禁止被多人同时编辑。详情请参见:任务禁止被多人同时编辑
操作 | 参考文档 |
---|---|
重命名、移动、复制、导出、删除管道任务 | |
修改管道任务:暂停管道任务后,可修改管道任务 注:修改范围有限,若某些设置项无法修改,可复制管道任务 | 任务运行状况 |
查看任务运行状况、查看日志、处理脏数据 | 单个管道任务管理 |
想对所有管道任务进行统一的管理,比如停止任务、删除任务、检查任务运行状态、同步性能、对异常情况进行监控和处理、批量暂停任务等 | 管道任务运维 |
| 数据管道运维指导 |
记录数据管道相关信息的 FineDB 数据库表 | 数据管道 |
管道任务的查看、编辑、授权权限 | |
数据管道问题合集 | |
用户想了解某个管道任务是谁编辑的、编辑时间、断点相关信息等,FDL 工程内的 管道任务运维 无法满足需求 | BI仪表板展示管道任务信息 |
用户的管道任务实现上百张表的实时同步,且存在部分来源表和目标表的表名不同、多张来源表同步到一张目标表等情况,导致用户在管理来源表和目标表的对应关系时(例如重构任务)较为困难 管道任务的来源表在 FineDB 的 fine_dp_pipeline_task 表中记录 | 导出管道任务中来源表及对应的目标表信息 |