使用DataWorks來調度AnalyticDB任務

DataWorks做爲阿里雲上廣受歡迎的大數據開發調度服務,最近加入了對於AnalyticDB的支持,意味着全部的AnalyticDB客戶能夠得到任務開發、任務依賴關係管理、任務調度、任務運維等等全方位強大的能力,如今就給你們仔細介紹下如何使用DataWorks來調度AnalyticDB任務。數據庫

開通AnalyticDB

進入阿里雲分析型數據庫 MySQL版產品詳情頁,點擊免費試用。最近上線了15天免費試用活動,須要首先填寫申請表單,審批經過後便可享受免費試用AnalyticDB活動。進入購買頁面,選擇好地域、可用區、ECU類型、ECU數量和數據庫名,點擊當即購買,稍等幾分鐘時間就能夠開通AnalyticDB實例。
安全

開通DataWorks

開通完AnalyticDB服務後,緊接着要開通DataWorks。選擇好region後點擊下一步。

填寫工做空間名稱,注意模式要改爲「標準模式」,建立工做空間。
運維

AnalyticDB中表和數據準備

爲了演示如何在DataWorks上調度AnalyticDB的任務,咱們後面會用到一些測試數據,這裏咱們用著名的TPCH的測試數據集中的ORDERS表, 數據已經提早存入表中。
前面開通成功後,咱們就能夠在AnalyticDB中找到數據庫,登錄數據庫後,建立ORDERS表,以下:ide

CREATE TABLE ads_dla_test.orders (
  o_orderkey int COMMENT '',
  o_custkey int COMMENT '',
  o_orderstatus varchar COMMENT '',
  o_totalprice double COMMENT '',
  o_orderdate date COMMENT '',
  o_orderpriority varchar COMMENT '',
  o_clerk varchar COMMENT '',
  o_shippriority int COMMENT '',
  o_comment varchar COMMENT '',
  PRIMARY KEY (O_ORDERKEY,O_CUSTKEY)
)
PARTITION BY HASH KEY (O_ORDERKEY) PARTITION NUM 32
TABLEGROUP tpch_50x_group
OPTIONS (UPDATETYPE='realtime')
COMMENT ''


CREATE TABLE ads_dla_test.finished_orders (
  o_orderkey int COMMENT '',
  o_totalprice double COMMENT '',
  PRIMARY KEY (O_ORDERKEY)
)
PARTITION BY HASH KEY (O_ORDERKEY) PARTITION NUM 32
TABLEGROUP tpch_50x_group
OPTIONS (UPDATETYPE='realtime')
COMMENT ''

CREATE TABLE ads_dla_test.high_value_finished_orders (
  o_orderkey int COMMENT '',
  o_totalprice double COMMENT '',
  PRIMARY KEY (O_ORDERKEY)
)
PARTITION BY HASH KEY (O_ORDERKEY) PARTITION NUM 32
TABLEGROUP tpch_50x_group
OPTIONS (UPDATETYPE='realtime')
COMMENT ''

任務調度其中一個重要的功能是任務之間的依賴,爲了演示這個功能,咱們這裏會在DataWorks裏面建立兩個AnalyticDB任務, 咱們的表、任務之間的關係以下圖:
測試

  • 任務一: 咱們從orders表清洗出已經完成的訂單: o_orderstatus = 'F' , 並寫入 finished_orders 表。
  • 任務二: 再從 finished_orders 表裏面找出總價大於10000的訂單: o_totalprice > 10000, 並寫入 high_value_finished_orders 表。

在 DataWorks 上建立AnalyticDB任務

在開通了 DataWorks + AnalyticDB 的功能後,咱們能夠在DataWorks的數據開發IDE裏面建立AnalyticDB的任務了,以下圖:


咱們把第一個任務命名爲: finished_orders , 點擊肯定會進入一個SQL編輯的頁面,要寫AnalyticDB SQL必定要告訴DataWorks咱們寫的SQL運行在哪一個服務上,這個在DataWorks裏面被包裝成了"數據源"的概念。

剛進來的時候沒有數據源,點擊新建數據源
大數據

填寫必要的信息點擊肯定完成。

DataWorks爲了安全的考慮,對能夠鏈接的服務進行了安全控制,所以咱們須要把咱們要連的AnalyticDB數據庫的地址+端口加到白名單裏面去,這個配置是在DataWorks工做空間的配置裏面:

具體配置以下(須要換成你實際的域名+端口):

作了這麼多以後,咱們終於能夠在編輯頁面看到AnalyticDB的數據源了,下面咱們在 finished_orders的任務裏面填入以下SQL, 並點擊執行:阿里雲

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

以下圖:

重複上述步驟,咱們建立第二個任務: high_value_finished_ordersspa

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

配置任務依賴3d

單個任務單次運行沒什麼太大意思,任務調度的核心在於多個任務按照指定的依賴關係在指定的時間進行運行,下面咱們讓: task_finished_orders 在天天半夜2點開始運行:

high_value_finished_orders 在 finished_orders 成功運行以後再運行:code

任務發佈

任務配置好以後,就能夠進行任務的發佈、運維了。任務要發佈首先必須提交:

提交以後,咱們在待發佈列表能夠看到全部待發布的任務

選擇咱們剛剛提交的兩個任務,咱們就能夠發佈了。在發佈列表頁面能夠查看咱們剛剛的發佈是否成功:

發佈成功以後,咱們就能夠進入任務運維頁面查看咱們的任務,進行各類運維操做了。

總結

在這篇文章裏面,我帶你們一塊兒體驗了一下如何用DataWorks來開發、調度AnalyticDB的任務,有了這個能力以後你們能夠更方便地進行天天任務的開發、運維了。


原文連接 本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索