当您需要一站式完成PolarDB分布式版数据同步与管理时,可以在PolarDB分布式版实例中开通列存引擎并绑定目标云原生数据仓库 AnalyticDB MySQL 版集群。相较于其他数据同步方案,一站式方案同步数据成本低、简单易用、能实时同步数据,可实现真正的实时分析。本文主要介绍如何一站式将PolarDB分布式版实例的数据同步至云原生数据仓库 AnalyticDB MySQL 版集群。
前提条件
AnalyticDB for MySQL集群的产品系列为企业版或湖仓版。
AnalyticDB for MySQL集群内核版本需为3.2.0.0及以上。
说明如何查看集群内核版本,请参见如何查看实例版本信息。如需升级内核版本,请联系技术支持。
AnalyticDB for MySQL集群与PolarDB-X 2.0实例位于同一地域且所属同一VPC。具体操作,请参见创建湖仓版集群和创建PolarDB-X 2.0实例。
PolarDB-X 2.0实例的系列为企业版,版本为5.4.19-16989811及以上。
说明如何查看并升级实例版本,请参见查看和升级实例版本。
已创建AnalyticDB for MySQL集群的数据库账号。
如果是通过阿里云账号访问,只需创建高权限账号。具体操作,请参见创建高权限账号。
如果是通过RAM用户访问,需要创建高权限账号和普通账号并且将RAM用户绑定到普通账号上。具体操作,请参见创建数据库账号和绑定或解绑RAM用户与数据库账号。
背景信息
AnalyticDB for MySQL是基于湖仓一体架构打造的实时数仓,可以对海量数据进行高性能的查询。PolarDB-X是高性能云原生分布式数据库,可支撑千万级并发规模及百PB级海量存储。PolarDB-X 2.0实例开通列存引擎,绑定AnalyticDB for MySQL集群后,AnalyticDB for MySQL集群会自动创建元数据发现任务,PolarDB-X 2.0实例列存表的元数据信息会自动同步到AnalyticDB for MySQL集群,您可以直接在AnalyticDB for MySQL集群中进行数据分析。
一站式同步PolarDB-X 2.0实例数据的优点如下:
实时同步:您在PolarDB-X 2.0中修改数据后,会秒级同步到AnalyticDB for MySQL集群,在AnalyticDB for MySQL集群中可以秒级查询数据的变化,实现真正的实时分析。
简单易用:PolarDB-X 2.0中的数据和表结构修改后会自动同步到AnalyticDB for MySQL集群,您无需做任何管理。
高性价比、成本低:PolarDB-X 2.0开通列存引擎,无需额外费用。在AnalyticDB for MySQL集群中进行数据分析时,可以使用Job型资源组进行SQL开发,Job型资源组计算和存储资源按需弹性,成本低。
应用场景
一站式同步PolarDB-X 2.0数据主要适用于以下场景:
PolarDB-X 2.0数据实时分析:对PolarDB-X 2.0中数据进行实时分析,同时不影响在线业务。
多数据源关联分析:需要把PolarDB-X 2.0的数据和其它数据源数据关联分析。
多PolarDB-X 2.0实例数据分析:对多个PolarDB-X 2.0中的数据进行关联分析。
注意事项
同步数据时,会在AnalyticDB for MySQL集群中创建与PolarDB-X 2.0实例中数据库和表同名的库表,因此在同步数据时需注意以下内容:
若AnalyticDB for MySQL集群中已经存在同名库和同名表,则会导致数据同步失败。
若AnalyticDB for MySQL集群仅存在同名库,则不会创建新的数据库,表会同步至已存在的同名库中。
数据准备
本示例的PolarDB-X 2.0数据库名为test_adb
,并在该库中创建了一张名为person
的表,示例如下:
CREATE DATABASE test_adb MODE='AUTO'
CREATE TABLE person (
`id` bigint NOT NULL AUTO_INCREMENT,
`age` int(11) NOT NULL DEFAULT '0',
`name` char(60) NOT NULL DEFAULT '',
`city` char(60) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
INDEX `age_1` (`age`)
) PARTITION BY KEY(`id`) PARTITIONS 4;
向person
表中插入数据,示例如下:
INSERT INTO person VALUES (1,23,'Bob','Hangzhou'),(2,33,'Make','Wuhan');
为person
表的id
列创建列存索引,索引名为person_col_index
。
CREATE clustered columnar INDEX `person_col_index` ON person(`id`) PARTITION BY hash(`id`) partitions 4;
操作步骤
步骤一:开通PolarDB-X 2.0列存引擎功能
在页面左上角选择目标实例所在地域。
在实例列表页,单击PolarDB-X 2.0页签。单击目标实例ID。
在左侧导航栏,单击列存引擎。
单击创建列存引擎。在弹出的创建列存引擎对话框中,单击确定。
说明您可以单击页面右上角按钮查看创建列存引擎的任务进度,当拓扑信息区域的节点状态为使用中时,表示开通完成。
在页面右上角,单击开通ADB湖仓。
在弹出的ADB湖仓集群列表对话框中,选择目标AnalyticDB for MySQL集群,单击确定。
说明绑定成功后,目标AnalyticDB for MySQL集群会自动创建对应的元数据发现任务。
步骤二:在企业版或湖仓版集群中进行数据分析
登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在企业版或湖仓版页签下,单击目标集群ID。
在左侧导航栏,单击
。在任务列表区域,查看自动生成的目标元数据发现任务的运行情况。
任务运行成功(即最近运行状态显示为成功)后,可以在 页面,查看同步到企业版或湖仓版集群的数据库和表。
SELECT * FORM test_adb.person;
返回结果:
+--------+---------+----------+----------+ | id | name | age | city | +--------+---------+----------+----------+ | 1 | 23 | Bob | Hangzhou | +--------+---------+----------+----------+ | 2 | 33 | Make | Wuhan | +--------+---------+----------+----------+