全部產品
Search
文件中心

AnalyticDB:使用XIHE BSP SQL進行作業開發

更新時間:Nov 05, 2024

本文介紹如何使用XIHE BSP SQL作業開發方式,將ODS層表資料通過DWD層過濾後,寫入ADS層。

前提條件

  • 叢集的產品系列為湖倉版

    說明

    湖倉版叢集至少有16 ACU的計算預留資源和24 ACU的儲存預留資源。

  • 已建立Job型資源群組。詳情請參見建立資源群組

步驟一:建立ODS層資料表

  1. 登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單,在湖倉版頁簽下,單擊目的地組群ID。

  2. 在左側導覽列,單擊作業開發 > SQL開發

  3. SQLConsole視窗,選擇XIHE引擎和Job型資源群組。

  4. 輸入以下語句,並單擊執行SQL(F8)。建立一個名為test_xihe_db的庫。

    CREATE DATABASE test_xihe_db;
  5. 輸入以下語句,並單擊執行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層表中為例。

  1. 輸入以下語句,並單擊執行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';
  2. 輸入以下語句,並單擊執行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;
  3. 輸入以下語句,並單擊執行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

  1. 輸入以下語句,並單擊執行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; 
  2. 輸入以下語句,並單擊執行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層表資料為例。

  1. SQLConsole視窗,選擇XIHE引擎和(Interactive)user_default資源群組。

  2. 輸入以下語句,並單擊執行SQL(F8)。查詢ADS層表資料。

    SELECT * FROM test_xihe_db.adb_xihe_ads;

    返回結果如下:

    +------+-------+------+
    | id   | name  | age  |
    +------+-------+------+
    |    4 | Ban   |   25 |
    |    1 | Anna  |   18 |
    +------+-------+------+