基于Tablestore 实现大规模订单系统海量订单/日志数据分类存储的实践

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
表格存储 Tablestore,50G 2个月
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 前言:从最早的互联网高速发展、到移动互联网的爆发式增长,再到今天的产业互联网、物联网的快速崛起,各种各样新应用、新系统产生了众多订单类型的需求,比如电商购物订单、银行流水、运营商话费账单、外卖订单、设备信息等,产生的数据种类和数据量越来越多;其中订单系统就是一个非常广泛、通用的系统。而随着数据规模的快速增长、大数据技术的发展、运营水平的不断提高,包括数据消费的能力要求越来越高,这对支撑订单系统的数据库设计、存储系统也提出了更多的要求。在新的需求下,传统的经典架构面临着诸多挑战,需要进一步思考架构优化,以更好支撑业务发展;

一、背景

1、场景

A公司主营业务为跨境电商出口和跨境仓储物流,其基本桥接了全部的海外第三方电商购物平台,包括亚马逊、eBay、速卖通等;

在业务运营过程中,A公司定期投放广告listing至各大购物平台,以更新产品的价格、物流费用、标题、评价、介绍,QA问答等等。每次更新均会生产日志记录相关变化,该数据需要长期保存并在后续进入DLA做运营分析;因此在目前A公司订单管理系统中,需要长期存储大量订单数据及日志数据;

2、早期解决方案及存在的问题

最早用户采用传统MySQL数据库作为订单系统中订单数据及日志数据的存储方案;该方案在早期数据规模不大时,因其灵活、开源的特点,且具备SQL查询、事务能力,是一个经典的入门方案选择;但随着业务的发展,订单量及相关日志数据的快速增长,这种集中式数据库架构在海量数据规模存储读写时,出现了严重的性能不足及容量扩展困难的问题;当前客户每月产生约6亿条日志数据,目前总数据记录条数在80亿条左右;在这种增长速度及数据量下,客户需要经常采用包括主从分离、提高数据库实例配置、分库分表的方式来缓解数据库读写压力,但这种做法无法从根源上解决问题,中间还是涉及到大量繁琐的数据迁移/上层业务应用逻辑修改的工作,带来非常大的运维工作量。传统的集中式关系型数据库很难承载如此海量的数据,需要一种具备能存储海量数据、高扩展能力、高性能、具备查询能力的新型数据库系统来支撑。

MySQL 单库、主从架构图:

image.png

二、基于Tablestore分层存储的解决方案

1、什么是表格存储(Tablestore

表格存储(Tablestore)是阿里云自研的面向海量结构化数据存储的Serverless 分布式数据库,提供海量结构化数据存储以及快速的查询和分析服务。为时序监控轨迹、历史订单数据、日志信息、元数据等海量数据提供存储、访问、同步、检索、计算等能力。

image.png

2、组合方案架构、优势

image.png

 

如上图,实时订单系统中,订单数据存入MySQL,日志数据存入Tablestore。实时订单数据由于强事务性,写入关系型数据MySQL;日志数据的写入不要求强事务性,更多要求的是海量数据存储、扩展型、丰富查询特性,通过Tablestore可容纳海量的日志数据存储,单实例可支撑10PB的数据,单表可支持1PB级别的数据,万亿条记录;这种产品组合方案,既解决了订单数据要求的多表联合查询、事务特性,又解决了海量数据存储扩展、性能差的问题;此外,Tablestore支持消费通道,通过为数据表建立数据通道,您可以简单地实现对表中历史存量和新增数据的消费处理。如将Tablestore中表数据投递归档至OSS中做备份保存。由于该用户日志数据后期需要消费,被DLA访问查询,用以运营分析;

通道服务模式图:

图片 4.png

OLAP查询架构:Tablestore中接入Data Lake Analytics(简称 DLA)服务的方式,为您提供一种快速的OLAPOn-Line Analytical Processing)解决方案,可通过DLA访问表格存储中的数据。

图片 5.png

Tablestore优势能力总结:

l  存储能力无限扩展

Tablestore可以无限水平扩展,因此该架构方案的存储能力和容量都不是问题。表格存储通过数据分片和负载均衡技术,实现了存储无缝扩展。随着表数据量的不断增大,表格存储会进行数据分区的调整从而为该表配置更多的存储。表格存储可支持不少于10 PB数据存储量,单表可支持不少于1 PB数据存储量或1万亿条记录。

l  高并发及查询能力强

表格存储支持千万级并发读写能力;除了支持主键查询,表格存储还支持二级索引、多元索引。兼容MySQL的查询语法,同时提供基础的SQL DDL建表能力。对于已有数据表,通过执行CREATE TABLE一键自动建立映射关系后,您可以使用SQL方式访问表中数据。因为订单查询场景丰富,不同的查询场景需要不同类型的索引。Tablestore 提供多元化的索引来满足不同类型场景下的数据查询需求,其多元索引基于倒排索引和列式存储,可以应对大规模数据和复杂查询场景下的各项查询难题。

l  全托管

表格存储是一种全托管的结构化数据存储。使用表格存储您只需专注于业务研发,无需担心软硬件预置、配置、故障、集群扩展、安全等问题,在保证高服务可用性的同时,极大地减少了管理及运维成本。

l  计算生态

Tablestore 拥有丰富的计算生态,积极的拥抱开源,除了比较好的支持阿里云自研计算引擎如MaxCompute 和 DataLakeAnalytics的计算对接,也能支持 Flink 和 Spark 等主流计算引擎的计算需求,无需数据搬迁。

3、实现过程

本次用户通过DataX工具完成MySQL数据库中存量日志数据同步至OTS的工作;阿里云提供了便捷的迁移工具实现数据同步;如使用DataWorks/DataX、表格存储的通道服务等迁移工具,可以在不影响业务的情况下实现表格存储数据的全量迁移、增量迁移和实时同步。您不仅可以将数据库迁移同步到表格存储,也可以实现表格存储数据表中数据的跨实例或者跨账号的迁移同步。可参考以下链接根据不同场景进行不同工具选择。https://help.aliyun.com/document_detail/124392.html

4Tablestore进一步应用设想

当前Tablestore可以很好地支持日志数据的存储和查询要求,下一步可将关系型数据库中历史订单数据迁移OTS,这种方案将实时数据和历史数据分层存储,减少关系型数据库存储和性能压力,通过Tablestore提供海量历史订单数据存储以及快速的查询和分析服务。

 

 

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
7天前
|
数据采集 运维 监控
不重启、不重写、不停机:SLS 软删除如何实现真正的“无感数据急救”?
SLS 全新推出的「软删除」功能,以接近索引查询的性能,解决了数据应急删除与脏数据治理的痛点。2 分钟掌握这一数据管理神器。
|
2月前
|
存储 缓存 Apache
StarRocks+Paimon 落地阿里日志采集:万亿级实时数据秒级查询
A+流量分析平台是阿里集团统一的全域流量数据分析平台,致力于通过埋点、采集、计算构建流量数据闭环,助力业务提升流量转化。面对万亿级日志数据带来的写入与查询挑战,平台采用Flink+Paimon+StarRocks技术方案,实现高吞吐写入与秒级查询,优化存储成本与扩展性,提升日志分析效率。
267 1
|
5月前
|
存储 缓存 Apache
StarRocks+Paimon 落地阿里日志采集:万亿级实时数据秒级查询
本文介绍了阿里集团A+流量分析平台的日志查询优化方案,针对万亿级日志数据的写入与查询挑战,提出基于Flink、Paimon和StarRocks的技术架构。通过Paimon存储日志数据,结合StarRocks高效计算能力,实现秒级查询性能。具体包括分桶表设计、数据缓存优化及文件大小控制等措施,解决高并发、大数据量下的查询效率问题。最终,日志查询耗时从分钟级降至秒级,显著提升业务响应速度,并为未来更低存储成本、更高性能及更多业务场景覆盖奠定基础。
|
6月前
|
存储 运维 监控
SelectDB 实现日志高效存储与实时分析,完成任务可领取积分、餐具套装/水杯/帆布包!
SelectDB 实现日志高效存储与实时分析,完成任务可领取积分、餐具套装/水杯/帆布包!
|
2月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL数据库的WAL日志与数据写入的过程
PostgreSQL中的WAL(预写日志)是保证数据完整性的关键技术。在数据修改前,系统会先将日志写入WAL,确保宕机时可通过日志恢复数据。它减少了磁盘I/O,提升了性能,并支持手动切换日志文件。WAL文件默认存储在pg_wal目录下,采用16进制命名规则。此外,PostgreSQL提供pg_waldump工具解析日志内容。
158 0
|
2月前
|
数据采集 运维 监控
|
6月前
|
SQL 监控 数据挖掘
SLS 重磅升级:超大规模数据实现完全精确分析
SLS 全新推出的「SQL 完全精确」模式,通过“限”与“换”的策略切换,在快速分析与精确计算之间实现平衡,满足用户对于超大数据规模分析结果精确的刚性需求。标志着其在超大规模日志数据分析领域再次迈出了重要的一步。
492 117
|
4月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
398 4
|
5月前
|
存储 数据可视化 开发工具
【Application Insights】Application Insights存储的Function App的日志存在"Operation Link" 为空的情况
在将 Azure Functions 升级到 .NET 8 和 Isolated Worker 模式后,Application Insights 的请求日志中 `operation_Link` 字段为空,导致分布式追踪无法正常关联。解决方法包括:确保引用正确的 SDK 包(如 `Microsoft.Azure.Functions.Worker.ApplicationInsights`),正确配置 Application Insights 服务,移除默认日志过滤规则,并使用最新依赖包以支持分布式追踪。通过这些步骤,可恢复端到端事务视图的可视化效果。
97 11