本文主要介紹Transwarp的作業流調度框架——Workflow,本文依托于星環的官方檔案,通過一個簡單的實體來讓大家熟悉Workflow的使用,關注專欄《Transwarp系列》了解更多Transwarp的技術知識~
目錄
一、Workflow簡介
二、Workflow實體
2.1 業務需求
2.2 業務實作
一、Workflow簡介
在做資料分析處理時,一個作業往往不能達到我們的業務目的,執行程序中通常會涉及多個作業任務,這些作業按照邏輯執行關系連接,存在著相互依賴關系,比如某數倉的構建程序可能涉及以下幾項內容:首先要將原始資料讀到HDFS,然后進行資料清洗,接著將資料存入Inceptor磁區表,執行SQL陳述句進行分析,其中可能涉及多表間的關聯,過濾等操作,最終將分析結果匯入業務系統,以供之后呼叫查看,若當前系統每天都會因交易的進行新增大量資料,業務部門要求每天進行一次統計處理,所以需要以天為周期執行上述流程,在不采用自動化工具進行調度的情況下,業務人員需要每天手動執行上述幾項任務,當然,可以通過腳本來減少作業量,但是一旦涉及多個作業流,系統科學的作業管理是必不可少的,為了簡化作業調度作業,減輕作業量,同時實作自動化的作業流管理,于是便有了Transwarp的作業流調度平臺——Workflow,
Workflow是一種用于實作作業流調度DAG設計與管理的圖形化工具,它支持Shell、SQL、JDBC、HTTP等任務型別,以及自定義Java任務,用戶設定好任務執行的邏輯執行順序之后,它可以自動運行作業流上的離線批處理任務,同開源Hadoop Oozie相比,Workflow在作業流調度方面的功能更強大,操作更方便,可用性更高,
二、Workflow實體
2.1 業務需求
此處有兩張表users和orders,users存盤了訂單的用戶資訊,orders存盤訂單資訊,現在想要根據每日的訂單資料分析出收益最高的地區, 兩張表的表結構分別如下所示:
1、user表

2、orders表

users和orders中的資料每天都在新增,增量資料保存在特定目錄下,其中users相關檔案于每天14:00更新,orders相關檔案于每天15:00更新, 為了按訂單收益對區域進行排名,現在需要每天實作如下操作:
(1)首先按照兩個檔案的資料更新時間點,將新增資料分別匯入表users和orders,
(2)然后根據業務邏輯執行SQL,對兩表進行分析,實作對區域按照收益進行排名,
(3)將本次查詢結果和歷史記錄進行比對,
要求使用Workflow,設計創建作業流,進行自動化管理,從而提高作業效率,
2.2 業務實作
1、首先通過監控界面登錄到Workflow界面,在xzw作業區中新建作業流,如下所示:

2、創建了兩個SQL任務update users和update orders,用于將檔案中存放的每日新增資料更新至users和orders兩張表:
(1)update_orders
create table if not exists orders (id int, date date, value float) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
load data inpath "/xzw/orders/orders_add.txt" into table orders;
update orders允許一次重試,并將超時設定為兩分鐘,

(2)update_users
create table if not exists users (name string, id int, area string, status char(1), order_id int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
load data inpath "/xzw/users/users_add.txt" into table users;

3、設定兩個延時器,timer_users每天14:00調度,用于觸發任務update users,timer_orders每天15:00調度,用于觸發任務update orders,


4、創建一個SQL任務result,以實作根據銷售額對區域進行排名,并將結果保存到一張新的表內,
create table result as select area, sum(value) as sum_value from orders join users on orders.id = users.id group by area order by sum_value desc;

5、創建任務show result,來查看SQL陳述句的分析結果,
beeline -u 'jdbc:hive2://192.168.0.185:10000/xzw' -n hive -p qdwzh -e "select * from result";

6、將各個任務按照邏輯順序相連接,并將該作業流的調度時間設定為每天的零點,

7、完成設計后保存,并進入除錯模式,如果除錯所有任務都顯示綠色則表示沒有問題,可以發布該作業流,

8、查看結果

以上就是本文的所有內容了,通過一個簡單的實體,大家一定對Workflow有了一個初步的認識,本文到此已經接近尾聲了,你們在此程序中遇到了什么問題,歡迎留言,讓我看看你們都遇到了哪些問題~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/262530.html
標籤:其他
上一篇:Docker Compose:部署SpringBoot應用(含MySQL,Redis,Nacos,RabbitMQ)
