DataWorks作為阿裡雲上廣受歡迎的大資料開發排程服務,最近加入了對于 AnalyticDB 的支援,意味着所有的AnalyticDB客戶可以獲得任務開發、任務依賴關系管理、任務排程、任務運維等等全方位強大的能力,現在就給大家仔細介紹下如何使用DataWorks來排程AnalyticDB任務。
開通AnalyticDB
進入阿裡雲
分析型資料庫 MySQL版産品詳情頁,點選免費試用。最近上線了15天
免費試用活動,需要首先填寫申請表單,審批通過後即可享受免費試用AnalyticDB活動。進入購買頁面,選擇好地域、可用區、ECU類型、ECU數量和資料庫名,點選立即購買,稍等幾分鐘時間就可以開通AnalyticDB執行個體。

開通DataWorks
開通完AnalyticDB服務後,緊接着要開通
DataWorks。選擇好region後點選下一步。
填寫工作空間名稱,注意模式要改成“标準模式”,建立工作空間。
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任務, 我們的表、任務之間的關系如下圖:
- 任務一: 我們從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_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來開發、排程AnalyticDB的任務,有了這個能力之後大家可以更友善地進行每天任務的開發、運維了。