MySQL分库分表写入Hologres实践

简介: 本文将会介绍如何通过DataWorks数据集成或者阿里云Flink将MySQL 分库分表数据写入至Hologres

实际业务场景下,数据同步通常不能通过一个或多个简单离线同步或者实时同步任务完成,而是由多个离线同步、实时同步和数据处理等任务组合完成,这就会导致数据同步场景下的配置复杂度非常高。尤其是在MySQL分库分表的场景下,上游的表和库非常多,都需要同时写入一张Hologres表,如果要同时配置多个任务则会导致配置非常复杂且运维困难。


针对上诉痛点,阿里云DataWorks数据集成一键同步解决方案提供了面向业务场景的同步任务配置化方案,支持不同数据源的一键同步功能,方便业务简单快速的进行数据同步。同时阿里云Flink也提供了丰富强大的数据实时入仓入湖能力,支持将多种数据源方便快捷的写入至Hologres。


通过本文我们将会介绍,通过DataWorker数据集成,以及Flink两种方式将MySQL分库分表写入Hologres的实践。您可以根据业务场景选择合适的方式将MySQL分库分表数据写入Hologres。


MySQL分库分表通过DataWorks同步至Hologres

通过DataWorks将MySQL分库分表的数据同步至Hologres的具体操作步骤如下:

步骤1:准备MySQL数据

在同步之前需要准备好MySQL分库分表数据。本文示例准备了两个库和三张表,分别如下:

库名

表名

数据量

hmtest1

product_20220420

6301

hmtest1

product_20220421

6331

hmtest2

product_20220422

6227


表的DDL定义如下,3个表的schema一致,但不同的表中会有部分数据重复。

CREATETABLE product_20220420 ( value_id int8, attribute_id int8notnull, id_card int8, name text, potion text,    ds TEXT,PRIMARY KEY (`value_id`))

步骤2:创建一键实时同步任务

前往DataWorks数据集成创建一键实时同步至Hologres任务,选择来源为MySQL,数据去向为Hologres。

分1.png

步骤3:设置同步来源和规则

  • 配置方案名称以及来源的基本信息,包括时区以及来源表等。

分2.png

  • 选择好来源表之后设置库/表的映射规则。如下示例通过正则匹配法选择出上游的库和表,实现分库分表写入同一个目标表

分3.png

步骤4:设置目标表

选择好来源表以及设置映射规则之后,需要设置目标表配置。如下示例将会根据上游DDL并自动创建目标表。

说明:映射关系里会展示每一个上游表与目标表的关系,只要目标表为同一个表即表示都映射至同一个目标表

分4.png

为了更好的区分上游表的来源,需要为目标表添加附加字段。勾选所有的任务,并单击“批量编辑目标表附加字段”。新增字段后单击“选择变量”为目标表添加附加字段,可以根据业务类型选择合适的附加字段以及系统变量。本次示例选择:db_name_src:来源数据库名称和table_name_src: 来源数据表名称。

分5.png


若是上游数据量比较大,且表比较多,建议将附加字段设置成主键PK,与源表主键做联合主键,防止多源表主键数据互相冲突,同时将附加字段设置为distribution key,能保证将相同的数据写入至同一个shard,实现更好的性能。


如下示例,单击表名,并手动修改表的DDL,将附加列table_name添加为pk和distribution key。


说明:

  • 一般建议添加tablename为联合主键,可根据业务场景适当添加
  • 也可以根据业务需求为表设置更多的索引,以实现更好的性能,详情见文档。

分6.png

步骤5:设置DML策略

目标表设置完成之后,为任务配置DML策略。根据业务情况进行单表设置或者批量设置。

分7.png

步骤6:实时同步DDL消息处理策略

根据业务情况为任务设置DDL消息消息处理策略。

分8.png

步骤7:运行资源设置

根据业务情况进行运行资源设置,包括资源组、连接数,并发数等。

分9.png

步骤8:运行任务

配置完成之后,提交任务执行,可以查看任务运行详情。

分10.png

步骤9:查询数据

一键解决方案会先运行全量数据,再运行实时同步数据。当全量离线任务运行完成后,可以前往Hologres中查询数据。如下示例可以看到附加列也有对应的数据表示数据的来源库和表名。以此表示上游分库分表写入至Hologres同一个表中。

分11.png


最后,业务上游有实时数据也会启动实时任务,如上游增加数据下游将会自动触发实时任务写入至Hologres中。本次示例仅展示如何通过“一键同步解决方案”实现MySQL分库分表写入至Hologres一张表,更多操作将不再讲述,请根据业务逻辑自行配置任务。


MySQL分库分表通过Flink同步至Hologres

通过Flink将MySQL分库分表的数据同步至Hologres的具体操作请见文档




了解Hologres:https://www.aliyun.com/product/bigdata/hologram


合集.png

相关实践学习
基于Hologres轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
相关文章
|
存储 消息中间件 分布式计算
Hologres实时数仓在B站游戏的建设与实践
本文介绍了B站游戏业务中实时数据仓库的构建与优化过程。为满足日益增长的数据实时性需求,采用了Hologres作为核心组件优化传统Lambda架构,实现了存储层面的流批一体化及离线-实时数据的无缝衔接。文章详细描述了架构选型、分层设计(ODS、DWD、DIM、ADS)及关键技术挑战的解决方法,如高QPS点查、数据乱序重写等。目前,该实时数仓已广泛应用于运营分析、广告投放等多个场景,并计划进一步完善实时指标体系、扩展明细层应用及研发数据实时解析能力。
Hologres实时数仓在B站游戏的建设与实践
|
存储 分布式计算 MaxCompute
Hologres实时湖仓能力入门实践
本文由武润雪(栩染)撰写,介绍Hologres 3.0版本作为一体化实时湖仓平台的升级特性。其核心能力包括湖仓存储一体、多模式计算一体、分析服务一体及Data+AI一体,极大提升数据开发效率。文章详细解析了两种湖仓架构:MaxCompute + Hologres实现离线实时一体化,以及Hologres + DLF + OSS构建开放湖仓架构,并深入探讨元数据抽象、权限互通等重点功能,同时提供具体使用说明与Demo演示。
|
SQL 弹性计算 运维
Hologres计算组实例&分时弹性入门实践
本文由骆撷冬(Hologres PD)撰写,围绕Hologres计算组实例与分时弹性的入门实践展开。内容分为三部分:第一部分介绍Hologres计算组实例的原理与架构,解决负载隔离、资源浪费、大任务和运维难题;第二部分演示计算组实例的入门实践,包括管理、授权、连接及监控等操作;第三部分讲解分时弹性的使用,涵盖配置方法、成本优化及监控告警。通过具体案例与操作步骤,帮助用户更好地理解和应用Hologres的弹性计算能力。
|
存储 消息中间件 Java
抖音集团电商流量实时数仓建设实践
本文基于抖音集团电商数据工程师姚遥在Flink Forward Asia 2024的分享,围绕电商流量数据处理展开。内容涵盖业务挑战、电商流量建模架构、流批一体实践、大流量任务调优及总结展望五个部分。通过数据建模与优化,实现效率、质量、成本和稳定性全面提升,数据质量达99%以上,任务性能提升70%。未来将聚焦自动化、低代码化与成本优化,探索更高效的流批一体化方案。
1010 12
抖音集团电商流量实时数仓建设实践
|
关系型数据库 MySQL Java
MySQL 分库分表 + 平滑扩容方案 (秒懂+史上最全)
MySQL 分库分表 + 平滑扩容方案 (秒懂+史上最全)
|
Ubuntu 关系型数据库 MySQL
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
649 16
|
存储 SQL Java
Flink CDC + Hologres高性能数据同步优化实践
本文整理自阿里云高级技术专家胡一博老师在Flink Forward Asia 2024数据集成(二)专场的分享,主要内容包括:1. Hologres介绍:实时数据仓库,支持毫秒级写入和高QPS查询;2. 写入优化:通过改进缓冲队列、连接池和COPY模式提高吞吐量和降低延迟;3. 消费优化:优化离线场景和分区表的消费逻辑,提升性能和资源利用率;4. 未来展望:进一步简化用户操作,支持更多DDL操作及全增量消费。Hologres 3.0全新升级为一体化实时湖仓平台,提供多项新功能并降低使用成本。
1151 1
Flink CDC + Hologres高性能数据同步优化实践
|
关系型数据库 MySQL 数据库
|
Java 关系型数据库 MySQL
MySQL 分库分表方案
本文总结了数据库分库分表的相关概念和实践,针对单张表数据量过大及增长迅速的问题,介绍了垂直和水平切分的方式及其适用场景。文章分析了分库分表后可能面临的事务支持、多库结果集合并、跨库join等问题,并列举了几种常见的开源分库分表中间件。最后强调了不建议水平分库分表的原因,帮助读者在规划时规避潜在问题。
1309 20
|
存储 弹性计算 运维
Hologres计算组实例&分时弹性入门实践
本文整理自 Hologres 产品团队的观秋老师关于Hologres 计算组实例&分时弹性入门实践的分享。内容主要为以下三部分: 1. Hologres 计算组实例介绍 2. 计算组实例入门实践 3. 分时弹性入门实践
558 16

热门文章

最新文章

相关产品

  • 实时数仓 Hologres
  • 推荐镜像

    更多