普通用户入门

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

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

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

当前案例描述: 1)创建hive表t1,并通过上传文件方式,完成该表的数据录入 2)创建hive表t2,再通过线上调度任务,完成t1表到t2表数据的定时写入

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

普通用户入门 - 图1 2021-06-29-17-53-20.png

步骤演示(共12步):

1)在“自助分析”创建第一个hive表

对于新用户,进入“自助分析”时,需要先“新建Query”。Query用于用户来编辑SQL代码,并运行SQL。

普通用户入门 - 图3 2021-06-28-15-41-14.png

普通用户入门 - 图5 2021-06-28-15-41-58.png

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

注意: 当前用户需要需要根据自己所在项目,把代码中的“pos_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之后,点击如下图中的红框的“运行”,完成表的新建。该表用于后续通过文件上传方式将数据导入进去。

普通用户入门 - 图7 2021-06-28-15-44-40.png

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

如下图,按照上一步骤中表的表结构,在csv文件中,构造2条记录:

普通用户入门 - 图9 2021-06-25-17-43-53.png

3)在“数据管理-个人文件”上传csv文件

如下图,为将本地的csv文件,上传到hdfs集群上个人的文件目录下:

普通用户入门 - 图11 2021-06-25-17-44-40.png

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;

普通用户入门 - 图13 2021-06-25-17-45-56.png

如下图,为用户自行查看自己的文件地址:

普通用户入门 - 图15 2021-06-28-16-15-25.png

5)在“数据地图”预览数据

如下图,为在数据地图搜索“ods_employee_info_upload”表:

普通用户入门 - 图17 2021-06-25-17-47-07.png

如下图,为在数据地图表详情中预览数据,显示数据已经导入:

普通用户入门 - 图19 2021-06-25-17-47-35.png

6)在“离线开发”创建第二个hive表

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

如下图,为“离线开发”的“新建离线表”入口:

普通用户入门 - 图21 2021-06-25-17-49-00.png

在“新建离线表”中,在“demo”库下,新建“dim_employee_info”表,表结构如下图:

普通用户入门 - 图23 2021-06-25-17-51-18.png

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

6)在“离线开发”创建多节点任务

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

如下图,为“默认文件夹”右键。

普通用户入门 - 图25 2021-06-29-15-40-00.png

如下图,为创建一个任务名称为“dim_employee_info”的多节点任务:

普通用户入门 - 图27 2021-06-25-17-52-40.png

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

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

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

如下图,为在任务中增加了一个名称为“dml_dim_employee_info”的“SQL”节点。

接着,将鼠标移动到“SQL”节点,会出现连接点,点击后移动到“虚拟节点”,也会出现连接点,松开鼠标,完成节点上下游依赖关系构建。

普通用户入门 - 图29 2021-06-29-15-48-35.png

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

完成“SQL”节点新建后,可双击“SQL”节点,在弹框中,编写hive sql,完成从本案例第一个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”节点内写入实例代码,之后点击右上角“临时保存”。临时保存后,会回到当前任务的开发模式,再次进行任务的保存。如果不进行任务的保存,关闭当前任务或浏览器后,节点的内容还会保持上一次任务保存时的内容。

普通用户入门 - 图31 2021-06-25-18-05-42.png

9)测试节点

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

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

如下图,为点击“设置并运行”后的弹窗,点击“运行”即可。

普通用户入门 - 图33 2021-06-29-16-01-41.png

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

如下图,为节点的运行结果页面:

普通用户入门 - 图35 2021-06-29-16-05-44.png

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

10)任务提交上线

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

如下图,为提交上线入口。任务上线后,状态会从“未上线”变为“未调度”。

普通用户入门 - 图37 2021-06-25-18-06-52.png

11)任务编辑调度

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

首先,切换到任务的“线上模式”,然后点击画布左上角的“编辑调度”。

普通用户入门 - 图39 2021-06-29-16-15-18.png

然后,在画布左上角,选中“全部开启”,让线上任务所有节点的启用。接着,点击“设置并提交调度”。

普通用户入门 - 图41 2021-06-25-18-08-03.png

最后,在弹框中,点击确定。

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

普通用户入门 - 图43 2021-06-25-18-08-50.png

12)在“任务运维中心”查看任务的实例

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

如果是“任务运维中心(旧)”,可前往“实例运维”菜单,周期实例tab,搜索任务名称,点击蓝色的实例ID,进入到实例详情页,查看实例的运行情况。

如下图,为实例运维中搜索任务名称:

普通用户入门 - 图45 2021-06-29-17-58-19.png

如下图,为实例详情页:

普通用户入门 - 图47 2021-06-29-18-00-27.png

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

如下图,为实例运维中搜索任务名称:

普通用户入门 - 图49 2021-06-29-18-18-35.png

如下图,为实例详情页:

普通用户入门 - 图51 2021-06-29-19-40-09.png

总结

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

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