HybridDB for MySQL 实现在线与离线数据分离的实践

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 某知名企业的集团任务中心,为了保障在线数据库的性能和容量,降低总体数据存储成本,避免离线数据的使用影响在线数据的使用,希望将线上业务系统早期生成的数据转移到离线库进行保存。同时,离线海量数据对于业务分析和未来业务规划又有非常重要的价值,需要不定期的进行数据分析。迫切需要进行在线离线数据的分离。

本文将重点介绍HybridDB for MySQL 实现在线与离线数据分离的实践,特别推荐!

核心业务简介


任务中心汇聚了集团的所有工作流任务,并提供统一的入口给用户处理集团的工作任务。


TB1aYudRVXXXXapXXXXXXXXXXXX-991-916.png

面临主要问题


1、单表存储量超高目前已有4千万的数据,并且在急速的增长。预计年增长在200%以上。 
2、业务需要大范围的查询由于业务需要查询多张表,比如查询在线,再查离线表。而且频率和复杂度在提升。会导致慢sql的出现。


如何架构改造


在线数据与离线数据隔离,在数据访问层面不相互影响 
在线数据到离线数据必须实时同步,保障高稳定性 
定时清理在线表的离线数据。保证在线存储的合理使用,保证数据从产生到移除的闭环过程。 
保证离线存储容量问题,离线数据不会清除,所以需要有合理的机制或充足的空间来保证离线数据的存储。
离线数据太多的情况下,要保证数据查询的效率,不能太慢。

这个过程进行了多种技术方案的调研。最终选择了基于 HybridDB for MySQL 的在线离线数据分离。

选型产品优点

  • 1、能解决在线数据过多的问题
  • 2、能解决在线与离线同一个库离线影响在线的问题
  • 3、在阿里云上使用比较多,方案成熟
  • 4、基本完全兼容MySQL
  • 5、通过DTS同步,保证数据的可靠性、实时性
  • 6、存储是线性扩展,不用担心存储容量问题
  • 7、hybridDB是新型的HTAP(事务与分析一体)关系数据库,适合日志、消息轨迹、历史等数据的存储

对比性能


参考数据量查询扫描行数的对比
TB1r8h_RVXXXXbZXpXXXXXXXXXX-500-136.png

从上图来看,小数据量的SQL,MySQL响应快于HybridDB,随着数据量的增加,MySQL的性能远不如HybridDB。 
所以,在小数据量的SQL推荐MySQL,超过千万的数据量查询,推荐使用HybridDB for MySQL。

HybridDB for MySQL


她是同时支持在线事务(OLTP)和在线分析(OLAP)的关系型 HTAP 类数据库。
HTAP是Hybrid Transaction/Analytical Processing的简写,意为将数据的事务处理(TP)与分析(AP)混合处理,从而实现对数据的实时处理分析。

1、HybridDB for MySQL采用一份数据存储来进行OLTP和OLAP处理,解决了以往需要把一份数据进行多次复制来分别进行业务交易和数据分析的问题,极大的降低了数据存储的成本。 
2、因为采用一份数据,HybridDB for MySQL免去了以往在线数据库(Operational Database)和数据仓库(Data Warehouse)之间的海量数据加载过程,极大的缩短了数据分析的延迟,使得实时分析决策系统成为可能。 
2、HybridDB for MySQL兼容MySQL的语法及函数,并且增加了对Oracle常用分析函数的支持,100%完全兼容TPC-H和TPC-DS测试标准,从而降低了用户的开发、迁移和维护成本。

主要使用场景


1、大数据存储与分析:可以基于一份数据进行事务(OLTP)与分析(OLAP)混合处理,免去了在线数据库和离线数据仓库之间海量数据的复制、传输、加载和存储。 
2、物联网:物联网有着数据采集点多、数据总量大、并发高的应用特点,往往需要使用分库分表和相应的数据分发技术才能承担业务流量。他分布式架构屏蔽了分库分表的细节,只对用户提供一个数据库连接地址和相应的逻辑库表,让用户的开发和运维成本降低到最低。 
3、历史数据: HybridDB for MySQL可存储海量的历史数据(最高可达到PB级),并且可以通过数据压缩来进一步节省存储空间,另有价格低廉的普通HDD硬盘存储供用户选择,极大减少了数据存储的成本。

对你是否有帮助,赶快查看详情

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
9237
分享
相关文章
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
58 16
【YashanDB知识库】MySQL迁移至崖山char类型数据自动补空格问题
**简介**:在MySQL迁移到崖山环境时,若字段类型为char(2),而应用存储的数据仅为'0'或'1',查询时崖山会自动补空格。原因是mysql的sql_mode可能启用了PAD_CHAR_TO_FULL_LENGTH模式,导致保留CHAR类型尾随空格。解决方法是与应用确认数据需求,可将崖山环境中的char类型改为varchar类型以规避补空格问题,适用于所有版本。
【YashanDB知识库】字符集latin1的MySQL中文数据如何迁移到YashanDB
本文探讨了在使用YMP 23.2.1.3迁移MySQL Server字符集为latin1的中文数据至YashanDB时出现乱码的问题。问题根源在于MySQL latin1字符集存放的是实际utf8编码的数据,而YMP尚未支持此类场景。文章提供了两种解决方法:一是通过DBeaver直接迁移表数据;二是将MySQL表数据转换为Insert语句后手动插入YashanDB。同时指出,这两种方法适合单张表迁移,多表迁移可能存在兼容性问题,建议对问题表单独处理。
【YashanDB知识库】字符集latin1的MySQL中文数据如何迁移到YashanDB
Redis和Mysql如何保证数据⼀致?
1. 先更新Mysql,再更新Redis,如果更新Redis失败,可能仍然不⼀致 2. 先删除Redis缓存数据,再更新Mysql,再次查询的时候在将数据添加到缓存中 这种⽅案能解决1 ⽅案的问题,但是在⾼并发下性能较低,⽽且仍然会出现数据不⼀致的问题,⽐如线程1删除了 Redis缓存数据,正在更新Mysql,此时另外⼀个查询再查询,那么就会把Mysql中⽼数据⼜查到 Redis中 1. 使用MQ异步同步, 保证数据的最终一致性 我们项目中会根据业务情况 , 使用不同的方案来解决Redis和Mysql的一致性问题 : 1. 对于一些一致性要求不高的场景 , 不做处理例如 : 用户行为数据 ,
SpringBoot 通过集成 Flink CDC 来实时追踪 MySql 数据变动
通过详细的步骤和示例代码,您可以在 SpringBoot 项目中成功集成 Flink CDC,并实时追踪 MySQL 数据库的变动。
377 43
MySQL底层概述—4.InnoDB数据文件
本文介绍了InnoDB表空间文件结构及其组成部分,包括表空间、段、区、页和行。表空间是最高逻辑层,包含多个段;段由若干个区组成,每个区包含64个连续的页,页用于存储多条行记录。文章还详细解析了Page结构,分为通用部分(文件头与文件尾)、数据记录部分和页目录部分。此外,文中探讨了行记录格式,包括四种行格式(Redundant、Compact、Dynamic和Compressed),重点介绍了Compact行记录格式及其溢出机制。最后,文章解释了不同行格式的特点及应用场景,帮助理解InnoDB存储引擎的工作原理。
MySQL底层概述—4.InnoDB数据文件
基于SQL Server / MySQL进行百万条数据过滤优化方案
对百万级别数据进行高效过滤查询,需要综合使用索引、查询优化、表分区、统计信息和视图等技术手段。通过合理的数据库设计和查询优化,可以显著提升查询性能,确保系统的高效稳定运行。
64 9
MySQL和SQLSugar百万条数据查询分页优化
在面对百万条数据的查询时,优化MySQL和SQLSugar的分页性能是非常重要的。通过合理使用索引、调整查询语句、使用缓存以及采用高效的分页策略,可以显著提高查询效率。本文介绍的技巧和方法,可以为开发人员在数据处理和查询优化中提供有效的指导,提升系统的性能和用户体验。掌握这些技巧后,您可以在处理海量数据时更加游刃有余。
161 9
MySQL进阶突击系列(09)数据磁盘存储模型 | 一行数据怎么存?
文中详细介绍了MySQL数据库中一行数据在磁盘上的存储机制,包括表空间、段、区、页和行的具体结构,以及如何设计和优化行数据存储以提高性能。

相关产品

  • 云数据库 RDS MySQL 版
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等