重要 湖倉版目前已停止新購,如果您已購買湖倉版叢集,仍可以參考本指南繼續使用。
使用流程
步驟一:建立叢集
登入雲原生資料倉儲AnalyticDB MySQL控制台。單擊頁面右上方建立叢集。
在購買頁面,配置核心參數快速完成選型,其他參數保持預設即可。如需瞭解更多參數資訊,請參見建立叢集。
配置項 | 說明 |
商品類型 | |
版本 | 更多關於企業版和基礎版的資訊,請參見產品系列。 |
部署模式 | 企業版:支援單可用性區域部署或多可用性區域部署。
重要 僅華東1(杭州)、華東2(上海)、華北2(北京)、華北3(張家口)、華南1(深圳)、中國香港和新加坡地區支援多可用性區域部署。 基礎版:固定為單可用性區域部署。
|
地域: | 叢集所在的地理位置,購買後無法更換地區。建議選擇離業務最近的地區,以便於提升叢集訪問速度。 |
主可用區 | 選擇叢集所在的主可用性區域。 |
備可用區 | 選擇叢集所在的備可用性區域。當主可用性區域發生故障時,服務將自動切換至備可用性區域。切換期間,叢集可能出現無法讀寫或讀寫逾時。
重要 僅部署模式為多可用性區域部署時,填寫該參數。 |
Virtual Private Cloud 主可用性區域交換器 備可用性區域交換器 | 如果已建立符合您網路規劃的VPC,直接選擇該VPC。例如,如果您已建立ECS,且該ECS所在的VPC符合您的規劃,那麼選擇該VPC。 如果您未建立符合您網路規劃的VPC,您可以使用預設專用網路和交換器。 如果預設VPC和交換器無法滿足您的要求,您可以自行建立VPC和交換器。
|
預留資源單節點規格 | 預留資源單節點規格預設為8 ACU,可用於: |
預留資源節點數 | 企業版叢集預留資源節點數,預設為3,步長為3。
說明 在企業版中,您可以將預留資源節點數設定為0。此時,介面右下角將不再顯示預留資源節點數的購買價格。您需注意以下內容: 基礎版叢集預留資源節點數,預設為1,步長為1。
|
按照控制台提示完成後續購買操作。
支付成功後,大約需等待10~15分鐘,在集群清單頁待叢集狀態變為運行中表示建立完成。
步驟二:建立資料庫帳號
重要 AnalyticDB for MySQL支援以下資料庫帳號:
本文以高許可權帳號為例,介紹建立步驟。
在叢集列表頁,單擊目的地組群ID,進入叢集詳情頁。
在左側導覽列,單擊帳號管理。
在用戶賬號頁簽下,單擊創建賬號。
在創建賬號面板,設定相關參數。
參數 | 說明 |
數據庫賬號 | 高許可權帳號的帳號名稱,根據控制台提示輸入符合要求的名稱。 |
賬號類型 | 選擇高許可權帳號。 |
新密碼 | 高許可權帳號的密碼,根據控制台提示輸入符合要求的帳號密碼。 |
確認密碼 | 再次輸入高許可權帳號的密碼。 |
描述 | 備忘該帳號的相關資訊,便於後續帳號管理。可選。 |
單擊確定完成帳號建立。
說明 普通帳號建立完成後,您可以單擊目標帳號操作列的權限設定帳號許可權。
步驟三:建立資源群組
AnalyticDB for MySQL不同資源群組的計算資源完全隔離,保障核心業務不受複雜計算和突髮狀況影響。
為便於後續的作業開發測試,本節以Job型資源群組為例介紹建立步驟。您也可以根據後續測試的作業開發類型,建立對應引擎的資源群組,支援的資源群組類型如下所示。關於資源群組和計算引擎的詳細資料,請參見建立和管理資源群組和功能特性。
類型 | 執行的任務 | 適用情境 |
Interactive型資源群組 | 建立時需指定引擎,各引擎執行任務如下: XIHE引擎:支援XIHE MPP SQL。 Spark引擎:支援Spark SQL。
| 適合高QPS低RT的線上情境或者互動式分析情境。 |
Job型資源群組 | 建立時無需指定引擎,支援以下任務: XIHE BSP SQL Spark SQL和Spark應用
| 高吞吐離線情境。 |
AI資源群組 | MLSQL模型運行和Ray託管計算。 | 異構計算情境。 |
在叢集詳情頁的左側導覽列,單擊>資源管理。
單擊頁簽,在資源群組列表的左上方單擊新增資源組。
填寫資源組名稱,任務類型選擇Job。
說明 本教程中計算最小資源選擇0 ACU,計算最大資源選擇8 ACU,僅用於快速入門測試使用。
單擊確定。
步驟四:(可選)使用SQL開發編輯器執行內建測試指令碼
說明 如果您僅需快速體驗或測試叢集,可參考本節內容載入並分析內建資料集。
在叢集詳情頁的左側導覽列,單擊。
在庫表頁簽,單擊加載內置數據集。
在腳本頁簽,雙擊指令碼並在SQLConsole運行SQL語句對叢集進行測試。
步驟五:作業開發
作業開發(外表)
使用Spark SQL進行外表作業開發
開發流程如下:

建立與AnalyticDB for MySQL叢集位於相同地區的OSS儲存空間和目錄。具體操作,請參見開通OSS服務、控制台建立儲存空間和建立目錄。
建立OSS Hudi外表。
在叢集詳情頁的左側導覽列,單擊。
在SQLConsole視窗,選擇Spark引擎、Job型資源群組或Spark Interactive型資源群組。
輸入以下語句,並單擊執行SQL(F8),建立一個名為spark_external_db的外庫,用於儲存Hudi資料。本文以oss://testBucketName/adb-test-1/路徑為例。
CREATE DATABASE spark_external_db
LOCATION 'oss://testBucketName/adb-test-1/';
在spark_external_db庫中建立外表spark_hudi_table,用於儲存Hudi資料。本文樣本為oss://testBucketName/adb-test-1/spark_external_db/。
CREATE TABLE spark_external_db.spark_hudi_table
(id int,
name string,
score int,
city string
)
using hudi
partitioned by (id)
tblproperties
(primaryKey = 'id',
preCombineField = 'city')
LOCATION 'oss://testBucketName/adb-test-1/spark_external_db/';
插入資料。
INSERT OVERWRITE spark_external_db.spark_hudi_table PARTITION(id) VALUES
(001,'Anna',99,'London'),
(002,'Bob',67,'USA'),
(003,'Cindy',78,'Spain'),
(004,'Dan',100,'China');
查詢OSS Hudi外表資料。
輸入以下語句,並單擊執行SQL(F8),查詢外表spark_hudi_table資料。
SELECT * FROM spark_external_db.spark_hudi_table;
說明 如果湖倉版叢集中有計算預留資源,或企業版叢集中有預留資源,可以使用XIHE MPP SQL線上方式(即選擇XIHE引擎和Interactive資源群組)查詢外表資料。
在頁面的應用列表中,單擊目標SQL查詢語句操作列的日誌,在日誌中可以查看錶資料。
使用XIHE BSP SQL進行外表作業開發
開發流程如下:

建立與AnalyticDB for MySQL叢集位於相同地區的OSS儲存空間和目錄。具體操作,請參見開通OSS服務、控制台建立儲存空間和建立目錄。
上傳樣本資料。
本文樣本將資料檔案xihe_oss.txt上傳至OSS路徑oss://adb-test-1/test_xihe/中,資料行分隔字元為分行符號,資料行分隔符號為英文逗號(,)。樣本資料檔案內容如下:
001,Anna,99,London
002,Bob,67,USA
003,Cindy,78,Spain
004,Dan,100,China
建立OSS外表。
在叢集詳情頁的左側導覽列,單擊。
在SQLConsole視窗,選擇Job型資源群組和XIHE引擎。
輸入以下語句,並單擊執行SQL(F8),建立外庫xihe_external_db。
CREATE EXTERNAL DATABASE xihe_external_db;
輸入以下語句,並單擊執行SQL(F8),建立外表xihe_oss_table。
CREATE EXTERNAL TABLE xihe_external_db.xihe_oss_table
(
id int ,
name string ,
score int,
city string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION 'oss://adb-test-1/test_xihe/xihe_oss.txt';
查詢OSS外表。
輸入以下語句,並單擊執行SQL(F8),查詢外表xihe_oss_table資料。
SELECT * FROM xihe_external_db.xihe_oss_table;
說明 如果湖倉版叢集中有計算預留資源,可以使用XIHE MPP SQL線上方式(即選擇XIHE引擎和Interactive資源群組)查詢外表資料。
作業開發(內表)
AnalyticDB for MySQL數倉分層包含以下三層。
ODS:資料營運層,對來源資料進行ETL處理。在實際業務中,ODS層會從資料來源抽取資料。為了確保新使用者能夠輕鬆完成入門教程,本教程中將向ODS層寫入測試資料。
DWD:資料明細層,對ODS層資料進行清洗、過濾等處理。本教程以過濾為例。
ADS:資料應用程式層,面向業務進行資料分析、生產報表等使用的資料。
使用Spark SQL進行內表作業開發
建立ODS層資料表。
在叢集詳情頁的左側導覽列,單擊。
在SQLConsole視窗,選擇Spark引擎和Job型資源群組。
輸入以下語句,並單擊執行SQL(F8),建立一個名為test_spark_db的庫。
CREATE DATABASE test_spark_db;
在test_spark_db庫中建立ODS層的無索引、有分區的表adb_spark_ods,並插入資料。
CREATE TABLE test_spark_db.adb_spark_ods
(id int,
name string,
age int)
USING adb
tblproperties (
'distributeType' = 'HASH',
'distributeColumns' = 'id',
'partitionType' = 'VALUE',
'partitionColumn' = 'age',
'partitionCount' = '200',
'indexAll' = 'false')
INSERT OVERWRITE test_spark_db.adb_spark_ods PARTITION(age) VALUES
(001,'Anna',18),
(002,'Bob',22),
(003,'Cindy',12),
(004,'Dan',25);
建立DWD層資料表。
本教程以從ODS層表中讀取並過濾資料後寫入DWD層表中為例。
在test_spark_db庫中建立一張無索引、有分區的表adb_spark_dwd。
CREATE TABLE test_spark_db.adb_spark_dwd (
id int,
name string,
age int
)
USING adb
TBLPROPERTIES(
'distributeType'='HASH',
'distributeColumns'='id',
'partitionType'='value',
'partitionColumn'='age',
'partitionCount'='200',
'indexAll'='false')
(可選)查詢離線熱資料前,在SQLConsole視窗,選擇XIHE引擎和(Interactive)user_default資源群組,執行以下配置項。
SET adb_config CSTORE_HOT_TABLE_ALLOW_SINGLE_REPLICA_BUILD=true;
SET adb_config ELASTIC_ENABLE_HOT_PARTITION_HAS_HDD_REPLICA=true;
SET adb_config ELASTIC_PRODUCT_ENABLE_MIXED_STORAGE_POLICY=true;
重要 查詢離線熱資料時,若未正確配置上述參數,將導致後續SQL語句執行失敗。
切換至Spark引擎,從ODS層表adb_spark_ods中讀取id列不為002的資料並寫入DWD層資料表。
INSERT OVERWRITE test_spark_db.adb_spark_dwd partition(age)
SELECT
id,
name,
age
FROM test_spark_db.adb_spark_ods WHERE id != 002;
查詢adb_spark_dwd表資料。
SELECT * FROM test_spark_db.adb_spark_dwd;
說明 使用Spark SQL執行查詢語句,返回結果不展示表資料。如果您需要查看錶資料,請按照步驟5操作。
可選:在Spark Jar開發頁面的應用列表中,單擊目標SQL查詢語句操作列的日誌,在日誌中可以查看錶資料。
建立ADS層資料。
ADS層表資料是對DWD層資料做了更精細的過濾,可直接用於業務分析,對查詢速率有一定的要求,因此建立ADS層資料表時需添加索引。本教程從DWD層資料表adb_spark_dwd中讀取age列大於15的資料並寫入ADS層資料表adb_spark_ads。
在test_spark_db庫中建立一張有索引,有分區的表adb_spark_ads。
CREATE TABLE test_spark_db.adb_spark_ads (
id int,
name string,
age int
)
USING adb
TBLPROPERTIES(
'distributeType'='HASH',
'distributeColumns'='id',
'partitionType'='value',
'partitionColumn'='age',
'partitionCount'='200',
'indexAll'='true')
從DWD層資料表adb_spark_dwd中讀取age列大於15的資料並寫入ADS層資料表adb_spark_ads。
INSERT OVERWRITE test_spark_db.adb_spark_ads partition(age)
SELECT
id,
name,
age
FROM test_spark_db.adb_spark_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資源群組。
執行以下語句,查詢ADS層表資料。
SELECT * FROM test_spark_db.adb_spark_ads;
返回結果如下:
+------+-------+------+
| id | name | age |
+------+-------+------+
| 4 | Dan | 25 |
| 1 | Anna | 18 |
+------+-------+------+
使用XIHE BSP SQL進行作業開發
建立ODS層資料表。
在叢集詳情頁的左側導覽列,單擊。
在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 4INDEX_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 4INDEX_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 |+------+-------+------+
後續步驟
完成本教程後,您可以通過資料匯入查看瞭解後續步驟等更多資訊。