全部产品
Search
文档中心

云原生数据仓库AnalyticDB:企业版、基础版及湖仓版快速入门

更新时间:Feb 10, 2026

云原生数据仓库 AnalyticDB MySQL 版(原分析型数据库MySQL版)是云端托管的PB级高并发实时数据仓库,专注于服务OLAP领域。本文为您介绍云原生数据仓库 AnalyticDB MySQL 版集群从创建到作业开发的使用操作。

重要

湖仓版目前已停止新购,如果您已购买湖仓版集群,仍可以参考本指南继续使用。

准备工作

  • 已注册阿里云账号。

    若尚未注册,请前往阿里云官网完成注册。当您的企业存在多用户协同访问资源的场景时,您可以为阿里云账号(主账号)创建RAM用户并为其授权,实现不同RAM用户拥有不同资源访问权限的目的。

  • 首次使用云原生数据仓库 AnalyticDB MySQL 版企业版、基础版及湖仓版的用户,建议阅读产品简介,了解云原生数据仓库 AnalyticDB MySQL 版的产品概念、产品优势及应用场景等内容。

费用信息

创建集群会产生计算和存储等相关费用,详细信息请参见企业版和基础版产品定价湖仓版产品定价

使用流程

步骤一:创建集群

  1. 登录云原生数据仓库AnalyticDB MySQL控制台。单击页面右上角创建集群

  2. 在购买页面,配置核心参数快速完成选型,其他参数保持默认即可。如需了解更多参数信息,请参见创建集群

    配置项

    说明

    商品类型

    • 按量付费:属于后付费,即按小时计费。适合短期需求,用完可以立即释放集群,节省费用。

    • 包年包月:属于预付费,即在新建集群时需要支付费用。适合长期需求,价格比按量付费更实惠,且购买时长越长,折扣越多。

    版本

    • 企业版:多副本形态,底层为多副本存储,具备分布式能力,提供高可用服务。

    • 基础版:单副本形态,底层为单副本存储,不提供高可用服务。

    更多关于企业版基础版的信息,请参见产品系列

    部署模式

    • 企业版:支持单可用区部署多可用区部署

      重要

      仅华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华南1(深圳)、中国香港和新加坡地域支持多可用区部署。

    • 基础版:固定为单可用区部署

    地域

    集群所在的地理位置,购买后无法更换地域。建议选择离业务最近的地域,以便于提升集群访问速度。

    主可用区

    选择集群所在的主可用区。

    备可用区

    选择集群所在的备可用区。当主可用区发生故障时,服务将自动切换至备可用区。切换期间,集群可能出现无法读写或读写超时。

    重要

    部署模式多可用区部署时,填写该参数。

    专有网络(VPC)

    主可用区交换机

    备可用区交换机

    • 如果已创建符合您网络规划的VPC,直接选择该VPC。例如,如果您已创建ECS,且该ECS所在的VPC符合您的规划,那么选择该VPC。

    • 如果您未创建符合您网络规划的VPC,您可以使用默认专有网络和交换机

    • 如果默认VPC和交换机无法满足您的要求,您可以自行创建VPC和交换机

    重要
    • 如果您同时在使用阿里云上的其他云服务,例如云服务器ECS、云数据库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 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 |+------+-------+------+

后续步骤

完成本教程后,您可以通过数据导入查看了解后续步骤等更多信息。