全部产品
云市场

五分钟DMS数仓开发之ADB for PG

更新时间:2020-05-13 18:15:22

分析型数据库PostgreSQL版(原HybridDB for PostgreSQL,下面简称ADB for PG)是阿里云上一款流行的实时数据仓库产品,提供简单、快速、经济高效的 PB 级云端数据仓库解决方案。

本文将重点介绍DMS数仓开发如何对接ADB for PG(也可适用于DMS产品内其他非NoSQL数据库)。

前置条件

ADB for PG

需要一个阿里云的ADB for PG实例(如果没有,请先创建)。同时需要在ADB for PG实例中创建一个数据库以及在该数据库下创建一个schema(需要通过ADB for PG客户端运行创建脚本)。创建脚本如下:

  1. --创建数据库
  2. create DATABASE dms_adbpg_demo_db;
  3. --切换数据库
  4. \c dms_adbpg_demo_db
  5. --创建schema
  6. create SCHEMA dms_adbpg_demo_schema AUTHORIZATION <user_name>;

开通DMS

如果已经开通,可以直接访问DMS控制台

如果没有,请根据下面的步骤进行开通:

访问DMS应用,然后点击“立即购买”。

购买DMS

然后选择好付费模式、管控模式以及使用的实例数以后,点击立即购买(管控模式介绍)。2DMS开通成功以后,可以开始后续的步骤。

操作步骤

DMS对接ADB for PG分为三个步骤,新增数据库,权限申请以及数仓开发。下面的章节将一一介绍。

新增实例

首先需要将ADB for PG加入DMS,其步骤如下:

  1. 进入DMS控制台,点击左上角的新增实例/批量录入,然后点击新增实例n1

  2. 从新增实例界面中选择ADB-PostgreSQL4

  3. 然后在新增实例界面中输入ADB for PG实例的相关信息:

  • 实例地区:ADB for PG实例所在的地区
  • 实例ID:选择购买好的ADB for PG实例的ID
  • SID/数据库:输入事先创建好的数据库dms_adbpg_demo_db
  • 数据库账号/数据库密码:输入ADB for PG实例的账号信息
  • 管控模式:选择安全协同
  • 安全规则:选择adb-pg-default
    5

4.点击测试链接按钮,验证输入的ADB for PG信息是否正确6

5.提交以后,在左侧的搜索栏中通过ADB for PG的实例ID搜索到刚才新增的实例,点击编辑实例,编辑实例显示。7

6.在编辑实例界面的高级信息中,编辑实例名称为dms_adbpg_demo8

权限申请

将ADB for PG加入DMS以后,还需要给当前用户申请权限访问ADB for PG。

权限申请

当前用户需要申请库-权限以及库-OWNER,权限申请步骤如下:

  1. 权限申请在顶部导航栏的权限中的申请权限,然后点击库-权限n2

  2. 权限申请工单中,选择库-权限,在选择要申请权限的库/表/列中输入事先创建好的schema:dms_adbpg_demo_schema。然后点击添加按钮,接着在底部选择权限类型:查询,导出和变更。最后点击提交申请。n3

  3. 权限申请工单详情如下,需要记录工单号,以及数据Owner:11

  4. 权限申请在顶部导航栏的权限中的申请权限,然后点击库-OWNERn4

  5. 权限申请工单中,选择库-OWNER,在选择要申请权限的库/表/列中输入事先创建好的schema:dms_adbpg_demo_schema,然后点击添加按钮,最后点击提交申请n5

  6. 权限申请工单详情如下,需要记录工单号,以及数据Owner:工单

权限审批

数据Owner用户拥有审批权限,权限审批流程如下:

  1. 在该用户的界面下,进入我的工单中的待处理工单15

  2. 通过搜索发起人的名字,找到权限申请中申请的工单,然后点击工单号进入:16

  3. 进入权限申请工单详情,点击同意按钮,通过权限申请17

数仓开发

权限申请的工单被批准以后,接着可以开始数仓开发。

进入数仓开发模式

首先点击顶部导航栏中的数据工厂,然后选择数仓开发,进入DMS数仓开发模式。n6

然后点击左侧导航栏中的开发空间,开始数仓开发n7

创建数仓项目

点击开发空间数据仓库边上的“+”按钮,打开创建数仓项目界面
n8

创建数仓项目界面中,输入项目名称:dms_adbpg_demo_dw,在选择数仓引擎中选择AnalyticDB for PostgreSQL,在选择已有数据库中选择事先创建好的dms_adbpg_demo_schema,然后确认21

创建数仓表

展开刚才创建好的数仓项目dms_adbpg_demo_dw,展开数仓表,选择内部表右边“…”,然后点击新增内部表n9

然后输入建表的SQL语句,然后执行23

本文档需要建立两张表demo1和demo2,建表SQL语句如下(两张表需要分别创建):

  1. --create tables demo1 and demo2
  2. create table demo1
  3. (
  4. id integer,
  5. v integer
  6. );
  7. create table demo2
  8. (
  9. id integer,
  10. v integer
  11. );

然后展开内部表,可以看到创建好的表demo1和demo2,接下来的步骤可以直接使用这两表。n10

创建运行数仓任务流

创建任务流

在数仓项目dms_adbpg_demo_dw下,选择任务流,然后点击任务流右边的“+”,进入新建任务流界面。n11

任务流名称中输入dw_task,然后点击确认按钮,完成新建任务流。26

创建数仓SQL任务

在当前界面中,通过拖拽数仓SQL任务创建SQL任务。然后在每个SQL任务的内容设置中编写SQL。n12

本文档中,配置两个SQL任务,一个用于准备数据,一个做聚合操作。数据准备的SQL任务内容设置如下:

  1. --insert data into demo1
  2. insert into demo1 values(1, 1);
  3. insert into demo1 values(1, 19);
  4. insert into demo1 values(2, 12);
  5. insert into demo1 values(3, 2);
  6. insert into demo1 values(3, 4);
  7. insert into demo1 values(4, 67);

聚合操作的SQL任务内容设置如下:

  1. --run aggregation operation against demo1 and insert results into demo2
  2. insert into demo2
  3. select id, sum(v) from demo1 group by id;

然后在节点名称中,把数据准备SQL的任务名改为Preparation,把聚合操作SQL的任务名改为Aggregation。28

最后通过点击Preparation任务的下边框连接点,引出一个到达Aggregation任务的带箭头直线,关联Preparation任务和Aggregation任务。29

运行数仓任务流

编制好的数仓任务流,可以通过试运行以及调度配置设置周期运行策略来运行。

试运行任务流

点击当前界面左上角的试运行,运行编制好的任务流。30

查看结果

在左导航栏的运维中心中可以看到任务流的运行结果n13

周期运行

点击左导航栏的任务类型回到任务编制界面,在空白处点击鼠标,右侧出现调度配置界面。n14

然后在调配配置界面中开启调度,选择调度类型周期调度,选择调度周期以及输入具体时间33

这样,周期性调度的任务流就完成了,到了具体时间时,该任务流就会自动触发,运行结果可以在运维中心中查看。

总结

本文档简要介绍了DMS数仓开发如何对接ADB for PG的步骤,包括开通DMS,添加ADB for PG实例,以及创建、编排、运行、管理、调度数仓任务流。使用DMS数仓开发在ADB for PG上做周期性数据分析可获得如下好处:

  • 数仓任务流只需一次定义,即可周期性地自动被调度执行,大大减少人工操作的成本
  • 周期执行数仓任务并提前产生出分析结果,业务应用可直接查询结果获得快速响应
  • 可灵活选择分析数仓任务的执行时间,避开ADB for PG负载高峰期,合理利用ADB for PG上的计算资源
  • 数仓任务流执行时产生的中间结果可被复用,用于其他的数据分析任务,从而最大化ADB for PG的资源利用

DMS数仓开发提供更多的数据管理和数仓开发功能,更多的详细信息和功能,请参考:DMS文档