DataWorks作为阿里云上广受欢迎的大数据开发调度服务,最近加入了对于Data Lake Analytics的支持,意味着所有Data Lake Analytics的客户可以获得任务开发、任务依赖关系管理、任务调度、任务运维等等全方位强大的能力,今天就给大家介绍一下如何使用DataWorks来调度DLA的脚本任务。

开通DLA

在开始之前我们要有一个 DLA 的账号,目前 DLA 的新用户都有50T的免费流量,可以放心试用。开通DLA成功后,你会获得一个用户名和密码, 然后在控制台登录就可以使用:

或者如果你是极客,更偏爱命令行,你也可以使用普通的 MySQL 客户端就可以连接 DLA 了:

mysql -hservice.cn-region.datalakeanalytics.aliyuncs.com
-P10000
-u<your-user-name>
-p<your-password>

在这篇文章里面,我会使用 MySQL 命令行给大家演示 DLA 的功能。

申请试用 DataWorks + DLA

开通DLA服务之后,您还需要开通DataWorks的服务,目前DataWorks还在公测阶段,放心使用。

然后您可以在您对应的DLA服务群里面找我们任何一位同学开通一下DLA + DataWorks的试用资格(目前这个功能还处于邀请试用的阶段,没有完全放开)。

如果目前还没有专门DLA服务群的客户,可以通过工单联系我们。

DLA数据、库、表准备

为了演示如何在DataWorks上调度DLA的任务,我们后面会用到一些测试数据,这里我们用著名的TPCH的测试数据集, 数据保存在OSS上面。

通过MySQL命令行我们创建对应的库、表:

CREATE SCHEMA dataworks_demo with DBPROPERTIES(
CATALOG = 'oss',
LOCATION = 'oss://test-bucket/datasets/'
); use dataworks_demo;
CREATE EXTERNAL TABLE IF NOT EXISTS orders (
O_ORDERKEY INT,
O_CUSTKEY INT,
O_ORDERSTATUS STRING,
O_TOTALPRICE DOUBLE,
O_ORDERDATE DATE,
O_ORDERPRIORITY STRING,
O_CLERK STRING,
O_SHIPPRIORITY INT,
O_COMMENT STRING
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
STORED AS TEXTFILE
LOCATION 'oss://test-bucket/datasets/tpch/1x/text_string/orders_text/'; -- 结果表 finished_orders
CREATE EXTERNAL TABLE IF NOT EXISTS finished_orders (
O_ORDERKEY INT,
O_TOTALPRICE DOUBLE
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
STORED AS TEXTFILE
LOCATION 'oss://test-bucket/datasets/dataworks_demo/finished_orders/'; -- 结果表 high_value_finished_orders
CREATE EXTERNAL TABLE IF NOT EXISTS high_value_finished_orders (
O_ORDERKEY INT,
O_TOTALPRICE DOUBLE
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
STORED AS TEXTFILE
LOCATION 'oss://test-bucket/datasets/dataworks_demo/high_value_finished_orders/';

任务调度其中一个重要的功能是任务之间的依赖,为了演示这个功能,我们这里会在DataWorks里面创建两个DLA任务, 我们的表、任务之间的关系如下图:

  • 任务一: 我们从orders表清洗出已经完成的订单: o_orderstatus = 'F' , 并写入 finished_orders 表
  • 任务二: 再从 finished_orders 表里面找出总价大于10000的订单: o_totalprice > 10000, 并写入 high_value_finished_orders 表

关于如何使用DLA分析OSS数据更详细的信息可以参考:

在 DataWorks 上创建 DLA 任务

在开通了 DataWorks + DLA 的功能后,我们可以在DataWorks的数据开发IDE里面创建DLA的任务了,如下图:

我们把第一个任务命名为: finished_orders , 点击确定会进入一个SQL编辑的页面,要写DLA SQL一定要告诉DataWorks我们写的SQL运行在哪个DLA的服务上,这个在DataWorks里面被包装成了"数据源"的概念:

DataWorks的规范是任务的名称跟任务的输出表的名称保持一致。

刚进来的时候没有数据源,点击新建数据源:

填写必要的信息点击确定完成。

DataWorks为了安全的考虑,对可以连接的服务进行了安全控制,因此我们需要把我们要连的DLA的地址+端口加到白名单里面去,这个配置是在DataWorks工作空间的配置里面:

具体配置如下(需要换成你实际的IP+端口):

这里需要注意一下,工作空间配置只有工作空间管理员才有权限。

做了这么多之后,我们终于可以在编辑页面看到DLA的数据源了,下面我们在 finished_orders 的任务里面填入如下SQL, 并点击执行:

use dataworks_demo;
insert into finished_orders
select O_ORDERKEY, O_TOTALPRICE
from orders
where O_ORDERSTATUS = 'F';

如下图:

重复上述步骤,我们创建第二个任务: high_value_finished_orders:

use dataworks_demo;
insert into high_value_finished_orders
select * from finished_orders
where O_TOTALPRICE > 10000;

配置任务依赖

单个任务单次运行没什么太大意思,任务调度的核心在于多个任务按照指定的依赖关系在指定的时间进行运行,下面我们让: task_finished_orders 在每天半夜2点开始运行:

high_value_finished_orders 在 finished_orders 成功运行之后再运行:

任务发布

任务配置好之后,就可以进行任务的发布、运维了。任务要发布首先必须提交:

提交之后,我们在待发布列表可以看到所有待发布的任务:

选择我们刚刚提交的两个任务,我们就可以发布了:

在发布列表页面可以查看我们刚刚的发布是否成功:

发布成功之后,我们就可以进入任务运维页面查看我们的任务,进行各种运维操作了。

总结

在这篇文章里面,我带大家一起体验了一下如何用 DataWorks 来开发、调度DLA的任务,有了这个能力之后大家可以更方便地进行每天任务的开发、运维了。

原文链接
更多技术干货 请关注阿里云云栖社区微信号 :yunqiinsight

Data Lake Analytics: 使用DataWorks来调度DLA任务的更多相关文章

  1. 如何使用Data Lake Analytics创建分区表

    前言 Data Lake Analytics(后文简称DLA)提供了无服务化的大数据分析服务,帮助用户通过标准的SQL语句直接对存储在OSS.TableStore上的数据进行查询分析. 在关系型数据库 ...

  2. Data Lake Analytics的Geospatial分析函数

    0. 简介 为满足部分客户在云上做Geometry数据的分析需求,阿里云Data Lake Analytics(以下简称:DLA)支持多种格式的地理空间数据处理函数,符合Open Geospatial ...

  3. Data Lake Analytics + OSS数据文件格式处理大全

    0. 前言 Data Lake Analytics是Serverless化的云上交互式查询分析服务.用户可以使用标准的SQL语句,对存储在OSS.TableStore上的数据无需移动,直接进行查询分析 ...

  4. Data Lake Analytics: 读/写PolarDB的数据

    Data Lake Analytics 作为云上数据处理的枢纽,最近加入了对于PolarDB的支持, PolarDB 是阿里云自研的下一代关系型分布式云原生数据库,100%兼容MySQL,存储容量最高 ...

  5. Data Lake Analytics,大数据的ETL神器!

    0. Data Lake Analytics(简称DLA)介绍 数据湖(Data Lake)是时下大数据行业热门的概念:https://en.wikipedia.org/wiki/Data_lake. ...

  6. 使用Data Lake Analytics + OSS分析CSV格式的TPC-H数据集

    0. Data Lake Analytics(DLA)简介 关于Data Lake的概念,更多阅读可以参考:https://en.wikipedia.org/wiki/Data_lake 以及AWS和 ...

  7. Data Lake Analytics账号和权限体系详细介绍

    一.Data Lake Analytics介绍 数据湖(Data Lake)是时下大数据行业热门的概念:https://en.wikipedia.org/wiki/Data_lake.基于数据湖做分析 ...

  8. 如何在Data Lake Analytics中使用临时表

    前言 Data Lake Analytics (后文简称DLA)是阿里云重磅推出的一款用于大数据分析的产品,可以对存储在OSS,OTS上的数据进行查询分析.相较于传统的数据分析产品,用户无需将数据重新 ...

  9. 使用Data Lake Analytics读/写RDS数据

    Data Lake Analytics 作为云上数据处理的枢纽,最近加入了对于RDS(目前支持 MySQL , SQLServer ,Postgres 引擎)的支持, 这篇教程带你玩转 DLA 的 R ...

随机推荐

  1. C++写矩阵的转置

    (2019年2月19日注:这篇文章原先发在自己github那边的博客,时间是2017年2月5日) 对于任意非n阶矩阵的转置,用c++应该怎么写代码,思考了一下,发现并没有那么简单,上网找到了一个比较好 ...

  2. Mybatis-构建 SqlSessionFactory

    从 XML 中构建 SqlSessionFactory 每 一 个 MyBatis 的 应 用 程 序 都 以 一 个 SqlSessionFactory 对 象 的 实 例 为 核 心 . SqlS ...

  3. gulpfile.js demo

    var config = require("./build.config") //获取build.config.js文件里的内容 var gulp = require(" ...

  4. 04.Hibernate常用的接口和类---SessionFactory类和作用

    是一个生成Session的工厂类 特点: 1.由Configuration通过加载配置文件创建该对象. SessionFactory factory = config.buildSessionFact ...

  5. iotop实时监控磁盘io

    介绍 Linux下的IO统计工具如iostat, nmon等大多数是只能统计到per设备的读写情况, 如果你想知道每个进程是如何使用IO的就比较麻烦. iotop 是一个用来监视磁盘 I/O 使用状况 ...

  6. 第五章 Odoo 12开发之导入、导出以及模块数据

    大多数Odoo 模块的定义,如用户界面和安全规则,实际是存储在对应数据表中的数据记录.模块中的 XML 和 CSV 文件不是 Odoo 应用运行时使用,而是载入数据表的手段.正是因为这个原因,Odoo ...

  7. java udp协议DatagramSocket类使用

    package com.temp; import org.junit.Test; import java.io.*; import java.net.DatagramPacket; import ja ...

  8. 观察者模式(Observer、Subject、ConcreteSubject、ConcreteObserver)(监护、订阅)

    建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应的作出反应. 在此发生改变的对象称之为观察目标(被观察者),而被通知的对象称为观察者,一个观察者目标可以对应多个观 ...

  9. C++ base64 opencv Mat 转换

    static std::string base64Decode(const char* Data, int DataByte) { //解码表 const char DecodeTable[] = { ...

  10. 技术人自己的KPI

    为什么需要技术KPI 在业务技术团队,有一个不好的趋势,就是团队越来越业务,越来越没有技术味道.每个人都在谈业务,技术大会上在谈业务,周会上在聊业务,周报里写的是业务项目......唯独少被谈及的是技 ...