全部產品
Search
文件中心

AnalyticDB:企業版、基礎版及湖倉版快速入門

更新時間:Feb 11, 2026

AnalyticDB for MySQL(原AnalyticDB for MySQL)是雲端託管的PB級高並發即時資料倉庫,專註於服務OLAP領域。本文為您介紹AnalyticDB for MySQL叢集從建立到作業開發的使用操作。

重要

湖倉版目前已停止新購,如果您已購買湖倉版叢集,仍可以參考本指南繼續使用。

準備工作

  • 登入阿里雲帳號。

    若尚未註冊,請前往阿里雲官網完成註冊。當您的企業存在多使用者協同訪問資源的情境時,您可以為阿里雲帳號(主帳號)建立RAM使用者並為其授權,實現不同RAM使用者擁有不同資源存取權限的目的。

  • 首次使用AnalyticDB for MySQL企業版、基礎版及湖倉版的使用者,建議閱讀產品簡介,瞭解AnalyticDB for MySQL的產品概念、產品優勢及應用情境等內容。

費用資訊

建立叢集會產生計算和儲存等相關費用,詳細資料請參見企業版和基礎版產品定價湖倉版產品定價

使用流程

步驟一:建立叢集

  1. 登入雲原生資料倉儲AnalyticDB MySQL控制台。單擊頁面右上方建立叢集

  2. 在購買頁面,配置核心參數快速完成選型,其他參數保持預設即可。如需瞭解更多參數資訊,請參見建立叢集

    配置項

    說明

    商品類型

    • 隨用隨付:屬於後付費,即按小時計費。適合短期需求,用完可以立即釋放叢集,節省費用。

    • 訂用帳戶:屬於預付費,即在建立叢集時需要支付費用。適合長期需求,價格比隨用隨付更實惠,且購買時間長度越長,折扣越多。

    版本

    • 企業版:多副本形態,底層為多副本儲存,具備分布式能力,提供高可用服務。

    • 基礎版:單副本形態,底層為單副本儲存,不提供高可用服務。

    更多關於企業版基礎版的資訊,請參見產品系列

    部署模式

    • 企業版:支援單可用性區域部署多可用性區域部署

      重要

      僅華東1(杭州)、華東2(上海)、華北2(北京)、華北3(張家口)、華南1(深圳)、中國香港和新加坡地區支援多可用性區域部署。

    • 基礎版:固定為單可用性區域部署

    地域:

    叢集所在的地理位置,購買後無法更換地區。建議選擇離業務最近的地區,以便於提升叢集訪問速度。

    主可用區

    選擇叢集所在的主可用性區域。

    備可用區

    選擇叢集所在的備可用性區域。當主可用性區域發生故障時,服務將自動切換至備可用性區域。切換期間,叢集可能出現無法讀寫或讀寫逾時。

    重要

    部署模式多可用性區域部署時,填寫該參數。

    Virtual Private Cloud

    主可用性區域交換器

    備可用性區域交換器

    • 如果已建立符合您網路規劃的VPC,直接選擇該VPC。例如,如果您已建立ECS,且該ECS所在的VPC符合您的規劃,那麼選擇該VPC。

    • 如果您未建立符合您網路規劃的VPC,您可以使用預設專用網路和交換器

    • 如果預設VPC和交換器無法滿足您的要求,您可以自行建立VPC和交換器

    重要
    • 如果您同時在使用阿里雲上的其他雲端服務,例如Elastic Compute Service、雲資料庫RDS等,請確保AnalyticDB for MySQL與其他雲端服務位於同一個VPC,否則它們無法通過內網互連,無法發揮最佳效能。

    • 部署模式多可用性區域部署時,填寫備可用性區域交換器

    預留資源單節點規格

    預留資源單節點規格預設為8 ACU,可用於:

    • 資料計算,增加預留資源可以提高資料查詢速度。

    • 一組預留資源能帶動的熱資料存放區空間為8 TB。熱資料存放區空間的費用按儲存空間的實際使用量計費。

    說明

    如果您之前購買過數倉版湖倉版,選擇企業版規格請參見企業版與湖倉版、數倉版規格的映射關係

    預留資源節點數

    • 企業版叢集預留資源節點數,預設為3,步長為3。

      說明

      企業版中,您可以將預留資源節點數設定為0。此時,介面右下角將不再顯示預留資源節點數的購買價格。您需注意以下內容:

      • 預留資源節點數為0時,只能使用外表。如果需要建立AnalyticDB for MySQL內表,預留資源節點數需大於0。

      • 如果建立叢集時選擇的預留資源節點數為0,叢集建立成功後您也可以通過擴容購買預留資源,詳情請參見企業版與基礎版擴縮容

    • 基礎版叢集預留資源節點數,預設為1,步長為1。

  3. 按照控制台提示完成後續購買操作。

    支付成功後,大約需等待10~15分鐘,在集群清單頁待叢集狀態變為運行中表示建立完成。

步驟二:建立資料庫帳號

重要

AnalyticDB for MySQL支援以下資料庫帳號:

  • 高許可權帳號:可以管理所有普通帳號和資料庫,相當於MySQL中的root帳號。

  • 普通帳號:需要手動為普通帳號授權。普通帳號與高許可權帳號的區別與建立操作,請參見高許可權帳號和普通帳號

本文以高許可權帳號為例,介紹建立步驟。

  1. 在叢集列表頁,單擊目的地組群ID,進入叢集詳情頁。

  2. 在左側導覽列,單擊帳號管理

  3. 用戶賬號頁簽下,單擊創建賬號

  4. 創建賬號面板,設定相關參數。

    參數

    說明

    數據庫賬號

    高許可權帳號的帳號名稱,根據控制台提示輸入符合要求的名稱。

    賬號類型

    選擇高許可權帳號

    新密碼

    高許可權帳號的密碼,根據控制台提示輸入符合要求的帳號密碼。

    確認密碼

    再次輸入高許可權帳號的密碼。

    描述

    備忘該帳號的相關資訊,便於後續帳號管理。可選。

  5. 單擊確定完成帳號建立。

    說明

    普通帳號建立完成後,您可以單擊目標帳號操作列的權限設定帳號許可權。

步驟三:建立資源群組

AnalyticDB for MySQL不同資源群組的計算資源完全隔離,保障核心業務不受複雜計算和突髮狀況影響。

為便於後續的作業開發測試,本節以Job型資源群組為例介紹建立步驟。您也可以根據後續測試的作業開發類型,建立對應引擎的資源群組,支援的資源群組類型如下所示。關於資源群組和計算引擎的詳細資料,請參見建立和管理資源群組功能特性

類型

執行的任務

適用情境

Interactive型資源群組

建立時需指定引擎,各引擎執行任務如下:

  • XIHE引擎:支援XIHE MPP SQL。

  • Spark引擎:支援Spark SQL。

適合高QPS低RT的線上情境或者互動式分析情境。

Job型資源群組

建立時無需指定引擎,支援以下任務:

  • XIHE BSP SQL

  • Spark SQL和Spark應用

高吞吐離線情境。

AI資源群組

MLSQL模型運行和Ray託管計算。

異構計算情境。

  1. 在叢集詳情頁的左側導覽列,單擊集群管理>資源管理

  2. 單擊資源組管理頁簽,在資源群組列表的左上方單擊新增資源組

  3. 填寫資源組名稱任務類型選擇Job

    說明

    本教程中計算最小資源選擇0 ACU,計算最大資源選擇8 ACU,僅用於快速入門測試使用。

  4. 單擊確定

步驟四:(可選)使用SQL開發編輯器執行內建測試指令碼

說明

如果您僅需快速體驗或測試叢集,可參考本節內容載入並分析內建資料集。

  1. 在叢集詳情頁的左側導覽列,單擊作業開發 > SQL開發

  2. 庫表頁簽,單擊加載內置數據集

  3. 腳本頁簽,雙擊指令碼並在SQLConsole運行SQL語句對叢集進行測試。

    說明

    內建資料集中表詳情,請參見內建資料集表詳情

步驟五:作業開發

類型

前提條件

外表

Spark SQL作業開發

建立Job型資源群組或Spark引擎的Interactive型資源群組

XIHE BSP SQL作業開發

建立Job資源群組

內表

Spark SQL作業開發

建立Job型資源群組或Spark引擎的Interactive型資源群組

  • 企業版叢集預留資源不能為0 ACU。

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

XIHE BSP SQL作業開發

建立Job資源群組

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

作業開發(外表)

使用Spark SQL進行外表作業開發

開發流程如下:

外表

  1. 建立與AnalyticDB for MySQL叢集位於相同地區的OSS儲存空間和目錄。具體操作,請參見開通OSS服務控制台建立儲存空間建立目錄

  2. 建立OSS Hudi外表。

    1. 在叢集詳情頁的左側導覽列,單擊作業開發 > SQL開發

    2. SQLConsole視窗,選擇Spark引擎、Job型資源群組或Spark Interactive型資源群組。

    3. 輸入以下語句,並單擊執行SQL(F8),建立一個名為spark_external_db的外庫,用於儲存Hudi資料。本文以oss://testBucketName/adb-test-1/路徑為例。

      CREATE DATABASE spark_external_db
      LOCATION 'oss://testBucketName/adb-test-1/';
    4. 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/';
    5. 插入資料。

      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');
  3. 查詢OSS Hudi外表資料。

    1. 輸入以下語句,並單擊執行SQL(F8),查詢外表spark_hudi_table資料。

      SELECT * FROM spark_external_db.spark_hudi_table;
      說明

      如果湖倉版叢集中有計算預留資源,或企業版叢集中有預留資源,可以使用XIHE MPP SQL線上方式(即選擇XIHE引擎和Interactive資源群組)查詢外表資料。

    2. 作業開發 > Spark Jar 開發頁面的應用列表中,單擊目標SQL查詢語句操作列的日誌,在日誌中可以查看錶資料。

使用XIHE BSP SQL進行外表作業開發

開發流程如下:

xihe外表

  1. 建立與AnalyticDB for MySQL叢集位於相同地區的OSS儲存空間和目錄。具體操作,請參見開通OSS服務控制台建立儲存空間建立目錄

  2. 上傳樣本資料。

    本文樣本將資料檔案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
  3. 建立OSS外表。

    1. 在叢集詳情頁的左側導覽列,單擊作業開發 > SQL開發

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

    3. 輸入以下語句,並單擊執行SQL(F8),建立外庫xihe_external_db

      CREATE EXTERNAL DATABASE xihe_external_db;
    4. 輸入以下語句,並單擊執行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';
  4. 查詢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進行內表作業開發

  1. 建立ODS層資料表。

    1. 在叢集詳情頁的左側導覽列,單擊作業開發 > SQL開發

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

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

      CREATE DATABASE test_spark_db;
    4. 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);
  2. 建立DWD層資料表。

    本教程以從ODS層表中讀取並過濾資料後寫入DWD層表中為例。

    1. 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')
    2. (可選)查詢離線熱資料前,在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語句執行失敗。

    3. 切換至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;
    4. 查詢adb_spark_dwd表資料。

      SELECT * FROM test_spark_db.adb_spark_dwd;
      說明

      使用Spark SQL執行查詢語句,返回結果不展示表資料。如果您需要查看錶資料,請按照步驟5操作。

    5. 可選:Spark Jar開發頁面的應用列表中,單擊目標SQL查詢語句操作列的日誌,在日誌中可以查看錶資料。

  3. 建立ADS層資料。

    ADS層表資料是對DWD層資料做了更精細的過濾,可直接用於業務分析,對查詢速率有一定的要求,因此建立ADS層資料表時需添加索引。本教程從DWD層資料表adb_spark_dwd中讀取age列大於15的資料並寫入ADS層資料表adb_spark_ads

    1. 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')
    2. 從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;
  4. 查詢ADS層表資料。

    AnalyticDB for MySQL企業版、基礎版及湖倉版叢集既支援通過Spark SQL或XIHE BSP SQL離線方式查詢資料,也支援通過XIHE MPP SQL線上即時查詢資料。為保證資料的即時性,本教程以XIHE MPP SQL線上方式查詢ADS層表資料為例。

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

    2. 執行以下語句,查詢ADS層表資料。

      SELECT * FROM test_spark_db.adb_spark_ads;

      返回結果如下:

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

使用XIHE BSP SQL進行作業開發

  1. 建立ODS層資料表。

    1. 在叢集詳情頁的左側導覽列,單擊作業開發 > SQL開發

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

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

      CREATE DATABASE test_xihe_db;
    4. 輸入以下語句,並單擊執行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);
  2. 建立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 4INDEX_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 |+------+-------+------+
  3. 建立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;
  4. 查詢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 |+------+-------+------+

後續步驟

完成本教程後,您可以通過資料匯入查看瞭解後續步驟等更多資訊。