本文介紹如何使用XIHE BSP SQL作業開發方式,將ODS層表資料通過DWD層過濾後,寫入ADS層。
前提條件
叢集的產品系列為湖倉版。
說明湖倉版叢集至少有16 ACU的計算預留資源和24 ACU的儲存預留資源。
已建立Job型資源群組。詳情請參見建立資源群組。
步驟一:建立ODS層資料表
登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單,在湖倉版頁簽下,單擊目的地組群ID。
在左側導覽列,單擊。
在SQLConsole視窗,選擇XIHE引擎和Job型資源群組。
輸入以下語句,並單擊執行SQL(F8)。建立一個名為
test_xihe_db的庫。CREATE DATABASE test_xihe_db;輸入以下語句,並單擊執行SQL(F8)。在
test_xihe_db庫中建立ODS層的無索引、有分區的表adb_xihe_ods,並插入資料。CREATE TABLE test_xihe_db.adb_xihe_ods (id int, name string, age int) DISTRIBUTED BY HASH (id) PARTITION BY VALUE (age) LIFECYCLE 4 INDEX_ALL='N';INSERT INTO test_xihe_db.adb_xihe_ods(id,name,age) VALUES (001,'Anna',18), (002,'Bob',22), (003,'Cindy',12), (004,'Dan',25);
步驟二:建立DWD層資料表
本教程以從ODS層表中讀取並過濾資料後寫入DWD層表中為例。
輸入以下語句,並單擊執行SQL(F8)。在
test_xihe_db庫中建立一張無索引,有分區的表adb_xihe_dwd。CREATE TABLE test_xihe_db.adb_xihe_dwd( id int, name string, age int) DISTRIBUTED BY HASH (id) PARTITION BY VALUE (age) LIFECYCLE 4 INDEX_ALL = 'N';輸入以下語句,並單擊執行SQL(F8)。從ODS層表
adb_xihe_ods中讀取id列不為002的資料並寫入DWD層資料表adb_xihe_dwd。INSERT INTO test_xihe_db.adb_xihe_dwd SELECT id, name, age FROM test_xihe_db.adb_xihe_ods where id != 002;輸入以下語句,並單擊執行SQL(F8)。查詢
adb_xihe_dwd表資料。SELECT * FROM test_xihe_db.adb_xihe_dwd;執行結果如下:
+------+-------+------+ | id | name | age | +------+-------+------+ | 4 | Ban | 25 | | 1 | Anna | 18 | | 3 | Cindy | 12 | +------+-------+------+
步驟三:建立ADS層資料表
ADS層表資料是對DWD層資料做了更精細地過濾,可直接用於業務分析,對查詢速率有一定的要求,因此建立ADS層資料表時需添加索引。本教程從DWD層資料表adb_xihe_dwd中讀取age列大於15的資料寫入ADS層資料表adb_xihe_ads。
輸入以下語句,並單擊執行SQL(F8)。在
test_xihe_db庫中建立一張AnalyticDB for MySQL的有索引,有分區的表adb_xihe_ads。CREATE TABLE test_xihe_db.adb_xihe_ads (id int, name string, age int) DISTRIBUTED BY HASH (id) PARTITION BY VALUE (age) LIFECYCLE 4;輸入以下語句,並單擊執行SQL(F8)。從DWD層資料表
adb_xihe_dwd中讀取age列大於15的資料並寫入ADS層資料表adb_xihe_ads。INSERT INTO test_xihe_db.adb_xihe_ads SELECT id, name, age FROM test_xihe_db.adb_xihe_dwd WHERE age > 15;
步驟四:查詢ADS層表資料
AnalyticDB for MySQL湖倉版叢集支援通過Spark SQL或XIHE BSP SQL離線方式查詢資料,也支援通過XIHE MPP SQL線上即時查詢資料。為保證資料的即時性,本教程以XIHE MPP SQL線上方式查詢ADS層表資料為例。
在SQLConsole視窗,選擇XIHE引擎和(Interactive)user_default資源群組。
輸入以下語句,並單擊執行SQL(F8)。查詢ADS層表資料。
SELECT * FROM test_xihe_db.adb_xihe_ads;返回結果如下:
+------+-------+------+ | id | name | age | +------+-------+------+ | 4 | Ban | 25 | | 1 | Anna | 18 | +------+-------+------+