本文将从一个很小的案例来说明如何在本平台上完成一个离线开发任务的开发,来帮助普通用户快速上手。

这里,假设当前用户已经由项目负责人添加到一个项目中,并授予相关的功能权限、数据权限、队列权限。

  • 功能权限表示当前用户可以访问哪些页面的访问或部分功能的操作权限。
  • 数据权限表示当前用户可以在哪些Hive库建表、读写哪些表等。
  • 队列权限表示操作Hive库表时,可使用哪些队列的CPU和内存在完成代码运算。

当前案例描述:

  1. 创建Hive表t1,并通过上传文件方式,完成该表的数据录入;
  2. 创建Hive表t2,再通过线上调度任务,完成t1表到t2表数据的定时写入。

涉及产品:

  • 自助分析
  • 离线开发
  • 数据地图
  • 任务运维中心 上述产品,都可在页面左上角导航入口,点击的侧边弹框中查看(因不同客户购买的产品有差异,具体以购买的为准)。

步骤演示(共12步):

1)在【自助分析】创建第一个Hive表

对于新用户,进入自助分析时,需要先新建Query。Query用于用户来编辑SQL代码,并运行SQL。
普通用户入门 - 图1

输入Query名称,选择保存位置
2021-06-28-15-41-58.png

完成Query创建后,在Query中写入建表语句。本案例的代码如下,表示在poc_ods库,创建一个表ods_employee_info_upload,textfile格式,用逗号分隔。

注意: 当前用户需要需要根据自己所在项目,把代码中的poc_ods替换为自己有建表权限的库。此外,表名有可能已经存在,因此可在表名后增加一些字母或数字等。
CREATE TABLE poc_ods.ods_employee_info_upload(
  `employee_id` string comment '员工工号',
  `employee_name` string comment '员工名称')
COMMENT '员工信息表'
row format delimited fields terminated by ',' stored as textfile

完成SQL之后,点击如下图中的红框的运行,完成表的新建。该表用于后续通过文件上传方式将数据导入进去。
39.png

2)用户本地构造一个csv格式的文件

如下图,按照上一步骤中表的表结构,在csv文件中,构造2条记录:
2021-06-25-17-43-53.png

3)在【数据管理】-【个人文件】上传csv文件

如下图,为将本地的csv文件,上传到HDFS集群上个人的文件目录下:
普通用户入门 - 图5

4)在【自助分析】将csv文件移动到第一个Hive表的目录下

自助分析的Query下,在Query中写入将HDFS文件移动到Hive表的目录下的代码。本案例的代码如下,其中的'/user/bdms_xuhua01/1.csv',表示上一步中上传的csv文件的路径。

注意: 当前用户实际在操作中,可在【数据管理】-【个人文件】中查看自己的路径。
load data inpath '/user/bdms_xuhua01/1.csv' 
overwrite into table poc_ods.ods_employee_info_upload;

普通用户入门 - 图6

下图为用户自行查看自己的文件地址:
普通用户入门 - 图7

5)在【数据地图】预览数据

下图为在数据地图搜索ods_employee_info_upload表:
普通用户入门 - 图8

下图为在数据地图表详情中预览数据,显示数据已经导入:
![2021-06-25-17-47-35.png]普通用户入门 - 图9

6)在【离线开发】创建第二个Hive表

在前面几步中,已经完成第一个Hive表的创建和数据导入。从这一步开始,会再创建第二个Hive表,并通过线上调度任务,定时从第一个Hive表导入到第二个Hive表。

下图为离线开发新建离线表入口:
普通用户入门 - 图10

新建离线表中,选择数据库demo,新建dim_employee_info表,表结构如下图:
2021-06-25-17-51-18.png

注意: 当前用户在操作时,需要选择自己有权限的库。此外,表名有可能已经存在,可能执行新建时会失败,因此可在表名后增加一些字母或数字等。

6)在【离线开发】创建多节点任务

在离线开发页面,左侧为任务列表,当前用户可在默认文件夹下新建任务,在弹框中创建自己的第一个任务。任务的命名,建议和上一步创建的第二个Hive表同名。

下图为默认文件夹右键选择新建任务
普通用户入门 - 图12

下图为创建一个任务名称为dim_employee_info**的多节点任务:
2021-06-25-17-52-40.png

7)在多节点任务中拖入一个SQL节点

完成任务创建后,会进入到任务的开发模式的画布中,默认仅包含一个和任务同名的虚拟节点

在右侧节点列表中,将SQL节点拖入中间画布区域,并重命名节点。命名建议按照dml_开头,并追加上多节点任务的名称。

下图为在任务中增加了一个名称为dml_dim_employee_infoSQL节点

接着,将鼠标移动到SQL节点,会出现连接点,点击后移动到虚拟节点,也会出现连接点,松开鼠标,完成节点上下游依赖关系构建。
2021-06-29-15-48-35.png

8)在SQL节点内写入加工SQL

完成SQL节点新建后,可双击SQL节点,在弹框中编写HiveSQL,完成从本案例第一个Hive表到第二个Hive表的数据加工逻辑。

示例代码如下,当前用户请根据实际自己创建的两个表,做相应修改。

其中的'${azkaban.flow.1.days.ago}'表示azkaban的参数,表示昨天,格式如:2021-06-01。该例子表示,将每天加工的数据,写入到昨天的日期分区下,完成数据归档。

INSERT OVERWRITE TABLE demo.dim_employee_info
PARTITION (ds='${azkaban.flow.1.days.ago}')
select
  employee_id,
  employee_name
from
  poc_ods.ods_employee_info_upload;

如下图,为SQL节点内写入实例代码,之后点击右上角临时保存。临时保存后,会回到当前任务的开发模式,再次进行任务的保存。如果不进行任务的保存,关闭当前任务或浏览器后,节点的内容还会保持上一次任务保存时的内容。
2021-06-25-18-05-42.png

9)测试节点

完成数据开发后,可在开发模式运行SQL节点,以验证SQL逻辑的正确性。

选中需要运行的节点,再点击设置并运行,即可开始节点运行。

如下图,为点击设置并运行后的弹窗,点击运行即可。
2021-06-29-16-01-41.png

运行结束会有浮框提示运行结果,可点击开发模式画布顶部的运行结果,查看运行结果。

如下图,为节点的运行结果页面:
2021-06-29-16-05-44.png

运行结束,则可以在自助分析执行查询语句,查看结果表的数据。也可以在数据地图中找到产出表,通过预览查看数据。

10)任务提交上线

完成测试后,则可以将任务提交上线。

下图为提交上线入口。任务上线后,状态会从未上线变为未调度
普通用户入门 - 图18

11)任务编辑调度

任务上线后,还不会定时调度,需要对任务配置调度,才能完成任务定时周期性地执行。请按照下面的指引完成配置。

首先,切换到任务的线上模式,然后点击画布左上角的编辑调度
2021-06-29-16-15-18.png

然后,在画布左上角,选中全部开启,让线上任务所有节点的启用。接着,点击设置并提交调度
普通用户入门 - 图20

补充说明:
关于弹框中调度周期首次执行时间,表示的是,从首次执行时间设置的时间开始,执行第一次线上调度,之后按照调度周期设置的时间周期,进行周期性调度。如下图的案例表示,首次执行将在2021-06-25 18:09,第二次将在2021-06-26 18:09
2021-06-25-18-08-50.png

12)在【任务运维中心】查看任务的实例

完成上一步骤后,可前往任务运维中心(新)查看任务的实例(需在设置的首次执行时间之后才能看到)。

任务运维中心(新)页面点击周期实例运维菜单,搜索任务名称,点击蓝色的实例ID,进入到实例详情页,查看实例的运行情况。

下图为实例运维中搜索任务名称:
普通用户入门 - 图22

下图为实例详情页:
普通用户入门 - 图23

总结

本节从一个极简的例子来说明了如何完成自己的第一个数据开发任务,过程中涉及到了自助分析、离线开发、任务运维、数据地图等子产品的使用。对于这些产品,还有大量的内容和细节没有讲到。对于整个大数据平台,也有诸多别的产品没有涉及。

更多的内容请参看手册中的其它章节。