溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Data Lake Analytics中如何使用DataWorks來調(diào)度DLA任務(wù)

發(fā)布時間:2021-12-16 16:53:50 來源:億速云 閱讀:129 作者:柒染 欄目:云計算

Data Lake Analytics中如何使用DataWorks來調(diào)度DLA任務(wù),相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

DataWorks作為阿里云上廣受歡迎的大數(shù)據(jù)開發(fā)調(diào)度服務(wù),最近加入了對于Data Lake Analytics的支持,意味著所有Data Lake Analytics的客戶可以獲得任務(wù)開發(fā)、任務(wù)依賴關(guān)系管理、任務(wù)調(diào)度、任務(wù)運維等等全方位強大的能力,今天就給大家介紹一下如何使用DataWorks來調(diào)度DLA的腳本任務(wù)。

開通DLA

在開始之前我們要有一個 DLA 的賬號,目前 DLA 的新用戶都有50T的免費流量,可以放心試用。開通DLA成功后,你會獲得一個用戶名和密碼, 然后在控制臺登錄就可以使用:

Data Lake Analytics中如何使用DataWorks來調(diào)度DLA任務(wù)

或者如果你是極客,更偏愛命令行,你也可以使用普通的 MySQL 客戶端就可以連接 DLA 了:

mysql -hservice.cn-region.datalakeanalytics.aliyuncs.com 
      -P10000 
      -u<your-user-name> 
      -p<your-password>
在這篇文章里面,我會使用 MySQL 命令行給大家演示 DLA 的功能。

申請試用 DataWorks + DLA

開通DLA服務(wù)之后,您還需要開通DataWorks的服務(wù),目前DataWorks還在公測階段,放心使用。

然后您可以在您對應的DLA服務(wù)群里面找我們?nèi)魏我晃煌瑢W開通一下DLA + DataWorks的試用資格(目前這個功能還處于邀請試用的階段,沒有完全放開)。

如果目前還沒有專門DLA服務(wù)群的客戶,可以通過工單聯(lián)系我們。

DLA數(shù)據(jù)、庫、表準備

為了演示如何在DataWorks上調(diào)度DLA的任務(wù),我們后面會用到一些測試數(shù)據(jù),這里我們用著名的TPCH的測試數(shù)據(jù)集, 數(shù)據(jù)保存在OSS上面。

Data Lake Analytics中如何使用DataWorks來調(diào)度DLA任務(wù)

通過MySQL命令行我們創(chuàng)建對應的庫、表:

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/';

-- 結(jié)果表 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/';

-- 結(jié)果表 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/';

任務(wù)調(diào)度其中一個重要的功能是任務(wù)之間的依賴,為了演示這個功能,我們這里會在DataWorks里面創(chuàng)建兩個DLA任務(wù), 我們的表、任務(wù)之間的關(guān)系如下圖:

  • 任務(wù)一: 我們從orders表清洗出已經(jīng)完成的訂單: o_orderstatus = 'F' , 并寫入 finished_orders 表

  • 任務(wù)二: 再從 finished_orders 表里面找出總價大于10000的訂單: o_totalprice > 10000, 并寫入 high_value_finished_orders 表

關(guān)于如何使用DLA分析OSS數(shù)據(jù)更詳細的信息可以參考:
  • Data Lake Analytics + OSS數(shù)據(jù)文件格式處理大全: https://yq.aliyun.com/articles/623246

  • 使用Data Lake Analytics + OSS分析CSV格式的TPC-H數(shù)據(jù)集: https://yq.aliyun.com/articles/623282

在 DataWorks 上創(chuàng)建 DLA 任務(wù)

在開通了 DataWorks + DLA 的功能后,我們可以在DataWorks的數(shù)據(jù)開發(fā)IDE里面創(chuàng)建DLA的任務(wù)了,如下圖:

Data Lake Analytics中如何使用DataWorks來調(diào)度DLA任務(wù)

我們把第一個任務(wù)命名為: finished_orders , 點擊確定會進入一個SQL編輯的頁面,要寫DLA SQL一定要告訴DataWorks我們寫的SQL運行在哪個DLA的服務(wù)上,這個在DataWorks里面被包裝成了"數(shù)據(jù)源"的概念:

DataWorks的規(guī)范是任務(wù)的名稱跟任務(wù)的輸出表的名稱保持一致。

Data Lake Analytics中如何使用DataWorks來調(diào)度DLA任務(wù)

剛進來時候沒有數(shù)據(jù)源,點擊新建數(shù)據(jù)源:

Data Lake Analytics中如何使用DataWorks來調(diào)度DLA任務(wù)

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

Data Lake Analytics中如何使用DataWorks來調(diào)度DLA任務(wù)

DataWorks為了安全的考慮,對可以連接的服務(wù)進行了安全控制,因此我們需要把我們要連的DLA的地址+端口加到白名單里面去,這個配置是在DataWorks工作空間的配置里面:

Data Lake Analytics中如何使用DataWorks來調(diào)度DLA任務(wù)

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

Data Lake Analytics中如何使用DataWorks來調(diào)度DLA任務(wù)

這里需要注意一下,工作空間配置只有工作空間管理員才有權(quán)限。

做了這么多之后,我們終于可以在編輯頁面看到DLA的數(shù)據(jù)源了,下面我們在 finished_orders的任務(wù)里面填入如下SQL, 并點擊執(zhí)行:

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

如下圖:

Data Lake Analytics中如何使用DataWorks來調(diào)度DLA任務(wù)

重復上述步驟,我們創(chuàng)建第二個任務(wù): high_value_finished_orders:

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

配置任務(wù)依賴

單個任務(wù)單次運行沒什么太大意思,任務(wù)調(diào)度的核心在于多個任務(wù)按照指定的依賴關(guān)系在指定的時間進行運行,下面我們讓: task_finished_orders 在每天半夜2點開始運行:

Data Lake Analytics中如何使用DataWorks來調(diào)度DLA任務(wù)

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

Data Lake Analytics中如何使用DataWorks來調(diào)度DLA任務(wù)

任務(wù)發(fā)布

任務(wù)配置好之后,就可以進行任務(wù)的發(fā)布、運維了。任務(wù)要發(fā)布首先必須提交:

Data Lake Analytics中如何使用DataWorks來調(diào)度DLA任務(wù)

提交之后,我們在待發(fā)布列表可以看到所有待發(fā)布的任務(wù):

Data Lake Analytics中如何使用DataWorks來調(diào)度DLA任務(wù)

選擇我們剛剛提交的兩個任務(wù),我們就可以發(fā)布了:

Data Lake Analytics中如何使用DataWorks來調(diào)度DLA任務(wù)

在發(fā)布列表頁面可以查看我們剛剛的發(fā)布是否成功:

Data Lake Analytics中如何使用DataWorks來調(diào)度DLA任務(wù)

發(fā)布成功之后,我們就可以進入任務(wù)運維頁面查看我們的任務(wù),進行各種運維操作了。

Data Lake Analytics中如何使用DataWorks來調(diào)度DLA任務(wù)

看完上述內(nèi)容,你們掌握Data Lake Analytics中如何使用DataWorks來調(diào)度DLA任務(wù)的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI