天天看點

使用DataWorks來排程AnalyticDB任務

DataWorks作為阿裡雲上廣受歡迎的大資料開發排程服務,最近加入了對于 AnalyticDB 的支援,意味着所有的AnalyticDB客戶可以獲得任務開發、任務依賴關系管理、任務排程、任務運維等等全方位強大的能力,現在就給大家仔細介紹下如何使用DataWorks來排程AnalyticDB任務。

開通AnalyticDB

進入阿裡雲

分析型資料庫 MySQL版産品詳情頁

,點選免費試用。最近上線了15天

免費試用

活動,需要首先填寫申請表單,審批通過後即可享受免費試用AnalyticDB活動。進入購買頁面,選擇好地域、可用區、ECU類型、ECU數量和資料庫名,點選立即購買,稍等幾分鐘時間就可以開通AnalyticDB執行個體。

使用DataWorks來排程AnalyticDB任務

開通DataWorks

開通完AnalyticDB服務後,緊接着要開通

DataWorks

。選擇好region後點選下一步。

使用DataWorks來排程AnalyticDB任務

填寫工作空間名稱,注意模式要改成“标準模式”,建立工作空間。

使用DataWorks來排程AnalyticDB任務

AnalyticDB中表和資料準備

為了示範如何在DataWorks上排程AnalyticDB的任務,我們後面會用到一些測試資料,這裡我們用著名的

TPCH的測試資料集

中的ORDERS表, 資料已經提前存入表中。

前面開通成功後,我們就可以在AnalyticDB中找到資料庫,登陸資料庫後,建立ORDERS表,如下:

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任務, 我們的表、任務之間的關系如下圖:

使用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的任務了,如下圖:

使用DataWorks來排程AnalyticDB任務

我們把第一個任務命名為: 

finished_orders

 , 點選确定會進入一個SQL編輯的頁面,要寫AnalyticDB SQL一定要告訴DataWorks我們寫的SQL運作在哪個服務上,這個在DataWorks裡面被包裝成了"資料源"的概念。

使用DataWorks來排程AnalyticDB任務

剛進來的時候沒有資料源,點選

建立資料源

使用DataWorks來排程AnalyticDB任務

填寫必要的資訊點選确定完成。

使用DataWorks來排程AnalyticDB任務

DataWorks為了安全的考慮,對可以連接配接的服務進行了安全控制,是以我們需要把我們要連的AnalyticDB資料庫的位址+端口加到白名單裡面去,這個配置是在DataWorks工作空間的配置裡面:

使用DataWorks來排程AnalyticDB任務

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

使用DataWorks來排程AnalyticDB任務

做了這麼多之後,我們終于可以在編輯頁面看到AnalyticDB的資料源了,下面我們在 

finished_orders

的任務裡面填入如下SQL, 并點選執行:

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

如下圖:

使用DataWorks來排程AnalyticDB任務

重複上述步驟,我們建立第二個任務: 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點開始運作:

使用DataWorks來排程AnalyticDB任務

high_value_finished_orders

 在 

finished_orders

 成功運作之後再運作:

使用DataWorks來排程AnalyticDB任務

任務釋出

任務配置好之後,就可以進行任務的釋出、運維了。任務要釋出首先必須送出:

使用DataWorks來排程AnalyticDB任務

送出之後,我們在

待釋出清單

可以看到所有待釋出的任務

使用DataWorks來排程AnalyticDB任務

選擇我們剛剛送出的兩個任務,我們就可以釋出了。在釋出清單頁面可以檢視我們剛剛的釋出是否成功:

釋出成功之後,我們就可以進入任務運維頁面檢視我們的任務,進行各種運維操作了。

使用DataWorks來排程AnalyticDB任務

總結

在這篇文章裡面,我帶大家一起體驗了一下如何用DataWorks來開發、排程AnalyticDB的任務,有了這個能力之後大家可以更友善地進行每天任務的開發、運維了。