反馈已提交

网络繁忙

「必看」实时管道任务配置指南

  • 文档创建者:Wendy123456
  • 历史版本:37
  • 最近更新:Wendy123456 于 2026-02-02
  • 1. 概述

    本文讲述如何配置实时管道任务。

    1770016709988897.png

    2. 实时管道任务配置流程

    2.1 准备工作

    准备工作说明
    步骤一(必做):准备 FDL 工程

    参考 FineDataLink部署方案选择 文档,部署 FDL 工程

    步骤二(必做):注册功能点
    若需要使用数据管道功能,则需要参考文档注册相关功能点:注册简介
    步骤三(必做):数据源准备

    管道任务支持的数据源请参见:数据管道支持的数据源类型

    需要拥有数据连接的使用权限,参考 配置数据连接 文档新建数据连接,或者联系管理员分配数据连接的使用权限:数据连接权限概述

    2.2 配置流程

    步骤
    步骤一:准备数据库环境(必做)

    基于需要设置数据管道任务的数据源,授予数据源配置的账号在数据库进行相应操作的权限。详情请参见:数据库环境准备概述

    注:4.2.1.1 之前版本,若使用 SQL Server 数据库作为管道任务的来源库,配置数据连接时不建议使用自定义驱动;且管道任务的日志等级不建议为 DEBUG (可设置为 INFO)。否则管道任务中会出现大量 SQL Server cdc 日志打印

    步骤二:管道任务环境准备(必做)

    部署 Kafka 开源流处理平台作为中间件。详情请参见:部署Kafka配置传输队列(只有 FDL 工程的超管才能配置传输队列)

    注1:Kafka 建议部署在 Linux 系统中(Kafka 也支持安装在 Windows 中,但性能会受到限制,仅做演示使用,不建议用于生产环境);Kafka 与 FDL 可以不在一个服务器上

    注2:重启 Kafka 前,需要先手动暂停管道任务,重启 Kafka 后,需要重启下 FineDataLink 工程,再手动重启管道任务,否则管道任务会有异常。

    注3:数据管道需要使用 Kafka 作为中间件完成实时同步,若来源表有 1000 张,kafka 中会生成 1000 个 topic,即一张表对应一个 

    步骤三:分配管道任务权限(选做)

    若需要使用数据管道的用户不是超级管理员,则需要为对应用户分配数据管道功能的使用权限

    若需要在某个文件夹下新建管道任务,则需要分配该文件夹的管理权限

    详情请参见:管道任务管理权限

    步骤四:配置数据管道任务(必做)

    按照顺序参考以下文档:

    1)配置实时管道任务-数据来源&数据去向

    注1:不建议用户使用数据管道同步 longtext 类型的字段,否则 Kafka 会有问题,运行效率也会有问题

    注2:不建议来源表字段名称中包含空格,否则任务启动将会报错

    2)配置管道任务-高级设置

    3)配置管道任务-同步配置

    4)配置管道任务-任务控制

    在 4.2.1.1 之前的版本中,支持设置任务级别的脏数据阈值,用户通常设置较大数值,4.2.1.1 及之后版本,调整为表脏数据阈值;所以,升级至 4.2.1.1 及后续版本后,建议适当调小该阈值设置,以有效控制脏数据量

    3. 管道任务配置指导说明

    任务的划分是管道设计的基石。不合理的划分,如单个任务承载过多或过少的表,都会在任务首次启动、日常运行及异常恢复等环节带来潜在的风险和效率瓶颈。

    3.1 任务划分与设计策略

    3.1.1 均衡负载,隔离风险

    1)避免「一表一任务

    • 因果关系:每个实时管道任务在启动和运行时都会占用独立的系统资源(如内存、线程、数据连接)。创建大量「一表一任务的管道,会急剧增加 FineDataLink 和 Kafka 服务器的整体负载,导致资源争抢和系统性能下降。

    • 运维挑战:任务数量过多会极大地增加监控和管理的复杂度,使得快速定位问题变得困难。

    注:管道任务的来源端若为 MySQL、SQLServer、Oracle,若同一个库中的多张表都需要实时同步,建议在一个管道任务中实现;若同一个库中的多张表,每张表单独配置一个管道任务,数据库将承受较大压力。

    2)避免「一任务千表

    • 因果关系:当一个任务包含数千张表时,任务的启动过程(包括权限校验、元数据加载、资源分配等)会变得异常漫长。更重要的是,一旦任务中的任何一张表或数据出现问题导致任务中断,整个任务(包含所有几千张表)的同步都会暂停。恢复时,需要对整个任务进行回溯和处理,恢复周期极长,风险极高。

    • 风险隔离:这种模式缺乏风险隔离机制,单一表的故障会引发“雪崩效应”,影响该任务下所有表的同步时效性。

    icon提示:

    常见误区:

    误区一:为了管理的“方便”,将一个业务系统下的所有表都放在一个管道任务里

    解读:这种“方便”是短暂的,一旦出现问题,排查和恢复的代价将远超初期配置的便利。真正的运维便利性来自于稳定、可控的系统设计

    3.1.2 任务拆分策略

    1)按目标端拆分

    原则:如果数据需要写入到多个不同的目标端(例如,一部分数据入Hadoop,一部分入MySQL),这是拆分任务的必要条件。

    建议:即使是同一个源,同一个目标端,如果采集的表非常多,也建议进行拆分。根据经验,将一个源到一个目标的任务数量控制在5个以内是比较合理的范围,这在管理复杂度和资源开销之间取得了较好的平衡。

    2)按表规模拆分

    策略:将规模和同步特征相似的表进行分组。

    • 超大表独立任务:将数据量巨大(例如:上亿行或TB级别)的表单独放置在一个或少数几个任务中。

    • 中小表合并任务:将数据量较小的表合并到同一个任务中。

    价值解读:

    • 提升启动与恢复效率:超大表的首次全量同步和异常恢复通常耗时很长。将其独立出来,可以确保中小规模表的同步任务能够快速启动和恢复,不受大表影响。

    • 资源精细化管理:可以为超大表的任务单独分配更多的资源,而无需让中小表任务也占用同等级的高额资源。

    3.1.3 FAQ

    1)如果一个任务包含了上千张表,除了启动和恢复慢,还会有什么其他风险

    • 资源消耗不可控:任务启动时会为所有表预估和申请资源,可能导致瞬间资源占用过高,影响平台其他任务。

    • Kafka Topic管理困难:每个同步的表默认会对应一个或多个Kafka Topic,上千张表意味着数千个Topic,对 Kafka 集群的管理和维护是巨大的挑战。

    • 问题定位困难:日志会变得非常庞杂,当出现数据延迟或积压时,很难快速定位到是哪几张表出了问题。

    2)对于“中小表”,大概的数量级建议是多少?几十张还是几百张

    这没有一个绝对的数字,取决于表的总数、数据变更频率和可接受的运维复杂度。一个比较普适的建议是,单个任务包含的表数量在几十到一百张以内是比较健康的范围。如果表数量超过 200 张,就应该认真考虑是否需要进一步拆分。

    3.2 源端数据库配置建议

    源端数据库的正确配置是实时管道稳定运行的生命线,尤其是日志相关配置,直接决定了在发生长时间故障后数据能否成功恢复。

    3.2.1 日志保留时长

    • 建议:源端数据库的增量日志(如Oracle的归档日志、MySQL的Binlog)保留时长建议不少于3天。具体步骤请自行百度。

    • 原因:这是为应对非工作日(如周末、节假日)发生的“长尾”故障而设计的“黄金窗口”。如果日志只保留24小时,周五晚上发生的管道故障,到周一早上来处理时,所需日志可能已被清理,导致增量数据断流,无法从断点恢复,只能重新进行成本高昂的全量同步。3天的保留策略为处理和恢复提供了充足的缓冲时间。

    3.2.2 Oracle 全库补充日志

    最佳实践:如非源端日志量超大或有严格的存储限制,强烈建议开启全库级别的补充日志,而不是逐个表去开启。

    因果关系:

    • 简化管理:一次性开启后,后续新增的需要同步的表无需再单独执行ADD SUPPLEMENTAL LOG DATA命令,大大简化了运维操作,降低了因忘记配置而导致同步失败的风险。

    • 保障DDL同步:全库补充日志是实现DDL变更捕获(如RENAME COLUMN)的必要前提之一。如果仅开启表级别日志,DDL同步可能会失败或出现异常。

    3.2.3 配置效率

    • 建议:在实时管道配置界面中,应充分利用批量选表和对已选表进行批量操作(如修改写入方式、配置字段映射规则)的功能。

    • 价值解读:对于包含数十乃至上百张表的任务,批量操作可以指数级地提升配置效率,减少重复劳动和人为错误。

    3.2.4 FAQ

    开启全库补充日志对Oracle数据库的性能影响有多大

    全库补充日志会增加一定的I/O开销和日志生成量,因为数据库需要记录更多额外信息。

    但在现代硬件条件下,对于大多数业务系统,这种性能影响通常在可接受范围之内(一般低于5%)。其带来的运维便利性和数据同步的可靠性远超其性能开销。只有在日志生成量确实达到系统瓶颈时(如每日TB级别),才应考虑切换为表级别按需开启。

    3.3 核心同步配置项详解

    3.3.1 优先选择物理主键

    强烈建议:为目标表寻找并配置一个物理主键(Primary Key)。

    价值解读:

    • 极大提升同步效率:目标端数据库在执行 UPDATE 和 DELETE 操作时,利用主键索引可以实现极高的定位效率。无主键的表在更新时,数据库需要进行全表扫描来找到匹配行,数据量大时性能会急剧下降。

    • 最大程度确保数据一致性:主键的唯一性约束是防止目标端出现重复数据的最强保障。它能确保对同一条记录的多次变更操作能够准确地应用在同一行上。

    3.3.2 谨慎使用无主键同步

    原则:如非必要,不要启用无主键同步。

    因果关系:

    • 无主键同步 的匹配逻辑远比有主键复杂,需要依赖所有非LOB类型的字段来唯一确定一行数据。这不仅使得匹配逻辑本身更耗时,而且一旦任何一个字段的值发生变化,就会被视为一条全新的数据,可能导致数据重复插入而非更新。

    • 适用场景:只适用于源端和目标端都完全没有唯一键可选,且数据基本为只增场景的特殊情况。

    icon提示:

    常见误区:源表没有主键,就直接使用无主键方式同步

    正确的做法是:即使源表没有物理主键,也应积极与业务方沟通,寻找能够唯一标识一行业务数据的业务主键(一个或多个字段的组合),并在目标端将其创建为物理主键或唯一索引,从而利用高效的主键同步模式

    3.4 任务健壮性与可观测性配置

    健壮的配置能让任务在面临临时性故障时自我恢复,而良好的可观测性则能让我们在问题发生时第一时间知晓。

    3.4.1 开启并合理配置重试机制

    强烈建议:开启任务的 失败重试 功能。

    最佳实践:针对网络波动、数据库连接瞬断等常见临时性故障,配置合理的重试间隔与次数。例如,可以配置重试3次,间隔分别为1分钟、5分钟、10分钟。

    价值解读:这是一种低成本、高回报的容错机制。它能让管道任务自动从大量常见的、非持续性的“软”故障中恢复,避免了大量不必要的人工干预和告警。

    3.4.2 开启并配置有效的消息通知

    强烈建议:开启 结果通知,并配置能够及时触达运维人员的渠道。

    最佳实践:

    • 渠道选择:除了平台内通知,优先配置钉钉、飞书、微信或邮件等客户端,这些渠道的触达率和即时性远高于平台内消息。

    • 通知事件:至少应配置“任务运行异常”、“数据同步延迟预警”和“脏数据超出阈值”等关键事件的通知。

    价值解读:消息通知是运维的“眼睛”和“耳朵”。及时的通知可以让我们在问题发生的“第一时间”介入,将故障影响降到最低,是保障业务SLA(服务等级协议)的关键环节。

    3.4.3 开启INFO级别日志

    icon提示:
    适用于 4.2.1.2 之前版本;4.2.1.2 及之后版本,日志等级默认设置为 INFO

    强烈建议:在管道的日志设置中,将日志级别设置为 INFO

    价值解读:

    • 日常观察:INFO 级别日志会记录任务启动、停止、数据批次处理等关键节点信息,便于日常观察任务的健康状态。

    • 问题排查:当任务出现问题时,INFO 级别的日志提供了丰富上下文。我们可以清晰地追溯问题发生前的完整过程,例如“是在哪个数据批次处理时卡住的”、“在DDL变更后发生了什么”,这对于快速定位问题根源至关重要。相比之下,默认的 WARN 或 ERROR 级别日志只记录结果,过程信息的缺失会大大增加排查难度。

    3.5 日常运维与监控

    主动、定期的巡检是发现潜在问题的最佳方式,能有效避免小问题演变成大故障。

    3.5.1 定期巡检管道状态

    最佳实践:运维人员应养成定期(建议每隔2-3天)登录FDL平台,在“管道首页”或“任务运维”模块查看所有任务的整体状态。

    巡检要点:

    • 任务状态:关注是否有处于“异常”或“暂停”状态的任务。

    • 待同步数量:检查“待同步数量”是否有持续增长的趋势,这通常是数据积压的前兆。

    • 脏数据状态:查看是否有新增的脏数据,并及时分析原因。

    价值解读:通过这种“体检式”的巡检,可以在数据积压、性能瓶颈等问题初期就发现端倪,提前介入处理,防患于未然。

    3.5.2 监控核心服务器磁盘空间

    高频问题:FDL 服务器和 Kafka 服务器的磁盘空间不足,是导致管道服务整体崩溃的常见且高频的原因。

    最佳实践:必须将 FDL 和 Kafka 服务器的磁盘使用率纳入核心系统监控,并设置合理的告警阈值(例如:超过85%告警,超过95%紧急告警)。

    因果关系:

    • FDL服务器:需要磁盘空间存储临时文件、缓存数据和运行日志。

    • Kafka 服务器:所有通过管道的数据都会在 Kafka 中暂存,如果消费端(写入端)出现延迟,数据会在 Kafka 中积压,迅速耗尽磁盘空间。一旦磁盘写满,Kafka 将无法接收新数据,导致所有管道任务阻塞。




    附件列表


    主题: 数据管道
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持