本文档汇总 WeData 2.0 数据集成离线同步任务支持的高级参数,您可以在离线同步任务配置中点击"高级参数"进行配置。
使用说明
参数格式 :参数名称=参数值(如
ignoreDirEmpty=TRUE)。参数适用范围 :不同数据源支持的参数不同,请在对应数据源的离线同步任务中查看可用参数。
参数大小写 :参数名称区分大小写,请严格按照文档填写。
高级参数明细
离线类型 | 读/写 | 参数 | 取值参考 | 描述 | 可选值 |
COS | 读取端 | ignoreDirEmpty | TRUE | 添加该参数后,在数据同步模式下源端文件路径下没有文件或只有空文件时任务不报错。 不添加该参数则默认 ignoreDirEmpty=false,源端文件路径下没有文件或只有空文件时任务报错。 | true,false |
COS | 读取端 | ignoreFileNotFound | TRUE | 添加该参数后,在数据同步或文件传输模式下源端文件或文件路径不存在时任务不报错。 不添加该参数则默认 ignoreFileNotFound=false,源端文件或文件路径不存在时任务报错。 | true,false |
COS | 读取端 | transEmpFile | TRUE | 添加该参数后,在文件传输模式下支持将空文件同步至 FTP/SFTP/HDFS/S3/COS 目标端。 不添加该参数则默认 transEmpFile=false,在文件传输模式下不同步空文件。 | true,false |
COS | 写入端 | splitFileSize | 134217728 | 单文件切分大小。 针对 hive on COS 不生效 ;支持 text、orc、parquet 类型的文件。 | - |
COS | 写入端 | hadoopConfig | {} | 支持添加配置到 hadoopConfig 中 | - |
COS | 写入端 | saveEmpFile | TRUE | 添加该参数后,在数据同步模式下源端无数据时目标端生成的空文件保留。 不添加该参数则默认 saveEmpFile=false,在数据同步模式下源端无数据时目标端不保留生成的空文件。 | true,false |
DLC | 读取端 | fs.cosn.trsf.fs.ofs.data.transfer.thread.count | 32 | 通过该参数可以设置读/写数据时的并行线程数,若不设置则默认值为32 | - |
DLC | 读取端 | fs.cosn.trsf.fs.ofs.prev.read.block.count | 4 | 通过该参数可以设置预读数据块的数量,若不设置则默认值为4。 | - |
DLC | 读取端 | ignoreNullFormat | TRUE | 添加该参数后,源端的空字符串将以空字符串形式写入目标端。 不添加该参数默认 ignoreNullFormat=false,源端的空字符串将默认以 null 值写入目标端。 | true,false |
DLC | 读取端 | session | ["spark.sql.xxx=value"] | 设置 DLC session 参数,具体 session 支持参数由 DLC 引擎支持,可查询 DLC 官方文档 | - |
DLC | 写入端 | fs.cosn.trsf.fs.ofs.data.transfer.thread.count | 32 | 通过该参数可以设置读/写数据时的并行线程数,若不设置则默认值为32 | - |
达梦 DM | 读取端 | queryTimeout | 172800 | 该参数用于设置数据库查询的最大运行时间,单位默认为秒(s)。添加该参数后,若数据库查询运行时间超过设置时间则任务状态自动置为失败。 不添加该参数则默认 queryTimeout=172800。 | - |
达梦 DM | 读取端 | session | ["SET SESSION QUERY_TIMEOUT = 60000"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
达梦 DM | 写入端 | session | ["SET SESSION QUERY_TIMEOUT = 60000"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
Doris | 读取端 | query_timeout | 604800 | 查询的超时时间,以秒为单位 | - |
Doris | 读取端 | exec_mem_limit | 4294967296 | 设置执行内存限制,用于限制查询执行过程中的内存使用 | - |
Doris | 读取端 | parallel_fragment_exec_instance_num | 8 | 指定并行片段执行的实例数 | - |
Doris | 写入端 | sameNameWildcardColumn | TRUE | MySQL-Doris 配置* 支持同名字段映射 | true,false |
Doris | 写入端 | loadProps | {"format":"csv","column_separator":"\\x01","row_delimiter":"\\x03"} | CSV 格式写入。相对默认的 JSON 格式写入性能更高。需要配合行分隔符\\x03一起使用。分割符不支持\\r、\\b,十六进制的隐藏字符需要以\\形式输入 | - |
DORIS | 写入端 | replaceDelimiter | 替换符 | 如果数据项中包含作为分隔符的字符,将数据导入时,按照分割符分隔数据会导致字段错位。 添加该参数可以将数据项中与指定行分割符或列分割符一致的字符先替换为用户自定义的字符(替换操作会改变数据),再按照行分割符或列分割分隔数据。 不添加该参数时,直接按照分隔符分隔数据。 | - |
ElasticSearch /腾讯云 ElasticSearch | 写入端 | compression | TRUE | HTTP 请求,开启压缩 | - |
ElasticSearch /腾讯云 ElasticSearch | 写入端 | multiThread | TRUE | HTTP 请求,是否有多线程 | true,false |
ElasticSearch /腾讯云 ElasticSearch | 写入端 | ignoreWriterError | FALSE | 忽略写入错误,不重试,继续写入 | true,false |
ElasticSearch /腾讯云 ElasticSearch | 写入端 | ignoreParseError | FALSE | 忽略解析数据格式错误,继续写入 | true,false |
ElasticSearch /腾讯云 ElasticSearch | 写入端 | alias | | Elasticsearch 的别名类似于数据库的视图机制,为索引 my_index 创建一个别名 my_index_alias,对 my_index_alias 的操作与 my_index 的操作一致。配置 alias 表示在数据导入完成后,为指定的索引创建别名。 | - |
ElasticSearch /腾讯云 ElasticSearch | 写入端 | aliasMode | append | 数据导入完成后增加别名的模式,包括 append(增加模式和 exclusive(只留这一个),append 表示追加当前索引至名 alias 映射中(一个别名对应多个索引)exclusive 表示首先删除名 alias,再添加当前索引至别名 alias 映射中(一个别名对应一个索引)。后续会转换别名为实际的索引名称,别名可以用来进行索引迁移和多个索引的查询统一,并可以用来实现视图的功能。 | append,exclusive |
ElasticSearch /腾讯云 ElasticSearch | 写入端 | nullToDate | null | null 值转 date 类型,填充 null | - |
FTP | 读取端 | ignoreFileNotFound | TRUE | 添加该参数后,在数据同步或文件传输模式下源端文件或文件路径不存在时任务不报错。 不添加该参数则默认 ignoreFileNotFound=false,源端文件或文件路径不存在时任务报错。 | true,false |
FTP | 读取端 | transEmpFile | TRUE | 添加该参数后,在文件传输模式下支持将空文件同步至 FTP/SFTP/HDFS/S3/COS 目标端。 不添加该参数则默认 transEmpFile=false,在文件传输模式下不同步空文件。 | true,false |
FTP | 写入端 | deleteEmpFile | TRUE | 添加该参数后,在数据同步模式下源端无数据时,不保留目标端生成的空文件。 不添加该参数则默认 deleteEmpFile=false,在数据同步模式下源端无数据时,保留目标端生成的空文件。 | true,false |
HBase | 写入端 | hbase.client.keyvalue.maxsize | 10485760 | 用于限制单个 KeyValue 对象的最大大小,默认 10MB | - |
HDFS | 读取端 | ignoreDirEmpty | TRUE | 添加该参数后,在数据同步模式下源端文件路径下没有文件或只有空文件时任务不报错。 不添加该参数则默认 ignoreDirEmpty=false,源端文件路径下没有文件或只有空文件时任务报错。 | true,false |
HDFS | 读取端 | ignoreFileNotFound | TRUE | 添加该参数后,在数据同步或文件传输模式下源端文件或文件路径不存在时任务不报错。 不添加该参数则默认 ignoreFileNotFound=false,源端文件或文件路径不存在时任务报错。 | true,false |
HDFS | 读取端 | transEmpFile | TRUE | 添加该参数后,在文件传输模式下支持将空文件同步至 FTP/SFTP/HDFS/S3/COS 目标端。 不添加该参数则默认 transEmpFile=false,在文件传输模式下不同步空文件。 | true,false |
HDFS | 写入端 | splitFileSize | 134217728 | 单文件切分大小。 hive on hdfs 不生效;支持 text、orc、parquet 类型的文件 | - |
HDFS | 写入端 | writeMode | overwrite | 该参数适用于文件传输方式。添加该参数后,会在写入前清理目标端与源端重名的文件。若 不添加该参数,则在文件传输方式下默认 writeMode=nonconflict,即遇到源端与目标端重名文件时跳过写入 | append,overwrite,nonconflict,truncate |
HDFS | 写入端 | saveEmpFile | TRUE | 添加该参数后,在数据同步模式下源端无数据时目标端生成的空文件保留。 不添加该参数则默认 saveEmpFile=false,在数据同步模式下源端无数据时目标端不保留生成的空文件。 | true,false |
Hive | 读取端 | hive.execution.engine | mr | hive.execution.engine 用于指定 Hive 查询的执行引擎为 mr;mapreduce.job.queuename=root.default 用于指定作业(job)提交到哪个队列(queue)中执行。二者需配合使用才能生效。 | - |
Hive | 读取端 | mapreduce.job.queuename | root.default | hive.execution.engine 用于指定 Hive 查询的执行引擎为 mr;mapreduce.job.queuename=root.default 用于指定作业(job)提交到哪个队列(queue)中执行。二者需配合使用才能生效。 | - |
Hive | 读取端 | session | ["set hive.execution.engine=spark", "set spark.yarn.queue=default", "set spark.executor.instances=10", "set spark.executor.cores=4", "set spark.executor.memory=10g", "set spark.app.name=xxx"] | hive.execution.engine=spark 用于指定 Hive 查询的执行引擎为 spark;spark.yarn.queue=default 用于指定 YARN 资源队列名称,用于资源调度;spark.executor.instances=10用于指定启动的 Executor 实例数量;spark.executor.cores=4用于为每个 Executor 分配的 CPU 核心数;spark.executor.memory=10g 用于为每个 Executor 分配的内存大小;spark.app.name=xxx 用于在 Spark 集群监控界面中标识您的作业,其中 xxx 占位符需要自行输入。 | - |
Hive | 写入端 | compress | none/snappy/lz4/bzip2/gzip/deflate | 默认为 none。只对 textfile 格式有效,对 orc/parquet 无效(orc/parquet 需要在建表语句指定压缩) | none,snappy,lz4,bzip2,gzip,deflate |
Hive | 写入端 | partition | static | 静态分区模式。适用于单分区写入,更节省内存。 | static |
Hudi | 读取端 | session | ["set spark.yarn.queue=default", "set spark.executor.instances=10", "set spark.executor.cores=4", "set spark.executor.memory=10g", "set spark.app.name=xxx"] | hudi.execution.engine=spark 用于指定 Hudi 查询的执行引擎为 spark;spark.yarn.queue=default 用于指定 YARN 资源队列名称,用于资源调度;spark.executor.instances=10用于指定启动的 Executor 实例数量;spark.executor.cores=4用于为每个 Executor 分配的 CPU 核心数;spark.executor.memory=10g 用于为每个 Executor 分配的内存大小;spark.app.name=xxx 用于在 Spark 集群监控界面中标识您的作业,其中 xxx 占位符需要自行输入。 | - |
Hudi | 写入端 | compress | none/snappy/lz4/bzip2/gzip/deflate | 默认为 none。只对 textfile 格式有效,对 orc/parquet 无效(orc/parquet 需要在建表语句指定压缩) | none,snappy,lz4,bzip2,gzip,deflate |
Hudi | 写入端 | partition | static | 静态分区模式。适用于单分区写入,更节省内存。 | static |
Kafka | 写入端 | kafkaConfig | {} | 支持 Kafka Producer 配置项 | - |
MongoDB | 读取端 | batchSize | 1000 | 批量读取的条数 | - |
MongoDB | 读取端 | formatISODate | false | 读取时将 ISODate 格式化为 yyyy-MM-dd HH:mm:ss ,默认 false(不格式化) | true,false |
MongoDB | 写入端 | replaceKey | id | 写入模式为覆盖写入时,用来作为更新的业务主键。支持联合主键,需用逗号隔开主键,如 replaceKey=id,data | - |
MongoDB | 写入端 | batchSize | 2000 | 批量写入的条数,若不设置,默认为1000 | - |
MySQL | 读取端 | splitFactor | 5 | 分片因子 | - |
MySQL | 读取端 | queryTimeout | 172800 | 该参数用于设置数据库查询的最大运行时间,单位默认为秒(s)。添加该参数后,若数据库查询运行时间超过设置时间则任务状态自动置为失败。若不添加该参数则默认 queryTimeout=172800 | - |
MySQL | 读取端 | preserveTemporalScaleFromSchema | FALSE | 写入时保留源端时间值精度,解决0.0000被写成0.00的问题(默认 FALSE,不保留) | - |
MySQL | 读取端 | session | ["SET SESSION wait_timeout=28800"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
MySQL | 写入端 | sql_mode | ANSI | 用于控制 SQL 语句的语法规则、数据校验严格程度和兼容性模式,决定数据库如何处理非标准或可能出错的数据和操作(默认参数 sql_mode=ANSI) | - |
MySQL | 写入端 | session | ["SET SESSION wait_timeout=28800"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
OceanBase | 读取端 | splitFactor | 5 | 分片因子 | - |
Oracle | 读取端 | queryTimeout | 172800 | 该参数用于设置数据库查询的最大运行时间,单位默认为秒(s)。添加该参数后,若数据库查询运行时间超过设置时间则任务状态自动置为失败。若不添加该参数则默认 queryTimeout=172800 | - |
Oracle | 读取端 | session | ["ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
Oracle | 写入端 | session | ["ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
Redis | 写入端 | redisMode | ClusterMode | Redis writer 支持 cluster | ClusterMode |
REST API | 读取端 | connectTimeout | 30 | 添加该参数后可设置连接超时时间,单位默认为秒,若不添加该参数默认 connectTimeout=5。 | - |
REST API | 读取端 | socketTimeout | 60 | 添加该参数后可设置 Socket 超时时间,单位默认为秒,若不添加该参数默认 socketTimeout=10。 | - |
REST API | 读取端 | recordNumPerPage | 20 | 该参数用于指定每页返回的记录数。添加该参数后,自定义的请求终点失效,系统将根据指定值自动分页,若不设置 maxPageNum 参数,则默认最大请求页数 maxPageNum=10000。当服务器返回的记录数少于指定值时,视为最后一页并停止请求(注意:返回的记录数等于指定值时,无法判断是否为最后一页将再次请求)。若不添加该参数,将按默认的自定义请求终点获取数据。 | - |
REST API | 读取端 | maxPageNum | 10000 | 该参数用于指定最大请求页数,且必须与 recordNumPerPage 参数一起使用,否则该参数不生效。添加该参数后,请求页数达到指定值时将停止请求。 | - |
S3 | 读取端 | ignoreDirEmpty | TRUE | 添加该参数后,在数据同步模式下源端文件路径下没有文件或只有空文件时任务不报错。不添加该参数则默认 ignoreDirEmpty=false,源端文件路径下没有文件或只有空文件时任务报错。 | true,false |
S3 | 读取端 | ignoreFileNotFound | TRUE | 添加该参数后,在数据同步或文件传输模式下源端文件或文件路径不存在时任务不报错。不添加该参数则默认 ignoreFileNotFound=false,源端文件或文件路径不存在时任务报错。 | true,false |
S3 | 读取端 | transEmpFile | TRUE | 添加该参数后,在文件传输模式下支持将空文件同步至 FTP/SFTP/HDFS/S3/COS 目标端。不添加该参数则默认 transEmpFile=false,在文件传输模式下不同步空文件。 | true,false |
S3 | 写入端 | saveEmpFile | TRUE | 添加该参数后,在数据同步模式下源端无数据时目标端生成的空文件保留。不添加该参数则默认 saveEmpFile=false,在数据同步模式下源端无数据时目标端不保留生成的空文件。 | true,false |
SAP HANA | 读取端 | isFullTableName | TRUE | 添加该参数后输入或选择的表名视为完整名称。若不添加该参数,默认 isFullTableName=false 即表名包含"."时自动解析为 Schema.Table | true,false |
SAP HANA | 读取端 | session | ["SET SESSION 'statement_timeout' = '60'"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
SAP HANA | 写入端 | isFullTableName | TRUE | 添加该参数后输入或选择的表名视为完整名称。若不添加该参数,默认 isFullTableName=false 即表名包含"."时自动解析为 Schema.Table | true,false |
SAP HANA | 写入端 | session | ["SET SESSION 'statement_timeout' = '60'"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
SFTP | 读取端 | ignoreFileNotFound | TRUE | 添加该参数后,在数据同步或文件传输模式下源端文件或文件路径不存在时任务不报错。不添加该参数则默认 ignoreFileNotFound=false,源端文件或文件路径不存在时任务报错。 | true,false |
SFTP | 读取端 | transEmpFile | TRUE | 添加该参数后,在文件传输模式下支持将空文件同步至 FTP/SFTP/HDFS/S3/COS 目标端。不添加该参数则默认 transEmpFile=false,在文件传输模式下不同步空文件。 | true,false |
SFTP | 写入端 | deleteEmpFile | TRUE | 添加该参数后,在数据同步模式下源端无数据时目标端生成的空文件不保留。不添加该参数则默认 deleteEmpFile=false,在数据同步模式下源端无数据时保留目标端生成的空文件。 | true,false |
SQL Server | 读取端 | queryTimeout | 172800 | 该参数用于设置数据库查询的最大运行时间,单位默认为秒(s)。添加该参数后,若数据库查询运行时间超过设置时间则任务状态自动置为失败。若不添加该参数则默认 queryTimeout=172800 | - |
SQL Server | 读取端 | session | ["SET LOCK_TIMEOUT 30000"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
SQL Server | 写入端 | session | ["SET LOCK_TIMEOUT 30000"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
StarRocks | 读取端 | splitFactor | 5 | 分片因子 | - |
StarRocks | 读取端 | query_timeout | 604800 | 查询的超时时间,以秒为单位 | - |
StarRocks | 读取端 | exec_mem_limit | 4294967296 | 设置执行内存限制,用于限制查询执行过程中的内存使用 | - |
StarRocks | 读取端 | parallel_fragment_exec_instance_num | 8 | 指定并行片段执行的实例数 | - |
StarRocks | 写入端 | loadProps | {"format":"csv","column_separator":"\\x01","row_delimiter":"\\x03"} | CSV 格式写入。相对默认的 JSON 格式写入性能更高。需要配合行分隔符\\x03一起使用。分割符不支持\\r、\\b,十六进制的隐藏字符需要以\\形式输入 | - |
StarRocks | 写入端 | replaceDelimiter | 替换符 | 如果数据项中包含作为分隔符的字符,将数据导入时,按照分割符分隔数据会导致字段错位。添加该参数可以将数据项中与指定行分割符或列分割符一致的字符先替换为用户自定义的字符(替换操作会改变数据),再按照行分割符或列分割分隔数据。不添加该参数时,直接按照分割符分隔数据。 | - |
TDSQL MYSQL | 读取端 | splitFactor | 5 | 分片因子 | - |
TDSQL MYSQL | 读取端 | preserveTemporalScaleFromSchema | FALSE | 写入时保留源端时间值精度,解决0.0000被写成0.00的问题(默认 FALSE,不保留) | - |
TDSQL MYSQL | 读取端 | session | ["SET SESSION wait_timeout=28800"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
TDSQL MYSQL | 写入端 | sql_mode | ANSI | 用于控制 SQL 语句的语法规则、数据校验严格程度和兼容性模式,决定数据库如何处理非标准或可能出错的数据和操作(默认参数 sql_mode=ANSI) | - |
TDSQL MYSQL | 写入端 | session | ["SET SESSION wait_timeout=28800"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
TDSQLC | 读取端 | preserveTemporalScaleFromSchema | FALSE | 写入时保留源端时间值精度,解决0.0000被写成0.00的问题(默认 FALSE,不保留) | - |
TDSQLC | 读取端 | session | ["SET SESSION wait_timeout=28800"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
TDSQLC | 写入端 | sql_mode | ANSI | 用于控制 SQL 语句的语法规则、数据校验严格程度和兼容性模式,决定数据库如何处理非标准或可能出错的数据和操作(默认参数 sql_mode=ANSI) | - |
TDSQLC | 写入端 | session | ["SET SESSION wait_timeout=28800"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
腾讯云 MongoDB | 读取端 | batchSize | 1000 | 批量读取的条数 | - |
腾讯云 MongoDB | 写入端 | replaceKey | id | 写入模式为覆盖写入时,用来作为更新的业务主键。支持联合主键,需用逗号隔开主键,如 replaceKey=id,data | - |
腾讯云 MongoDB | 写入端 | batchSize | 2000 | 批量写入的条数,若不设置,默认为1000 | - |
腾讯云 MySQL | 读取端 | preserveTemporalScaleFromSchema | FALSE | 写入时保留源端时间值精度,解决0.0000被写成0.00的问题(默认 FALSE,不保留) | - |
腾讯云 MySQL | 读取端 | session | ["SET SESSION wait_timeout=28800"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
腾讯云 MySQL | 写入端 | sql_mode | ANSI | 用于控制 SQL 语句的语法规则、数据校验严格程度和兼容性模式,决定数据库如何处理非标准或可能出错的数据和操作(默认参数 sql_mode=ANSI) | - |
腾讯云 MySQL | 写入端 | session | ["SET SESSION wait_timeout=28800"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
TiDB | 读取端 | session | ["SET SESSION wait_timeout=28800"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
TiDB | 写入端 | session | ["SET SESSION wait_timeout=28800"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
PostgreSQL | 读取端 | session | ["SET statement_timeout='5min'"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
PostgreSQL | 写入端 | session | ["SET statement_timeout='5min'"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
GaussDB | 读取端 | session | ["SET statement_timeout='5min'"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
GaussDB | 写入端 | session | ["SET statement_timeout='5min'"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
Greenplum | 读取端 | session | ["SET statement_timeout='5min'"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
Greenplum | 写入端 | session | ["SET statement_timeout='5min'"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
Tbase | 读取端 | session | ["SET statement_timeout='5min'"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
Tbase | 写入端 | session | ["SET statement_timeout='5min'"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
TDSQL PostgreSQL | 读取端 | session | ["SET statement_timeout='5min'"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
TDSQL PostgreSQL | 写入端 | session | ["SET statement_timeout='5min'"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
DB2 | 读取端 | session | ["SET CURRENT LOCK TIMEOUT 30"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
DB2 | 写入端 | session | ["SET CURRENT LOCK TIMEOUT 30"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
Sybase | 读取端 | session | ["SET QUERY_TIMEOUT 60"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
Gbase | 读取端 | session | ["SET SESSION wait_timeout=28800"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
Gbase | 写入端 | session | ["SET SESSION wait_timeout=28800"] | 设置 session 参数,具体 session 支持参数可查询数据源官网 | - |
常见问题
1. 如何配置多个高级参数?
在离线同步任务配置的"高级参数"中,每个参数占一行,格式为
参数名称=参数值,例如:ignoreDirEmpty=TRUEqueryTimeout=172800
2. 参数是否区分大小写?
是的,参数名称区分大小写,请严格按照文档中的参数名称填写。
3. 参数配置后多久生效?
高级参数在任务保存后生效,重启任务后配置生效。
实践示例
本文档汇总常见的高级参数使用场景,帮助您快速解决离线同步任务中的问题。
示例1:MySQL 数据源连通性报错(时区问题)
报错摘要:
配置 MySQL 数据源后,测试连通性时报错,错误信息包含时区相关异常(如
The server time zone value 'XXX' is unrecognized)。原因分析:
MySQL JDBC 连接需要指定时区参数
serverTimezone,若未配置或配置错误,会导致连接失败。WeData 高级参数中的 session 参数可用于设置时区。参数配置:
在离线同步任务的"高级参数"中,添加以下配置(读取端和写入端均需配置):
session=["SET time_zone='+08:00'"]
说明:
+08:00 表示东八区(中国时区),请根据实际业务需求调整。示例2:Doris 数据同步出现数据重复
报错摘要:
Doris 数据同步任务执行成功后,查询目标表发现数据重复(数据条数大于源端)。
原因分析:
Doris 写入时需要正确配置主键模式(
sameNameWildcardColumn),若未配置或配置不正确,会导致数据重复写入而非更新。参数配置:
在离线同步任务目标端(Doris)的"高级参数"中,添加以下配置:
sameNameWildcardColumn=TRUE
说明:
该参数用于支持同名字段映射,避免数据重复写入。
示例3:读取空文件时作业报错
报错摘要:
离线同步任务读取 COS/SFTP/HDFS 等文件系统时,若源端文件路径下没有文件或只有空文件,任务报错失败。
原因分析:
默认情况下,WeData 要求源端文件路径下必须存在有效文件,否则任务会报错。若业务场景允许空文件或空目录,需配置忽略参数。
参数配置:
根据数据源类型,在离线同步任务读取端的"高级参数"中,添加以下配置:
COS/S3/FTP/SFTP/HDFS 读取端:
ignoreDirEmpty=TRUEignoreFileNotFound=TRUE
文件传输模式(允许同步空文件):
transEmpFile=TRUE
说明:
ignoreDirEmpty=TRUE:源端文件路径下没有文件或只有空文件时,任务不报错。
ignoreFileNotFound=TRUE:源端文件或文件路径不存在时,任务不报错。
transEmpFile=TRUE:在文件传输模式下,支持将空文件同步至目标端。
示例4:DLC 空字符串写入为 NULL 导致数据不一致
报错摘要:
使用 DLC 作为源端进行数据同步时,源端的空字符串(
'')在写入目标端后变成 NULL,导致源端与目标端数据不一致。原因分析:
DLC 底层存储机制会将空字符串写入为
NULL 值。若不配置 ignoreNullFormat 参数,WeData 会默认将源端的空字符串以 NULL 值写入目标端。参数配置:
在离线同步任务源端(DLC 读取端)的"高级参数"中,添加以下配置:
ignoreNullFormat=TRUE
说明:
配置该参数后,源端的空字符串将以空字符串形式写入目标端,而非
NULL 值。示例5:MySQL 日期字段为 '0000-00-00 00:00:00' 时读取异常
报错摘要:
MySQL 源端表中存在日期字段值为
0000-00-00 00:00:00 时,离线同步任务读取报错(如 Cannot convert value '0000-00-00 00:00:00' from column X to TIMESTAMP)。原因分析:
MySQL JDBC 驱动默认不支持将
0000-00-00 00:00:00 转换为合法的 TIMESTAMP 值。需通过 session 参数设置 SQL 模式,允许非法日期值。参数配置:
在离线同步任务源端(MySQL 读取端)的"高级参数"中,添加以下配置:
session=["SET SESSION sql_mode='ALLOW_INVALID_DATES'"]
说明:
ALLOW_INVALID_DATES:允许存储和读取非法日期值(如 0000-00-00)。若需同时保留其他 SQL 模式,请在
sql_mode 中添加该选项,而非完全替换。示例6:Kafka 生产者参数调优(batch.size、linger.ms)
报错摘要:
使用 WeData 将数据写入 Kafka 时,发现吞吐量较低,或希望优化 Kafka 生产者的批量发送行为。
原因分析:
Kafka 生产者有两个关键参数影响批量发送性能:
batch.size:每个批次可使用的内存字节数,默认 16384(16KB)。linger.ms:发送前等待更多消息加入批次的时间(毫秒),默认 0(立即发送)。参数配置:
在离线同步任务目标端(Kafka 写入端)的"高级参数"中,添加以下配置:
kafkaConfig={"batch.size":"32768","linger.ms":"100"}
说明:
batch.size:设置为 32768(32KB)可提高批量发送效率,但会增加内存占用。linger.ms:设置为 100ms 可在延迟和吞吐量之间取得平衡。请根据实际业务场景(吞吐量 vs 延迟)调整参数值。