任务创建
更新时间: 2022-01-04 15:24:07
阅读 363
创建数据传输任务
1 功能入口
2 创建单个任务
2.1 填写任务基本信息
基本信息 | 说明 |
---|---|
任务名称 | 必填项,中英文开头,支持连字符(-)或下划线(_),长度不超过128个字符 |
负责人 | 默认为创建任务的用户,可选择本项目下任一用户为任务负责人 |
任务类型 | 必填项,选项为普通类型和SQL模式类型。SQL模式类型支持编写SQL语言读取数据源数据 |
描述 | 输入同步任务描述,最长不超过128个字符 |
2.2 配置数据来源与去向
- 数据来源
基本信息 | 说明 |
---|---|
数据源 | 必填项,选择数据源类型及数据源名称 |
查找方式 | 必填项,选项为【库表选择】和【正则匹配】,默认为【库表选择】。 【库表选择】:支持下拉列表选择数据库表或搜索选择数据库表。 【正则匹配】:在第一栏选择数据库,在第二栏输入分表正则表达式来匹配数据表,点击【解析】按钮可查看正则匹配结果(只显示匹配结果的前10张表) |
数据过滤 | 选项为:条件、流水型、自定义。具体说明如下: 条件:按列设置过滤规则,可添加一或多组条件,条件默认为AND关系 流水型:从选择字段的起始值开始读取数据,读取到最新记录位置,下次从上次的最新记录读取至当前的最新记录 自定义:填写where过滤语句(不含where关键字),通常用作增量同步,支持调度时间参数。时间参数用法详见* 时间参数用法详解。具体说明如下:增量同步在实际业务场景中,往往会选择当天的数据进行同步,通常需要编写where条件语句,需先确认表中描述增量字段(时间戳)为哪一个。如表增量的字段为create_time,则填写create_time>需要的日期 ,如果需要日期动态变化,可以填写如create_time>${azkaban.flow.1.days.ago} and create_time<${azkaban.flow.current.date} |
特殊字符替换 | 选择是否开启及替换内容 |
并发读取 | 选择是否开启并发读取。读取的数据将会根据切分键,按照并发度切分成指定的份数。 |
流量控制 | 必填项。默认为不限速 |
- 数据去向
基本信息 | 说明 |
---|---|
数据源 | 必填项,选择数据源类型及数据源名称 |
库表选择 | 必填项,选择数据库及表 |
写入规则 | 写入规则默认为Insert overwrite,说明如下: Insert overwrite:覆盖数据,即先删除原表的数据,再执行写入操作 Insert into:以追加的方式向原表尾部追加数据 Insert Ignore:若数据库已存在相同的记录,则跳过当前插入的这条数据;若不存在,则插入新的数据 Upsert:更新或插入,若未找到符合条件的数据,则插入这条数据,若找到,则正常更新数据 |
2.3 配置字段映射
基本信息 | 说明 |
---|---|
来源表字段 | 支持选择列名、不导入和自定义表达式。字段映射的默认匹配策略是列名匹配,若列名无法匹配,则该列来源字段显示为不导入,支持用户手动修改匹配的列 不导入:目标表中的这个字段将不会导入任何数据,需要注意目标表字段是否允许为空,不允许为空的字段或数据源不允许字段缺失,会导致任务报错 自定义表达式:自定义表达式格式为: ${表达式} as ${去向表列名}。如果输入‘a’,那么这个字段会导入字符串‘a’;也可以输入源端数据库支持的SQL表达式比如 current_timestamp as last_modify_time,将任务运行时间导入目标表的last_modify_time字段 |
2.4 高级设置
属性下拉列表选项包含作业参数、数据来源与数据去向对应的源端参数与目标端参数。属性及属性值说明如下:
- 常用作业参数
属性 | 值 | 默认值 | 说明 | 支持版本 |
---|---|---|---|---|
ndi.show-argument | boolean | FALSE | 日志中打印作业配置 | 1.0.0+ |
ndi.spark.spark-argument.executor-memory | 调度节点Spark client使用的值,具体值请咨询技术支持。 | 作业运行时,单个节点使用的内存。单位为g。 | 1.0.0+ | |
ndi.spark.spark-conf.spark.sql.hive.convertMetastoreParquet | boolean值 | TRUE | 值为false时,将使用读写hive表时使用hive的serde。 参考文档: https://spark.apache.org/docs/latest/sql-data-sources-parquet.html |
1.0.0+ |
ndi.enableColumnQuote | boolean值 | 默认false。部分表在创建时列名使用了数据库关键字或特殊符号,在作业运行过程中,会报语法错误。如果表中使用了数据库关键字可以将该值设置为true,会根据来源库类型给列名添加引号。 | 1.8.3+ | |
ndi.spark.spark-conf.spark.sql.parquet.compression.codec | none, uncompressed, snappy, gzip, lzo, brotli, lz4, zstd | snappy | 写去parquet文件时使用的压缩编码。当hive表为parquet时生效。 hive表属性中指定的压缩编码具有更高的优先级。 参考文档: https://spark.apache.org/docs/latest/sql-data-sources-parquet.html |
1.0.0+ |
ndi.spark.spark-conf.spark.sql.parquet.writeLegacyFormat | boolean值 | FALSE | 写入parquet文件使用的格式。 当设置为true时,会兼容hive和impala使用的parquet格式。 当值为false时,可能会导致写入hive后,在查询时报错。 参考文档: https://spark.apache.org/docs/latest/sql-data-sources-parquet.html |
1.0.0+ |
ndi.spark.spark-conf.spark.task.maxFailures | 4 | Task 重启次数超过 spark.task.maxFailures,则 taskSet 会失败,即一个 stage 失败。stage 失败导致整个 Job 就失败了,spark 会取消该 stage 对应的 job 包含的所有 task,并返回用户任务执行失败。 | 1.0.0+ | |
ndi.spark.spark-conf.spark.stage.maxConsecutiveAttempts | 4 | 在一个 stage 被中止之前,允许的连续 stage 重试的次数 | 1.0.0+ | |
ndi.spark.spark-conf.spark.yarn.max.executor.failures | 作业重试次数。不支持幂等写入的数据源会在重试时会导致数据重复。 | 1.0.0+ | ||
ndi.spark.spark-conf.spark.yarn.maxAppAttempts | int值 | yarn.resourcemanager.am.max-attempts的值 | 默认为 yarn.resourcemanager.am.max-attempts 的值,如果要设置,需小于它的值 yarn.resourcemanager.am.max-attempts:默认为2 |
1.0.0+ |
ndi.spark.spark-conf.spark.hadoop.hive.exec.max.dynamic.partitions | hive动态分区的最大分区数。默认值为hive-site.xml中的配置。 | 1.8.0+ | ||
ndi.analyzeTableStatistics | boolean值 | FALSE | 是否计算hive的统计信息写入到metastore | 1.8.3+ |
ndi.spark.spark-conf.XXX | XXX为Spark_2.3.2支持的配置项。 | 1.0.0+ | ||
ndi.spark.spark-argument.YYY | YYY为spark-submit脚本支持的argument。ddb的读写任务会使用该参数上传认证文件,如果需要在ddb任务使用该files时,请联系技术支持。 |
- 数据来源端参数
|
- 数据去向端参数
3 批量创建任务
当前仅支持批量创建数据去向指定为Hive数据库的离线同步任务,数据来源可选:MySQL、DB2、HANA、DM、SQLServer、PostgreSQL、DDB(DBI)、DDB(QS)、Oracle。
3.1 配置批量任务
基本信息 | 说明 |
---|---|
数据来源 | 必填项,选择抽取数据源的数据源类型 |
任务名称 | 必填项,默认为xxx2hivendi${sourcetable},xxx为数据来源,hive为数据去向,${source_table}是源表名参数,按照“数据来源2数据去向_ndi源表名”的格式批量生成任务名称 |
数据源 | 必填项,选择数据源名称与数据库名称 |
来源表 | 选择数据源后,来源表栏自动显示数据源内所有表,选择来源表的方式有3种: 1.直接勾选需要抽取的源表,点击【取消所有选中的表】按钮可支持反选; 2.【选择未生成任务的表】; 【表名文件匹配】:上传内容为源表名的text文件,文件中换行符分隔不同表名(最多支持1000行),由系统匹配表名对应的源表。备注:搜索框输入源表名可搜索到表名含输入字段的表 |
生成表设置 | 支持批量配置数据去向表![]() ![]() |
导出方式 | 选项为全量、增量,默认全量 |
数据抽取流量控制 | 必填项,选项为不限速、限速,默认不限速 |
| 基本信息 | 说明|
| —— | —— |
|去向hive库|必填项,下拉选择hive库|
|写入规则|默认为Insert overwrite。
Insert overwrite:覆盖数据,即先删除原表的数据,再执行写入操作
Insert into:以追加的方式向原表尾部追加数据
|写入方式|当数据去向表为非分区表时,系统默认写入到表中(不可修改)
当数据去向表为分区表时,系统默认写入到分区中及写入分区字段,分区值可下拉选择系统内置时间参数|
|写入流量控制|必填项,选项为不限速、限速,默认不限速|
任务配置完成后,点击【生成】按钮后,任务创建成功
3.2 任务生成与预览
可查看任务名称、源表、目标表和生成状态。若生成状态为创建成功,代表任务已创建成功。 特别说明:当生成状态为创建成功时,任务已创建成功,点击新建批量任务的返回按钮无法撤销任务。若需要撤销任务,请在任务列表中删除任务。
文档反馈
以上内容对您是否有帮助?