更新时间:2024-01-19 GMT+08:00

DLI SQL

功能

通过DLI SQL节点传递SQL语句到DLI中执行,实现多数据源分析探索。

原理

该节点方便用户在数据开发模块的周期与实时调度中执行DLI相关语句,可以使用参数变量为用户的数仓进行增量导入,分区处理等动作。

参数

用户可参考表1表2表3配置DLI SQL节点的参数。

表1 属性参数

参数

是否必选

说明

SQL或脚本

可以选择SQL语句或SQL脚本。

  • SQL语句

    单击“SQL语句”参数下的文本框,在“SQL语句”页面输入需要执行的SQL语句。

  • SQL脚本

    “SQL脚本”参数后选择需要执行的脚本。如果脚本未创建,请参考新建脚本开发SQL脚本先创建和开发脚本。

    说明:

    若选择SQL语句方式,数据开发模块将无法解析您输入SQL语句中携带的参数。

数据库名称

默认选择SQL脚本中设置的数据库,支持修改。

DLI环境变量

  • 环境变量配置项需要以"dli.sql."或"spark.sql."开头。
  • 环境变量的key为dli.sql.shuffle.partitions或dli.sql.autoBroadcastJoinThreshold时,不能包含><符号。
  • 如果作业和脚本中同时配置了同名的参数,作业中配置的值会覆盖脚本中的值。
    说明:

    用户定义适用于此作业的配置参数。目前支持的配置项:

    • dli.sql.autoBroadcastJoinThreshold(自动使用BroadcastJoin的数据量阈值)
    • dli.sql.shuffle.partitions(指定Shuffle过程中Partition的个数)
    • dli.sql.cbo.enabled(是否打开CBO优化策略)
    • dli.sql.cbo.joinReorder.enabled(开启CBO优化时,是否允许重新调整join的顺序)
    • dli.sql.multiLevelDir.enabled(OBS表的指定目录或OBS表分区表的分区目录下有子目录时,是否查询子目录的内容;默认不查询)
    • dli.sql.dynamicPartitionOverwrite.enabled(在动态分区模式时,只会重写查询中的数据涉及的分区,未涉及的分区不删除)

队列名称

默认选择SQL脚本中设置的DLI队列,支持修改。

如需新建资源队列,请参考以下方法:
  • 单击,进入DLI“队列管理”页面新建资源队列。
  • 前往DLI管理控制台进行新建。
说明:
  • 当子用户在创建作业时,子用户只能选择已经被分配的队列。
  • DLI的“default”队列为共享队列,仅用于用户体验,用户间可能会出现抢占资源的情况,不能保证每次都可以得到资源执行相关操作。当遇到执行时间较长或无法执行的情况,建议您在业务低峰期再次重试,或选择自建队列运行业务。

脚本参数

关联的SQL脚本如果使用了参数,此处显示参数名称,请在参数名称后的输入框配置参数值。参数值支持使用EL表达式

若关联的SQL脚本,脚本参数发生变化,可单击刷新按钮同步。

节点名称

默认显示为SQL脚本的名称,支持修改。规则如下:

节点名称,可以包含中文、英文字母、数字、“_”“-”“/”“<”“>”等各类特殊字符,长度为1~128个字符。

默认情况下,节点名称会与选择的脚本名称保持同步。若不需要节点名称和脚本名称同步,请参考禁用作业节点名称同步变化禁用该功能。

是否记录脏数据

单击选择节点是否记录脏数据。

  • 是:记录脏数据
  • 否:不记录脏数据
    说明:

    脏数据即Bad Records,由于数据类型不兼容、数据为空或者格式不兼容而导致无法加载到DLI中的记录归类为Bad Records。

    选择记录脏数据后,Bad Records不会导入到目标表,而是导入到OBS脏数据路径中。

    • 如果未配置工作空间中的DLI脏数据OBS路径,则默认会把DLI SQL执行过程中的脏数据写到dlf-log-{projectId}桶中。
    • 若要自定义DLI脏数据日志路径,请前往空间管理进行编辑操作。详细操作请参见配置OBS桶
表2 高级参数

参数

是否必选

说明

节点状态轮询时间(秒)

设置轮询时间(1~60秒),每隔x秒查询一次节点是否执行完成。

节点执行的最长时间

设置节点执行的超时时间,如果节点配置了重试,在超时时间内未执行完成,该节点将会再次重试。

失败重试

节点执行失败后,是否重新执行节点

  • 是:重新执行节点,请配置以下参数。
    • 超时重试
    • 最大重试次数
    • 重试间隔时间(秒)
  • 否:默认值,不重新执行节点
    说明:

    如果作业节点配置了重试,并且配置了超时时间,该节点执行超时后,系统支持再重试。

    当节点运行超时导致的失败不会重试时,您可前往“默认项设置”修改此策略。

    当“失败重试”配置为“是”才显示“超时重试”。

当前节点失败后,后续节点处理策略

节点执行失败后的操作:

  • 终止当前作业执行计划:停止当前作业运行,当前作业实例状态显示为“失败”。
  • 继续执行下一节点:忽略当前节点失败,当前作业实例状态显示为“忽略失败”。
  • 挂起当前作业执行计划:暂停当前作业运行,当前作业实例状态显示为“等待运行”。
  • 终止后续节点执行计划:停止后续节点的运行,当前作业实例状态显示为“失败”。

是否空跑

如果勾选了空跑,该节点不会实际执行,将直接返回成功。

表3 血缘关系

参数

说明

输入

新建

单击“新建”,在“类型”的下拉选项中选择要新建的类型。可以选择DWS,OBS,CSS,HIVE,CUSTOM和DLI类型。

确定

单击“确认”,保存节点输入功能的参数配置。

取消

单击“取消”,取消节点输入功能的参数配置。

编辑

单击,修改节点输入功能的参数配置,修改完成后,请保存。

删除

单击,删除节点输入功能的参数配置。

查看表详情

单击,查看节点输入血缘关系创建数据表的详细信息。

输出

新建

单击“新建”,在“类型”的下拉选项中选择要新建的类型。可以选择DWS,OBS,CSS,HIVE,CUSTOM和DLI类型。

确定

单击“确认”,保存节点输出功能的参数配置。

取消

单击“取消”,取消节点输出功能的参数配置。

编辑

单击,修改节点输出功能的参数配置,修改完成后,请保存。

删除

单击,删除节点输出功能的参数配置。

查看表详情

单击,查看节点输出血缘关系创建数据表的详细信息。