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

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

一、背景

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 
相关文章
|
存储 人工智能 NoSQL
阿里云表格存储 Tablestore 全面升级 AI 能力,存储成本直降 30%
近日,阿里云表格存储 Tablestore 宣布全面升级 AI 场景支持能力,正式推出 AI Agent 记忆存储功能,在保障高性能与高可用的同时,整体存储成本降低 30%,标志着 Tablestore 在构建 AI 数据处理和存储的技术内核能力上,迈出关键一步。
992 133
WGLOG日志管理系统是怎么收集日志的
WGLOG通过部署Agent客户端采集日志,Agent持续收集指定日志文件并上报Server,Server负责展示与分析。Agent与Server需保持相同版本。官网下载地址:www.wgstart.com
|
12月前
|
Prometheus 监控 Cloud Native
基于docker搭建监控系统&日志收集
Prometheus 是一款由 SoundCloud 开发的开源监控报警系统及时序数据库(TSDB),支持多维数据模型和灵活查询语言,适用于大规模集群监控。它通过 HTTP 拉取数据,支持服务发现、多种图表展示(如 Grafana),并可结合 Loki 实现日志聚合。本文介绍其架构、部署及与 Docker 集成的监控方案。
977 122
基于docker搭建监控系统&日志收集
|
监控 API 开发工具
HarmonyOS Next的HiLog日志系统完全指南:从入门到精通
本文深入解析HarmonyOS Next的HiLog日志系统,涵盖日志级别、核心API、隐私保护与高级回调功能,助你从入门到精通掌握这一重要开发工具。
|
存储 人工智能 NoSQL
阿里云表格存储 Tablestore 全面升级 AI 能力,存储成本直降 30%
让 AI 记得久、找得快、用得上,表格存储加速智能体记忆进化。
|
存储 运维 监控
SelectDB 实现日志高效存储与实时分析,完成任务可领取积分、餐具套装/水杯/帆布包!
SelectDB 实现日志高效存储与实时分析,完成任务可领取积分、餐具套装/水杯/帆布包!
|
存储 前端开发 数据可视化
Grafana Loki,轻量级日志系统
本文介绍了基于Grafana、Loki和Alloy构建的轻量级日志系统。Loki是一个由Grafana Labs开发的日志聚合系统,具备高可用性和多租户支持,专注于日志而非指标,通过标签索引而非内容索引实现高效存储。Alloy则是用于收集和转发日志至Loki的强大工具。文章详细描述了系统的架构、组件及其工作流程,并提供了快速搭建指南,包括准备步骤、部署命令及验证方法。此外,还展示了如何使用Grafana查看日志,以及一些基本的LogQL查询示例。最后,作者探讨了Loki架构的独特之处,提出了“巨型单体模块化”的概念,即一个应用既可单体部署也可分布式部署,整体协同实现全部功能。
6446 189
Grafana Loki,轻量级日志系统
|
12月前
|
Ubuntu
在Ubuntu系统上设置syslog日志轮替与大小限制
请注意,在修改任何系统级别配置之前,请务必备份相应得原始档案并理解每项变更可能带来得影响。
1264 2
|
存储 数据可视化 开发工具
【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 服务,移除默认日志过滤规则,并使用最新依赖包以支持分布式追踪。通过这些步骤,可恢复端到端事务视图的可视化效果。
303 11
WGLOG日志管理系统可以采集网络设备的日志吗
WGLOG日志审计系统提供开放接口,支持外部获取日志内容后发送至该接口,实现日志的存储与分析。详情请访问:https://www.wgstart.com/wglog/docs9.html