基于Tablestore 实现海量订单日志数据存储

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

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

一、背景

1、场景

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

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

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

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

MySQL 单库、主从架构图:

image.png

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

1、什么是表格存储(Tablestore)

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

image.png

2、组合方案架构及优势

image.png

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

通道服务模式图:

image.png

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

image.png

Tablestore优势能力总结:

  • 存储能力无限扩展

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

  • 高并发及查询能力强

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

  • 全托管

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

  • 计算生态

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

3、实现过程

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

使用迁移工具实现表格存储数据迁移

a、通过迁移工具完成存量数据迁移至Tablestore。

b、数据验证,确保数据准确完整。

c、应用API改造调整,日志数据直接写入Tablestore。

4、Tablestore进一步应用设想

当前Tablestore可以很好地支持日志数据的存储和查询要求,下一步可将关系型数据库中历史订单数据迁移OTS,这种方案将实时数据和历史数据分层存储,减少关系型数据库存储和性能压力,通过Tablestore提供海量历史订单数据存储以及快速的查询和分析服务。同时,该用户近期也使用了Tablestore的宽行模型存储轨迹时序数据(此类数据原本也存储于关系型数据库中,由于数据条数较多,也面临查询性能差问题),完成Tablestore在该客户的进一步应用。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
存储
日志存储问题之堆栈倒打如何解决
日志存储问题之堆栈倒打如何解决
|
4月前
|
存储 JSON 监控
日志存储问题之日志存储降低优化是针对哪种日志进行的
日志存储问题之日志存储降低优化是针对哪种日志进行的
|
1月前
|
存储 消息中间件 大数据
大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解
大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解
35 4
|
1月前
|
存储 消息中间件 大数据
大数据-70 Kafka 高级特性 物理存储 日志存储 日志清理: 日志删除与日志压缩
大数据-70 Kafka 高级特性 物理存储 日志存储 日志清理: 日志删除与日志压缩
39 1
|
1月前
|
存储 消息中间件 大数据
大数据-68 Kafka 高级特性 物理存储 日志存储概述
大数据-68 Kafka 高级特性 物理存储 日志存储概述
26 1
|
1月前
|
存储 监控 固态存储
如何监控和优化 WAL 日志文件的存储空间使用?
如何监控和优化 WAL 日志文件的存储空间使用?
|
2月前
|
存储 SQL 专有云
支持配置审计日志的存储数据库
审计日志作为企业监管平台的重要依据,同时也是“等保三级”认证的必要考察项之一。Dataphin V4.3版本支持设置平台日志的存储数据源,帮助用户快速获取审计日志,同时介绍了不同部署模式的Dataphin如何查看审计日志的方法。
112 5
|
2月前
|
存储 监控 数据可视化
SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
【9月更文挑战第2天】SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
150 9
|
2月前
|
存储 分布式计算 资源调度
通过日志聚合将作业日志存储在HDFS中
如何通过配置Hadoop的日志聚合功能,将作业日志存储在HDFS中以实现长期保留,并详细说明了相关配置参数和访问日志的方法。
30 0
通过日志聚合将作业日志存储在HDFS中
|
3月前
|
存储 安全 Linux
在Linux中,日志文件通常存储在哪些目录?
在Linux中,日志文件通常存储在哪些目录?