云原生数据仓库 AnalyticDB MySQL 版集群提供宽表引擎,兼容了开源列式数据库ClickHouse的能力。本文为您介绍宽表引擎的特点以及如何开通并使用宽表引擎。
宽表引擎功能处于邀测中,如果您需要开通该功能,请提交工单联系技术支持。
什么是宽表引擎
宽表引擎完全兼容开源列式数据库ClickHouse的能力和语法,能够处理大量的列式数据,适用于字段较多的表聚合查询分析场景。
宽表引擎的特点和架构图如下:
宽表引擎会使用Interactive型资源组的常驻计算资源执行SQL任务。
宽表引擎基于ReplicatedMergeTree引擎、云盘缓存空间、OSS构建了存储计算分离的云原生架构。
无需定义分库与副本,一键式托管宽表引擎。
宽表引擎提供高可用保障与高性能分布式查询的能力。
若您想了解更多开源列式数据库ClickHouse的信息,请参见ClickHouse文档。
前提条件
AnalyticDB for MySQL集群需满足以下条件:
产品系列为湖仓版。
集群内核版本需为3.2.1.0及以上。
说明如何查看集群内核版本,请参见如何查看实例版本信息。如需升级内核版本,请联系技术支持。
集群中的Interactive型资源组未开启Multi-Cluster功能。
说明您可以在资源组管理页面,单击对应Interactive型资源组操作列的修改,查看开启Multi-Cluster的按钮是否为置灰状态。若按钮为置灰状态,则表示资源组未开启Multi-Cluster功能。
集群中存在计算预留资源大于0 ACU的Interactive型资源组。
注意事项
宽表引擎开启后不允许关闭。
开启宽表引擎的过程中部分节点会重启,会导致部分SQL执行失败,建议在业务低峰期执行。
开启宽表引擎后,不允许创建Multi-Cluster资源组,且计算预留资源不允许缩容至0 ACU。
不支持备份与恢复宽表引擎的数据。
使用宽表引擎时,需要创建宽表引擎账号,该账号与AnalyticDB for MySQL集群的数据库账号为不同的账号体系,即通过宽表引擎账号无法访问AnalyticDB for MySQL集群的表,反之也相同。
费用说明
开启宽表引擎
登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在湖仓版页签下,单击目标集群ID。
在左侧导航栏,单击
。在配置信息页面中,单击开启宽表引擎后的按钮。开启宽表引擎后,会自动开启云盘缓存空间。
(可选)您可以滑动滑块或在缓存空间设置调整框中单击加号调整云盘缓存空间大小。
创建宽表引擎账号
AnalyticDB for MySQL宽表引擎支持高权限账号和普通账号。两种账号的区别及创建方法如下。
登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在湖仓版页签下,单击目标集群ID。
在左侧导航栏,单击
。在账号管理页面中,单击创建账号。
在弹出的创建账号面板中,创建高权限账号或普通账号。
参数
说明
数据库账号
账号名称,根据控制台提示输入符合要求的名称。
账号类型
请选择高权限账号或普通账号。
新密码
账号的密码,根据控制台提示输入符合要求的账号密码。
确认密码
再次输入账号的密码。
描述(可选)
备注该账号的相关信息,便于后续账号管理。
连接并使用宽表引擎
湖仓版集群支持在内网或公网环境下通过HTTP、HTTPS、TCP和MySQL协议连接宽表引擎。下文以MySQL客户端为例,介绍了连接宽表引擎的具体步骤。
步骤一:连接宽表引擎
通过内网连接宽表引擎
通过公网连接宽表引擎
通过SSL链路连接宽表引擎
步骤二:使用宽表引擎
创建数据库
adb_demo
。CREATE DATABASE adb_demo ON CLUSTER default [ENGINE = Replicated];
说明创建数据库时,
ON CLUSTER default
参数为固定参数,不能修改且必须填写,从而保证自动在每个节点上创建数据库。创建数据库时引擎必须配置为
Replicated
(默认引擎,可省略),且Replicated
后不允许配置zoo_path
、shard_name
和replica_name
参数。创建数据库的语法及参数说明,请参见CREATE DATABASE。
创建表
test
。CREATE TABLE test ( id Int, name String, age Int, likes String, PRIMARY KEY(id) ) ENGINE = ReplicatedMergeTree;
说明创建表时表引擎必须填写为
ReplicatedMergeTree
,且ReplicatedMergeTree
后不允许配置zoo_path
、shard_name
H和replica_name
参数,系统会自动填入所需参数。创建表的语法及参数说明,请参见CREATE TABLE。
向
test
表中插入数据。INSERT INTO test(id,name,age,likes)VALUES('1','Lili','10','足球'); INSERT INTO test(id,name,age,likes)VALUES('2','Tom','15','篮球'); INSERT INTO test(id,name,age,likes)VALUES('3','Jack','20','排球'); INSERT INTO test(id,name,age,likes)VALUES('4','Lucy','25','羽毛球');
查询数据。
SELECT * FROM test;
返回结果如下:
+-----------+-----------+-----------+-----------+ | id | name | age | likes | +-----------+-----------+-----------+-----------+ | 1 | Lili | 10 | 足球 | +-----------+-----------+-----------+-----------+ | 2 | Tom | 15 | 篮球 | +-----------+-----------+-----------+-----------+ | 3 | Jack | 20 | 排球 | +-----------+-----------+-----------+-----------+ | 4 | Lucy | 25 | 羽毛球 | +-----------+-----------+-----------+-----------+