自动同步PolarDB-X元数据

当您需要一站式完成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集群的数据库账号。

背景信息

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列存引擎功能

  1. 登录PolarDB分布式版控制台

  2. 在页面左上角选择目标实例所在地域。

  3. 实例列表页,单击PolarDB-X 2.0页签。单击目标实例ID。

  4. 在左侧导航栏,单击列存引擎

  5. 单击创建列存引擎。在弹出的创建列存引擎对话框中,单击确定

    说明

    您可以单击页面右上角image按钮查看创建列存引擎的任务进度,当拓扑信息区域的节点状态使用中时,表示开通完成。

  6. 在页面右上角,单击开通ADB湖仓

  7. 在弹出的ADB湖仓集群列表对话框中,选择目标AnalyticDB for MySQL集群,单击确定

    说明

    绑定成功后,目标AnalyticDB for MySQL集群会自动创建对应的元数据发现任务。

步骤二:在企业版或湖仓版集群中进行数据分析

  1. 登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在企业版湖仓版页签下,单击目标集群ID。

  2. 在左侧导航栏,单击数据接入 > 元数据发现

  3. 任务列表区域,查看自动生成的目标元数据发现任务的运行情况

  4. 任务运行成功(即最近运行状态显示为成功)后,可以在作业开发 > SQL开发页面,查看同步到企业版或湖仓版集群的数据库和表。

    SELECT * FORM test_adb.person;

    返回结果:

    +--------+---------+----------+----------+
    |   id   |  name   |   age    |   city   |
    +--------+---------+----------+----------+
    |   1    |   23    |   Bob    | Hangzhou |
    +--------+---------+----------+----------+
    |   2    |   33    |   Make   |   Wuhan  |
    +--------+---------+----------+----------+