重要 湖仓版目前已停止新购,如果您已购买湖仓版集群,仍可以参考本指南继续使用。
使用流程
步骤一:创建集群
登录云原生数据仓库AnalyticDB MySQL控制台。单击页面右上角创建集群。
在购买页面,配置核心参数快速完成选型,其他参数保持默认即可。如需了解更多参数信息,请参见创建集群。
配置项 | 说明 |
商品类型 | |
版本 | 更多关于企业版和基础版的信息,请参见产品系列。 |
部署模式 | 企业版:支持单可用区部署或多可用区部署。
重要 仅华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华南1(深圳)、中国香港和新加坡地域支持多可用区部署。 基础版:固定为单可用区部署。
|
地域 | 集群所在的地理位置,购买后无法更换地域。建议选择离业务最近的地域,以便于提升集群访问速度。 |
主可用区 | 选择集群所在的主可用区。 |
备可用区 | 选择集群所在的备可用区。当主可用区发生故障时,服务将自动切换至备可用区。切换期间,集群可能出现无法读写或读写超时。 |
专有网络(VPC) 主可用区交换机 备可用区交换机 | 如果已创建符合您网络规划的VPC,直接选择该VPC。例如,如果您已创建ECS,且该ECS所在的VPC符合您的规划,那么选择该VPC。 如果您未创建符合您网络规划的VPC,您可以使用默认专有网络和交换机。 如果默认VPC和交换机无法满足您的要求,您可以自行创建VPC和交换机。
|
预留资源单节点规格 | 预留资源单节点规格默认为8 ACU,可用于: |
预留资源节点数 | 企业版集群预留资源节点数,默认为3,步长为3。
说明 在企业版中,您可以将预留资源节点数设置为0。此时,界面右下角将不再显示预留资源节点数的购买价格。您需注意以下内容: 基础版集群预留资源节点数,默认为1,步长为1。
|
按照控制台提示完成后续购买操作。
支付成功后,大约需等待10~15分钟,在集群列表页待集群状态变为运行中表示创建完成。
步骤二:创建数据库账号
重要 AnalyticDB for MySQL支持以下数据库账号:
本文以高权限账号为例,介绍创建步骤。
在集群列表页,单击目标集群ID,进入集群详情页。
在左侧导航栏,单击账号管理。
在用户账号页签下,单击创建账号。
在创建账号面板,设置相关参数。
参数 | 说明 |
数据库账号 | 高权限账号的账号名称,根据控制台提示输入符合要求的名称。 |
账号类型 | 选择高权限账号。 |
新密码 | 高权限账号的密码,根据控制台提示输入符合要求的账号密码。 |
确认密码 | 再次输入高权限账号的密码。 |
描述 | 备注该账号的相关信息,便于后续账号管理。可选。 |
单击确定完成账号创建。
说明 普通账号创建完成后,您可以单击目标账号操作列的权限设置账号权限。
步骤三:创建资源组
云原生数据仓库 AnalyticDB 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 |+------+-------+------+
后续步骤
完成本教程后,您可以通过数据导入查看了解后续步骤等更多信息。