《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB MySQL版解析与实践(下)——二、数据导入导出与同步链路搭建(下)

本文涉及的产品
对象存储 OSS,20GB 3个月
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB MySQL版解析与实践(下)——二、数据导入导出与同步链路搭建(下)

更多精彩内容,欢迎观看:

《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB MySQL版解析与实践(下)——二、数据导入导出与同步链路搭建(上)https://developer.aliyun.com/article/1222976?spm=a2c6h.12873581.technical-group.dArticle1222976.7f81b096nfeL5J


3) DML外表式数据导入导出-MaxCompute

 

操作步骤

 

确定目标和源表:MaxCompute/AnalyticDB数据表

创建映射表:在AnalyticDB中创建该数据表的映射表

DML命令导出:INSERTOVERWRITEINTO

 

外部表主要参数

 

ENGINE='ODPS' ---存储引擎是 MaxCompute
TABLE_PROPERTIES=’{
"endpoint": "http://service.cn.maxcompute.aliyun-inc.com/api" ---MaxCompute 的
EndPoint (域名节点)
"accessid": "LTAIF***5FSE", ---访问 MaxCompute 的 AccessKey ID
"accesskey": "Ccw***iWjv", ---对应的 ID 的 Access key Secret
"project name": "odps_project1", ---MaxCompute 中的工作空间名称
"tablename": "xxx_xxx" ---MaxCompute 中的数据表名称
}'

 

说明

目前仅支持AnalyticDB MySQL通过MaxCompute的VPC网络Endpoint访问MaxCompute。

 

4) DML外表式数据导入导出-OSS

 

操作步骤

 

确定目标和源表:

ü OSS:是文件形式存储,将数据加载到ADB中

ü AnalyticDB:也可以将ADB表中的数据导出到OSS文件中

创建映射表:AnalyticDB中创建该数据表的映射表

DML命令导出:INSERT(OVERWRITE)INTO

 

外部表主要参数

 

ENGINE='OSS' ---存储引擎是 OSS
TABLEPROPERTES='{
"endpoint": "oss-cn-xxxxxx-internal.aliyuncs.com", ---OSS 的 EndPoint (域名节点)
"ur" /bucket-name/xxx/ --OSS 中文件夹的地址,以/结尾
"accessid": "LTAlF****5FSE", ---访问 OSS 文件的 Access Key ID
"accesskey": "CCW**iWjV", ---访问 OSS 文件的 Access Key Secret
"delimiter": ";" ---定义 OSS 中数据文件的列分隔符
}'

 

说明

OSS与AnalyticDB MySQL所属Region相同,不能跨Region导入导出。

 

4. 数据同步

 

1) RDS到ADB同步链路整体介绍

 

数据导入导出是一次性的、不能实时观察到元数据的改变,可以通过DTS数据传输服务搭建同步链路,实现对数据源实时数据改变的感知。

image.png

 

DTS:数据传输服务(Data Transmission Service),支持关系型数据库、NoSQL及大数据(OLAP)等数据源间的数据传输。

可通过DTS同步多种数据源数据到AnalyticDB MySQL(下文简称ADB),数据源包括RDS MySQL、PolarDB MySQL、PolarDB-X等,实现交互式BI分析和数仓迁移。

本教程重点介绍RDS MySQL到ADB的同步流程,其他数据源同步流程类似。

 

2) 数据同步步骤

 

数据同步由结构初始化、全量同步、增量同步三个步骤组成。

image.png

 

如图,数据存在RDS MySQL中,数据需要先在AnalyticDB MySQL中完成RDS MySQL的结构初始化,然后将RDS MySQL中全量数据同步到AnalyticDB MySQL中,最后通过增量同步保证数据的完整一致性。

 

a) 结构初始化

 

结构初始化是同步的第一个环节,即在ADB端创建与源MySQL对应的表结构。

 

首先,确认MySQL和ADB间的表结构关系。

然后,根据配置的表结构信息,DTS会自动在ADB端创建表,指定表的主键列和分布列,DTS会根据这些信息,加上其他列的信息,在AnalyticDB MySQL端建表。

分布列是AnalyticDB MySQL的表结构属性,ADB会根据该列把数据在多个节点上进行分布式存储。

注意,源端必须存在主键列,否则无法正确同步数据。

 

b) 全量同步

 

在结构初始化后,DTS会进行全量同步,然后在此基础上,再基于BinLog进行增量同步。

全量同步的方法是基于主键划分区间,然后并行同步到ADB中,可以简单理解为按主键范围把数据从MySQL中查询出来,并写入到ADB中,这样可以实现高效的并行写,加快全量同步性能。

image.png

 

为什么需要全量同步?

 MySQL中存在大量历史数据,这些数据对应的BinLog或许已经被删除,无法通过重放BinLog来同步这部分数据。

 同时,并行、批量拉取数据并写入ADB,效率也比逐行解析BinLog要高。

 

c) 增量同步

 

完成结构初始化和全量同步,则进入增量同步阶段。

 

首先,MySQL端的修改会产生BinLog,DTS通过捕获并解析MySQL端的BinLog日志,转换为Insert/Update/Delete/Alter等语句,并在ADB端回放这些操作,实现MySQL到ADB的增量同步。

 

结构初始化、全量同步都是一次性的,增量同步则是持续的,只要MySQL端有变化,DTS就会捕获并同步到ADB端。

 

image.png

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
1月前
|
消息中间件 存储 缓存
十万订单每秒热点数据架构优化实践深度解析
【11月更文挑战第20天】随着互联网技术的飞速发展,电子商务平台在高峰时段需要处理海量订单,这对系统的性能、稳定性和扩展性提出了极高的要求。尤其是在“双十一”、“618”等大型促销活动中,每秒需要处理数万甚至数十万笔订单,这对系统的热点数据处理能力构成了严峻挑战。本文将深入探讨如何优化架构以应对每秒十万订单级别的热点数据处理,从历史背景、功能点、业务场景、底层原理以及使用Java模拟示例等多个维度进行剖析。
55 8
|
1月前
|
数据采集 自然语言处理 搜索推荐
基于qwen2.5的长文本解析、数据预测与趋势分析、代码生成能力赋能esg报告分析
Qwen2.5是一款强大的生成式预训练语言模型,擅长自然语言理解和生成,支持长文本解析、数据预测、代码生成等复杂任务。Qwen-Long作为其变体,专为长上下文场景优化,适用于大型文档处理、知识图谱构建等。Qwen2.5在ESG报告解析、多Agent协作、数学模型生成等方面表现出色,提供灵活且高效的解决方案。
170 49
|
14天前
|
缓存 关系型数据库 MySQL
MySQL 索引优化与慢查询优化:原理与实践
通过本文的介绍,希望您能够深入理解MySQL索引优化与慢查询优化的原理和实践方法,并在实际项目中灵活运用这些技术,提升数据库的整体性能。
46 5
|
27天前
|
存储 关系型数据库 MySQL
PHP与MySQL动态网站开发:从基础到实践####
本文将深入探讨PHP与MySQL的结合使用,展示如何构建一个动态网站。通过一系列实例和代码片段,我们将逐步了解数据库连接、数据操作、用户输入处理及安全防护等关键技术点。无论您是初学者还是有经验的开发者,都能从中获益匪浅。 ####
|
27天前
|
XML JSON JavaScript
HttpGet 请求的响应处理:获取和解析数据
HttpGet 请求的响应处理:获取和解析数据
|
1月前
|
关系型数据库 MySQL Java
MySQL索引优化与Java应用实践
【11月更文挑战第25天】在大数据量和高并发的业务场景下,MySQL数据库的索引优化是提升查询性能的关键。本文将深入探讨MySQL索引的多种类型、优化策略及其在Java应用中的实践,通过历史背景、业务场景、底层原理的介绍,并结合Java示例代码,帮助Java架构师更好地理解并应用这些技术。
39 2
|
1月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
118 3
|
1月前
|
存储 监控 关系型数据库
MySQL自增ID耗尽解决方案:应对策略与实践技巧
在MySQL数据库中,自增ID(AUTO_INCREMENT)是一种特殊的属性,用于自动为新插入的行生成唯一的标识符。然而,当自增ID达到其最大值时,会发生什么?又该如何解决?本文将探讨MySQL自增ID耗尽的问题,并提供一些实用的解决方案。
48 1
|
23天前
|
SQL 关系型数据库 MySQL
PHP与MySQL的高效交互:从基础到实践####
本文深入探讨了PHP与MySQL数据库之间的高效交互技术,涵盖了从基础连接到高级查询优化的全过程。不同于传统的摘要概述,这里我们直接以一段精简代码示例作为引子,展示如何在PHP中实现与MySQL的快速连接与简单查询,随后文章将围绕这一核心,逐步展开详细讲解,旨在为读者提供一个从入门到精通的实战指南。 ```php <?php // 数据库配置信息 $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "test_db"; // 创建连接 $conn = new mysqli($se
24 0
|
1月前
|
存储 分布式计算 Java
存算分离与计算向数据移动:深度解析与Java实现
【11月更文挑战第10天】随着大数据时代的到来,数据量的激增给传统的数据处理架构带来了巨大的挑战。传统的“存算一体”架构,即计算资源与存储资源紧密耦合,在处理海量数据时逐渐显露出其局限性。为了应对这些挑战,存算分离(Disaggregated Storage and Compute Architecture)和计算向数据移动(Compute Moves to Data)两种架构应运而生,成为大数据处理领域的热门技术。
68 2

推荐镜像

更多