离线分析组件

如离线分析相关的任务涉及对STDB进行查询等操作,需在[配置管理/参数管理]中,将“离线分析是否加载时空函数”配置为true

 

离线分析组件是业务流程画布中用来关联离线作业的组件,包含MRSparkJarHiveSQLJavaSqoopShellSparkSQLPySparkRDSSQL类型。

表-1 离线分析组件参数说明

离线分析

说明

MRSparkJarJavaShellPySpark

可以选择任务管理下对应类型的类型的任务作为模板,加载后适当修改参数,并配置执行队列,即可为完成配置(除执行队列外的其他参数是非必要的)

执行队列:选择本组织可以使用的队列

HiveSQL

可以配置作业名称、执行队列、SQLJDBC URL,即可完成(其他参数是非必要的)。该组件配置参数说明如下:

  • 节点名称:配置作业节点的名称

  • 作业名称:必填,配置作业的名称

  • 描述:配置作业的描述信息

  • 执行队列:必选,选择本组织可以使用的队列

  • prepare:对应Oozie中的prepare标签元素,用于创建或者删除指定的HDFS目录

  • configuration:指定Mapper类和Reducer类等MapReduce客户端配置参数,鼠标悬于后方的图标上,可以查看该参数的说明。支持配置多项,点击后方的图标可以新增一项,点击图标可以删除一项

  • sql:必填,单击<编辑SQL>按钮,在弹出窗口中输入SQL语句,输入完成后单击<确定>按钮

  • jdbcUrl:必填,配置连接HiveJDBC URL

  • passWord:配置连接Hive所需的密码

  • param:指定执行所需的环境变量。支持配置多条,点击后方的图标可以新增一条,点击图标可以删除一条

  • 出错重跑:配置是否在运行失败的情况下重新运行

  • 出错重跑次数:配置运行失败时的重新运行次数,开启出错重跑后需配置该参数

  • 出错重跑间隔:配置失败后重新运行的时间间隔,开启出错重跑后需配置该参数

Sqoop

  • 节点名称:配置作业节点的名称

  • 作业名称:必填,配置作业的名称

  • 描述:配置作业的描述信息

  • 执行队列:必选,选择本组织可以使用的队列

  • prepare:对应Oozie中的prepare标签元素,用于创建或者删除指定的HDFS目录

  • configuration:指定Mapper类和Reducer类等MapReduce客户端配置参数。支持配置多项,点击后方的图标可以新增一项,点击图标可以删除一项

  • 功能:选择Sqoop组件的功能,即从HDFSRDB转换,从RDBHDFS转换,以及手动配置命令等

  • RDB:在弹出窗口中配置RDB类型数据源中的表名

  • HDFS:在弹出窗口中选择HDFS目录

  • COMMAND:手动配置命令

  • 出错重跑:配置是否在运行失败的情况下重新运行

  • 出错重跑次数:配置运行失败时的重新运行次数,开启出错重跑后需配置该参数

  • 出错重跑间隔:配置失败后重新运行的时间间隔,开启出错重跑后需配置该参数

SparkSQL

是用来关联需要到Hadoop集群上以SparkSQL方式运行的Spark任务。其参数说明如下:

  • 节点名称:配置作业节点的名称

  • 描述:配置作业的描述信息

  • 执行队列:必选,指定SparkSQL作业在集群中运行使用的队列

  • sql:单击<编辑SQL>按钮,可以在弹出窗口中编辑SQL语句。编辑SQL语句的操作介绍请参见编辑SQL

  • executor核数:常用的SparkSQL作业节点的规格参数。配置Spark单个executor执行需要的核心个数

  • 内存(MB):常用的SparkSQL作业节点的规格参数。配置Spark单个executor执行需要的内存大小

  • driver核数:常用的SparkSQL作业节点的规格参数。配置Spark driver程序执行需要的核心个数

  • 内存(MB):常用的SparkSQL作业节点的规格参数。配置Spark driver程序执行需要的内存大小

  • 实例数:常用的SparkSQL作业节点的规格参数。配置Spark任务执行需要的executor的实例个数

  • 堆外内存:常用的SparkSQL作业节点的规格参数。配置Spark任务的executor程序堆外内存大小

  • driver堆外内存:常用的SparkSQL作业节点的规格参数。配置Spark dirver程序执行需要的堆外内存大小

  • sparkOpts:配置SparkSQL作业节点的规格参数。输入框中存在缺省的配置值,可以根据实际需求调整。如运行SparkSQL还需要其他Spark相关的配置项均可在此处点击添加。需要删除则点击。缺省值的介绍如下:

  • spark.sql.autoBroadcastJoinThreshold:当执行join时,被广播到worker节点上表最大字节。默认10MB,配置自动广播的数据量大小。如果设置成-1,则禁用该特性

  • spark.dynamicAllocation.maxExecutors:动态分配最大executor个数,默认设置30个。可根据实际需求调整

  • 参数配置:配置作业的时间范围参数

  • configuration:指定Mapper类和Reducer类等MapReduce客户端配置参数。支持配置多项,点击后方的图标可以新增一项,点击图标可以删除一项

  • 出错重跑:配置是否在运行失败的情况下重新运行

  • 出错重跑次数:配置运行失败时的重新运行次数,开启出错重跑后需配置该参数

  • 出错重跑间隔:配置失败后重新运行的时间间隔,开启出错重跑后需配置该参数

RDSSQL

下发分析型SQL语句到MPP(GP,VERTICA)数据库,其参数说明如下:

  • 节点名称:配置作业节点的名称

  • 描述:配置作业的描述信息

  • 执行队列:必选,选择本组织可以使用的YARN队列

  • sql:单击<编辑SQL>按钮,可以在弹出窗口中编辑SQL语句。编辑SQL语句的操作介绍请参见编辑SQL

  • 出错重跑:配置是否在运行失败的情况下重新运行

  • 出错重跑次数:配置运行失败时的重新运行次数,开启出错重跑后需配置该参数

  • 出错重跑间隔:配置失败后重新运行的时间间隔,开启出错重跑后需配置该参数

子流程

业务流程可以嵌套引用业务流程作为其子流程,其参数说明如下:

  • 节点名称:配置作业节点的名称

  • 子流程:点击输入框后,在弹出的“业务流程列表”窗口中选择业务流程。窗口中的列表上方支持筛选业务流程;列表中的“原因”列展示了业务流程无法作为子流程的原因

  • Configuration:子流程的通用配置变量

 

跨组织节点与子流程配合使用时的限制如下:

  • 为跨组织(接收)节点配置监听信息时,仅能选择目标业务流程画布内出现的发布节点,不能级联选择子流程中的发布节点。

  • 选择包含跨组织(接收)节点的业务流程作为子流程时:

  • 启动父业务流程,则子流程中的跨组织(接收)节点不生效

  • 直接启动包含跨组织(接收)节点的业务流程,该跨组织(接收)节点正常工作

跨组织节点与子流程配合使用时,可能产生业务成环而导致的无限循环执行,例如:

创建业务流程A,其中增加跨组织(发布)节点N1。创建业务流程B,选择A作为子流程,增加跨组织(接收)节点N2,节点N2监听业务流程A中的节点N1。启动业务流程B,则业务流程B运行过程中,提交业务流程A,流程A运行到发布节点,发布消息。业务流程B接收到发布的消息,如果业务流程B运行结束,则系统会再次启动业务流程B,从而导致流程运行进入无限循环。

为避免上述问题,请在设计业务逻辑时,尽量避免业务流程成环从而导致预期外的无限循环执行。

 

对于SparkSQL组件,其计算结果可能会出现精度有误情况,如-2所示。

表-2 运行结果中精度有误类型列表

数据源表类型

精度有误类型

PostgreSQL

timebitreal

Greenplum

decimalnumericrealtimebit

达梦

timetimestampbitbinary

MySQL

timeyearbitbooleantinyint

Oracle

numberfloat

Vertica

timetimetzgeographygeometry

 

MySQLtinyint(1)类型的字段在注册离线表后,非01的值将被转换为true,造成数据失真。