离线任务开发
离线任务开发模块主要是设计数据计算流程,并实现为多个相互依赖的任务,供调度系统自动执行的主要操作页面。
对象
在数据开发阶段,DTinsightBatch提供了4种对象:任务、脚本、资源和函数。它们之间的项目关系如下图所示:
任务:数据开发的主要对象,包含周期属性和依赖关系,是数据计算的主要载体,支持多种类型的任务和节点适应不同场景,详情请参见任务类型。
脚本:数据开发的辅助对象,不包含周期属性和依赖关系,主要用于实现非周期的临时数据处理,如临时表的增删改等,详情请参见脚本开发。
函数和资源:任务中的代码运行时需要引用的一些文件和计算函数,在任务正式执行前需要上传,详情请参见资源管理和函数管理。
流程
一个任务的开发和使用流程如下图所示:
任务类型
- SQL任务
SQL任务支持直接在Web端编辑和维护SQL代码,并可方便地调试运行和协作开发。DTinsightBatch还支持代码内容的版本管理和上下游依赖自动解析等功能。
DTinsightBatch的SQL任务的代码内容遵循Hive的语法。 - MR任务
MR任务用于在Spark的MapReduce编程接口(Java API)基础上实现的数据处理程序的周期运行。
DTinsightBatch完全按照Spark官方的编程接口,将代码打包成为JAR类型的资源文件上传到DTinsightBatch中,然后配置MR任务。 - 数据同步任务
数据同步任务主要完成数据在不同存储单元之间的迁移。 - PySpark任务
Python任务用于在Spark的Python编程接口(Python API)基础上实现的数据处理程序的周期运行。
DTinsightBatch完全按照Spark官方的编程接口,您可以将代码打包,并以资源文件的形式上传到DTinsightBatch中,然后配置Python任务。 - 虚节点任务
虚拟节点属于控制类型节点,它不产生任何数据的空跑节点,常用于多个任务统筹节点的根节点。 - shell
Shell类型任务支持标准的Shell语法,不支持交互式语法。 - 深度学习
目前支持TensorFlow、MXNet2种深度学习框架,用户可编写基于深度学习框架的代码,由DTinsightBatch提交到对应的框架中运行,并可以与DTinsightBatch中的其他任务配合形成调度依赖关系。 - 原生Python
目前支持Python2、Python3的代码,由DTinsightBatch提交运行,支持在页面中直接运行Python代码或打包上传运行,可以与DTinsightBatch中的其他任务配合形成调度依赖关系。
新建任务
1.新建SQL任务
进入“数据开发”菜单,点击“新建离线任务”按钮,并填写新建任务弹出框中的配置项。
任务名称:需输入英文字母、数字、下划线组成,不超过64个字符。
任务类型:可选择SQL、MR、数据同步、Python、虚节点。
存储位置:此任务在页面左侧的任务存储结构中的位置。
描述:此任务的描述,可输入长度不超过200个的任意字符。
如下图所示:
2.编辑SQL任务代码
SQL任务创建好后,可以在代码编辑器中编写SQL语句(该SQL的语法为Hive SQL)。
3.配置节点任务的调度属性
DTinsightBatch提供了丰富的时间周期和依赖关系支持,并提供了基于时间的系统参数和自定义参数支持。
代码和参数配置调试完毕后,一个周期任务需要发布以后才会触发调度系统按配置周期定时产生运行实例并执行代码。
为使周期任务运行并在每次运行时适应上下文环境,需要配置时间周期和参数。
注:由于节点任务有周期调度属性,因此内容建议以计算类语句为主,表操作语句建议使用可视化建表和脚本开发等其他功能来运行和维护。
如下图所示:
创建表
1.可视化建表
进入项目以后,数据模型>模型设计>建表
2.SQL建表
新建一个类型为SQL的脚本文件,在编辑区填写任意SQL语句(包括新建或修改表的DDL语句)并单击直接运行。
建表语法如下:
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
[CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
[ROW FORMAT row_format]
[STORED AS file_format]
[LOCATION hdfs_path]
l