全部产品
Search
文档中心

大数据开发治理平台 DataWorks:实时同步高级参数

更新时间:Feb 11, 2026

以下为部分高级参数说明:

名称

可选值

默认

说明

使用范围

自动设置运行时配置

true/false

true

  • true (默认):系统会根据CU数自动设置并发等参数。但可能因与源端Shard数不是倍数关系,导致每个读取并发分配的Shard数不一致,出现数据倾斜问题影响性能。

  • false:手动设置参数。如遇性能问题或数据倾斜,请选择false并手动调优。手动设置Worker数和单Worker并发数,以优化数据倾斜问题。

通用

全局flush间隔(秒)

5~1000的整数

60

定义了全部写入线程将缓存数据批量推送到目标端,并推进同步位点(offset)的频率。

  • 值越大:同步吞吐量越高,但数据可见延迟也越高。

  • 值越小:数据可见延迟越低,但可能影响同步吞吐量。

建议:对延迟不敏感的大数据量同步场景可适当增大此值;对实时性要求高的场景应减小此值。

通用

failover重启策略的时间窗口(分钟)

1~60的整数

30

当同步任务遇到可恢复异常时,系统会根据 “failover 重启策略的时间窗口(分钟)” 内发生的异常次数是否超过预设阈值,判断是否自动触发重启:

  • 若异常次数未超过阈值:触发重启,并将该时间窗口内的异常计数加一;

  • 若异常次数超过阈值:不再重启,任务判定为失败。

该参数定义了异常统计的时间范围。时间窗口越小,表示系统对异常频率的容忍度越高(即短时间内多次异常也允许重启),有助于应对偶发性抖动。

重要

但若设置过小,可能导致任务在遭遇持续不可恢复异常时仍频繁重启,造成资源浪费,甚至延迟故障发现与人工干预时机。

通用

failover重启策略的失败次数阈值

1~100的整数

3

在“failover重启策略的时间窗口”内,允许任务自动重启的最大次数。

  • 值越大:对短时间内频繁发生的偶发错误的容忍度越高。

  • 值越小:能更快地将持续性问题标记为失败,避免资源浪费。

建议:通常建议设置为一个较小的值,以在容错和快速发现问题之间取得平衡。

通用

分区缓存队列大小

5~100的整数

5

写入 MaxCompute 非 Delta 分区表时,数据按分区进行缓存。在 全局 flush 间隔(秒) 所设定的时间窗口内,同步任务需为每个待写入分区分配一块独立缓存。
分区缓存队列大小 参数用于限制任务最多可同时缓存的分区数量。

若在该时间间隔内,待写入分区数超过队列大小上限,系统将提前触发 全局 flush,清空所有缓存并提交数据。频繁触发全局 flush 会显著降低写入效率,影响整体同步性能。

建议:将 分区缓存队列大小 设置为 大于“全局 flush 间隔内可能产生的分区数量”,以避免过早触发 flush。

当同步任务出现延迟,且日志中出现:uploader map size has reached uploaderMapMaximumSize提示时,表明缓存分区数已达上限,建议调大该参数以提升吞吐能力。

重要

增大该参数将线性增加内存消耗,估算公式如下:内存消耗 ≈ 10MB × 分区缓存队列大小 × Worker 数 × 单 Worker 并发数 × 异步写入线程池大小

请根据集群资源合理配置,避免因内存过高引发 OOM内存溢出。

MaxCompute写入

异步写入线程池大小

1~100的整数

1

当同步任务出现延迟,且确认瓶颈位于写入端时,可适当增大写入并发数以提升吞吐。例如:单并发读取Loghub的性能通常比写入MaxCompute性能要好,此时可适当调大参数以提高写入性能。

说明

但为避免 Worker 内部并发调度开销过大,建议该参数值不超过 10。

MaxCompute写入

超长字段处理规则

不处理/截断/置空

不处理

MaxCompute单字段限制最大长度,默认为8MB,该参数控制同步任务写入字段长度超过8MB时处理策略。

  • 不处理:表示将超长字段原样写入,如果MaxCompute单字段限制最大长度没做过修改采用的默认值8MB则同步任务将异常退出。

  • 截断:表示将字段超过8MB的部分截断后写入。

  • 置空:表示丢弃所有内容写入NULL。

MaxCompute写入

实时任务session缓存大小(单位字节)

正整数

67108864(64MB)

写入 MaxCompute Delta 表时,数据通过 bucket 进行缓存。每个待写入分区会创建一个 session(非分区表则创建一个全局 session),每个 session 包含多个 bucket(bucket 数量由建表时指定)。同步任务为每个 bucket 分配独立缓存,当 某个 session 内所有 bucket 的累计缓存数据量超过该参数设定值(单位:字节) 时,系统将触发该 session 下所有 bucket 数据批量提交至 MaxCompute 服务端。

说明

该参数控制内存使用与写入频率的平衡。当同步任务因缓存占用过高导致内存溢出(OOM)时,可适当减小该参数以降低内存峰值压力。

MaxCompute写入

实时任务bucket缓存大小(单位字节)

正整数

1048576(1MB)

写入 MaxCompute Delta 表时,数据按 bucket 进行缓存。每个待写入的分区会创建一个 session(非分区表则创建一个全局 session),而每个 session 会进一步划分为多个 bucket(bucket 数量由建表时指定)。同步任务需为每个 bucket 分配独立缓存,当某个 bucket 的缓存数据量超过该参数设定值(单位:字节)时,即触发该 bucket 数据向 MaxCompute 服务端提交。

说明

该参数用于控制内存使用与写入频率的平衡,通常无需调整,建议保持默认值。

MaxCompute写入

动态写磁盘阈值

正整数

写入MaxCompute Delta表时,可指定该参数。如果待写入分区数超过该参数设置值,则Bucket缓存数据会由内存转为磁盘存储,以减少内存消耗。该参数设置后会降低同步性能,只在任务待写入分区过多,内存消耗过大时设置。

MaxCompute写入

单表flush并发

正整数

2

写入MaxCompute Delta表时,该参数决定一个session支持同时推送多少个bucket的缓存数据到MaxCompute服务端,通常不用修改。

MaxCompute写入

数据分区策略

主键值/表分区字段值

主键值

写入 MaxCompute Delta 表时,若写入并发数大于 1,为保证数据写入顺序一致性,需配置数据分区策略,以决定源端数据如何分发到多个写入并发实例。

  • 主键值分发:相同主键的记录始终路由到同一个写入并发。

    • 优势:主键通常分布均匀,可有效避免数据倾斜,写入负载更均衡。

    • 缺点:每个写入并发需为所有待写入分区独立分配缓存,内存占用较高(内存 ≈ 并发数 × 分区数 × 缓存开销),可能引发 OOM。

  • 表分区字段值分发:相同分区的记录由同一并发处理。

    • 优势:多个并发可共享分区缓存,显著降低整体内存消耗。

    • 缺点:若分区数据分布不均(如热点分区),易导致部分并发负载过高,出现 写入并发数据倾斜。

配置建议

  1. 优先设置为“主键值”:保障写入性能与负载均衡,适用于大多数场景;若同步任务因缓存过大发生内存溢出,可切换为“表分区字段值”以降低内存压力;

  2. 切换时需评估分区数据分布是否均匀,避免引入新的性能瓶颈。

MaxCompute写入

单Worker并发数

1~100的整数

根据CU数变化

同步任务总并发数=单Worker并发数×Worker数。当出现数据倾斜时,可以调整该值。以源端为Loghub为例:同步任务总并发数建议等于Logstore Shard最大序号-Logstore Shard最小序号+1

为减少Worker内并发调度资源消耗过大,建议单Worker并发数设置小于10。

通用

Worker数

1~100的整数

根据CU数变化

同步任务总并发数=单Worker并发数×Worker数,单Worker CU数太大会导致资源调度时间过长,建议Worker数设置确保单Worker CU不要超过10。

通用