看過小編《互動式分析六脈神劍》的朋友們,(傳送門: 《互動式分析六脈神劍》之HoloStudio初體驗
)應該都知道基于互動式分析引擎的一站式開發平台HoloStudio深度內建于Dataworks。在DataWorks的強大功能背景的支援下,經過互動式分析加速查詢的資料(MaxCompute、實時計算),可以通過HoloStudio直接對接到資料服務、排程等子產品,輕松實作大資料的一站式開發對接。
但是,居然有朋友給小編說,還不會使用DataWorks的排程功能?這是小編絕對不允許的。趁着這個機會,今天小編就來為大家講講,HoloStudio中的資料如何在Dataworks中實作周期性排程,搬好闆凳,開課啦!
前提條件
在使用DataWorks之間,請確定已經開通遺下服務并配置好工作空間
- 開通 DataWorks服務 并配置好工作空間。
- MaxCompute服務 。
- 互動式分析服務
操作步驟
步驟1:MaxCompute準備資料源
準備一張MaxCompute源頭資料表,您可以參考
MaxCompute建立表進行建表,也可以直接從資料地圖中選用一張表。示例選用資料地圖中的已有表,其DDL如下:(資料量約為4萬條)
CREATE TABLE IF NOT EXISTS bank_data_odps
(
age BIGINT COMMENT '年齡',
job STRING COMMENT '工作類型',
marital STRING COMMENT '婚否',
education STRING COMMENT '教育程度',
card STRING COMMENT '是否有信用卡',
housing STRING COMMENT '房貸',
loan STRING COMMENT '貸款',
contact STRING COMMENT '聯系途徑',
month STRING COMMENT '月份',
day_of_week STRING COMMENT '星期幾',
duration STRING COMMENT '持續時間',
campaign BIGINT COMMENT '本次活動聯系的次數',
pdays DOUBLE COMMENT '與上一次聯系的時間間隔',
previous DOUBLE COMMENT '之前與客戶聯系的次數',
poutcome STRING COMMENT '之前市場活動的結果',
emp_var_rate DOUBLE COMMENT '就業變化速率',
cons_price_idx DOUBLE COMMENT '消費者物價指數',
cons_conf_idx DOUBLE COMMENT '消費者信心指數',
euribor3m DOUBLE COMMENT '歐元存款利率',
nr_employed DOUBLE COMMENT '職勞工數',
y BIGINT COMMENT '是否有定期存款'
);
步驟2:HoloStudio建立資料開發
移步HoloStudio,單擊左側菜單欄中資料開發--建立資料開發,建立一張外部表,用于映射MaxCompute源頭表資料。
輸入SQL指令如下,并單擊儲存,然後單擊左上角前往DataWorks排程,進行排程。
BEGIN;
CREATE FOREIGN TABLE if not EXISTS bank_data_foreign_holo (
age int8,
job text,
marital text,
education text,
card text,
housing text,
loan text,
contact text,
month text,
day_of_week text,
duration text,
campaign int8,
pdays float8,
previous float8,
poutcome text,
emp_var_rate float8,
cons_price_idx float8,
cons_conf_idx float8,
euribor3m float8,
nr_employed float8,
y int8
)
SERVER odps_server
OPTIONS (project_name 'projectname', table_name 'bank_data_odps');
GRANT SELECT ON bank_data_foreign_holo TO PUBLIC;
COMMIT;
說明:option給定連接配接參數:project_name為MaxCompute項目空間名,table_name為MaxCompute表名
步驟3:外部表排程
跳轉到DataWorks排程頁面之後,配置排程資訊并進行釋出。
建立Hologres開發之後,選中剛建立的開發節點,并單擊更新節點版本,即可将HoloStudio中建立的節點同步至DataWorks,單擊左側排程配置,選中排程依賴,父節點輸出名稱確定為MaxCompute源頭表。排程配置完成之後單擊儲存--送出--釋出,釋出成功後單擊運維中心,前往生産環境釋出。
可根據自己的項目情況配置時間屬性。示例如下


進入到生産環境後,,選中釋出的節點,并單擊釋出。
釋出成功之後,單擊右上角運維中心,進行資料配置。
單擊左側菜單欄周期任務,選中釋出的節點,右鍵單擊補資料--目前節點,即可成功釋出。

步驟4:HoloStudio建立分區表資料開發
外部表節點釋出完成之後,前往HoloStudio建立分區表資料開發,寫入分區資料。
HoloStudio--資料開發--建立資料開發,輸入SQL指令,單擊運作,并給自定義參數指派,運作成功後,單擊儲存--前往DataWorks排程,示例SQL如下:

BEGIN;
CREATE TABLE if not EXISTS bank_data_holo (
age int8,
job text,
marital text,
education text,
card text,
housing text,
loan text,
contact text,
month text,
day_of_week text,
duration text,
campaign int8,
pdays float8,
previous float8,
poutcome text,
emp_var_rate float8,
cons_price_idx float8,
cons_conf_idx float8,
euribor3m float8,
nr_employed float8,
y int8,
ds text NOT NULL
)
PARTITION BY LIST(ds);
CALL SET_TABLE_PROPERTY('bank_data_holo', 'orientation', 'column');
CALL SET_TABLE_PROPERTY('bank_data_holo', 'time_to_live_in_seconds', '700000');
COMMIT;
create table if not exists bank_data_holo_1_${bizdate} partition of bank_data_holo
for values in ('${bizdate}');
insert into bank_data_holo_1_${bizdate}
select
age as age,
job as job,
marital as marital,
education as education,
card as card,
housing as housing,
loan as loan,
contact as contact,
month as month,
day_of_week as day_of_week,
duration as duration,
campaign as campaign,
pdays as pdays,
previous as previous,
poutcome as poutcome,
emp_var_rate as emp_var_rate,
cons_price_idx as cons_price_idx,
cons_conf_idx as cons_conf_idx,
euribor3m as euribor3m,
nr_employed as nr_employed,
y as y,
'${bizdate}' as ds
from bank_data_foreign_holo;
步驟5:分區表排程
跳轉至DataWorks建立資料開發,單擊更新節點版本,将分區表資訊同步同步至該節點,并單擊右側排程配置,将基礎屬性--參數指派為時間節點,排程依賴為剛釋出的外部表,完成之後,單擊儲存--送出--釋出,并前往運維中心進行生産環境釋出。


步驟6:釋出并周期性排程資料
DataWorks将開發節點釋出成功,并将資料補充完整。

前往Holostudio,單擊左側菜單欄PG管理--表,選中排程配置成功的分區表,并單擊資料預覽,即可檢視到資料。

設定好排程時間,系統會自動進行周期性排程,通過分區,把每天的資料排程出來。
通過小編的講解,相信你已經學會了怎麼使用DataWorks排程吧,動動手指
開通互動式分析來使用吧。
若您有任何疑問,歡迎加釘釘群咨詢哦
