You need to enable JavaScript to run this app.
导航

运行参数

最近更新时间2023.05.24 20:52:30

首次发布时间2021.02.25 15:13:14

1. 概述

用户可通过设置运行参数,优化同步配置,保障同步任务成功率,提升任务性能。

2. 快速入门

2.1 常用使用场景

  • 专业数据生产者,在创建数据集时,为同步任务设置合适的运行参数(资源相关)

  • 普通用户在数据集同步任务失败时,通过查看诊断提示,设置合适的运行参数后重跑任务

2.2 使用入口

  • 自定义 SQL 和表抽取设置可以配置抽取参数







3. 功能说明

3.1 抽取参数

抽取参数目前支持的数据源类型限制:Mysql、Clickhouse、Oracle、SQL Server、Maxcompute、Impala、Hive_jdbc、Redshift、LAS、Presto、Databricks
支持参数信息:

参数说明默认值是否必填建议值

prep.job.datax.channel

读取并发数,需要和spiltPk协同使用
建议不超过:5 (并发会对目标数据库造成压力)

不开启(1)

  • 无唯一键:1

  • 包含形如id的唯一键:5以下

prep.job.datax.partition.num

datax数据抽取之后后续etl处理在spark引擎侧计算的partion数目;
使用场景:当目标抽取数据量非常大时(数据量大1000万行),建议开启提升下游处理速度,建议大小为512(2的指数);

不开启(1)

  • 小数据量:1

  • 大数据量:512

prep.job.datax.splitPk

描述:MysqlReader进行数据抽取时,如果指定splitPk,表示用户希望使用splitPk代表的字段进行数据分片,Datax因此会启动并发任务进行数据同步,这样可以大大提高数据同步的效能。
推荐splitPk用户使用表主键,因为表主键通常情况下比较均匀,因此切分出来的分片也不容易出现数据热点。目前splitPk仅支持整形数据切分,不支持浮点、字符串、日期等其他类型。如果用户指定其他非支持类型,MysqlReader将报错。如果splitPk不填写,包括不提供splitPk或者splitPk值为空,DataX视作使用单通道同步该表数据。必选:否默认值:空实际上,由测试结果可知,切片是要配合channel来使用的,如果只开了splitpk,但是channel的配置为1,同样不会有并发的效果;

不开启

  • 有唯一键则配置,比如唯一键盘为uid,则填写:uid

  • 无唯一键则不配置

prep.job.datax.timeout

datax任务高级配置, MaxCompute数据源分区检测的等待超时时间, 单位分钟. 未配置的情况下, 查询的表分区为空时任务直接失败

不开启

不建议开启

prep.job.datax.disable任务禁用dataXfalsefalse

3.2 运行参数

参数名功能说明参数默认值参数值类型
spark.driver.coresdriver的CPU数量2int
spark.driver.memorydriver的内存大小4gstring

spark.driver.maxResultSize

拉取到Driver的数据上限,一般不需要调整。

2g (默认取spark.driver.memory的一半)

string

spark.executor.cores每个executor的CPU数。Spark task的最大并发为spark.executor.cores * executor个数2int
spark.executor.memoryexecutor的内存大小4gstring

spark.dynamicAllocation.maxExecutors

单个Spark任务的executor的最大个数

100

int

spark.sql.autoBroadcastJoinThreshold数据源侧的broadcast阈值,设为-1可以禁用。 PS: 禁用后不影响Spark AQE本身的broadcast-int
spark.sql.broadcastTimeoutbroadcast超时时间。设为-1可以关闭超时限制-int
spark.sql.files.maxPartitionBytes每个分区(Spark Partition)最大的文件大小,针对于大文件切分268435456int
spark.sql.files.openCostInBytes小于该值的文件将会被合并,针对于小文件合并8388608int