数据架构:概念与冷热分离

本文涉及的产品
表格存储 Tablestore,50G 2个月
简介: 关于架构,大家都有了解和理解。通常一个业务或项目,在做架构设计时,可能会包含业务架构和技术架构。其中技术架构是我们作为开发角色,在做设计时重点的工作内容。但还有架构类型的划分方式,会包括业务架构、技术架构、数据架构和应用架构四种。

一 什么是数据架构

   关于架构,大家都有了解和理解。通常一个业务或项目,在做架构设计时,可能会包含业务架构和技术架构。其中技术架构是我们作为开发角色,在做设计时重点的工作内容。但还有架构类型的划分方式,会包括业务架构、技术架构、数据架构和应用架构四种。

   数据架构管理的内容包括管理对象、管理流程、管理组织,管理对象又包括数据标准、数据模型、数据库、数据质量。总之,数据架构就是由一定的管理组织,通过一系列管理流程,来实现对数据对象的管理。数据架构构成如下图所示:

二 为什么需要数据架构

   “经验来源于实践”。经历过一个或多个中大型项目/产品生命周期的朋友,大多会有这样的经验。在项目早期时,为了快速验证,会以尽快上线运行为最主要的目标,架构设计会有数据结构部分,但不会过多设计。在项目快速发展之后,频繁的表结构变更、数据类型变化会带来一系列的问题,尤其是当可能发生拆库、分表等动作之后,带来几个典型的数据问题:

2.1 数据标准不一致

  • 列名相同,数据类型不同;
  • 列名相同,数据类型相同,长度不同;
  • 列名定义没有统一标准,识别困难;
  • 列名定义不统一,类型不统一,长度不同;

2.2 数据模型混乱

  • 表、字段缺乏注释;
  • 表无主键、允许为NULL列;
  • 表关系不清晰;
  • 不合理的冗余设计;

2.3 性能问题

  • 对表结构、索引理解、使用不当;
  • SQL的编写与开发者的技术水平有关,当sql编写不当且缺乏审核导致带入线上,就会导致性能问题

2.4 数据缺乏安全管理

表结构规范;

索引合理性设计、创建检查;

SQL质量;

数据安全管理(插入、删除、更新,以及批量查询动作)

三 数据架构生命周期

   数据架构的重点是数据的标准化处理,这会贯穿于系统/项目的整个生命周期。包括数据架构设计阶段、开发阶段、迁移阶段、测试阶段等等。

四 数据冷热分离

4.1 大数据存储方案

   关于大数据量的存储方案,常用的有分库分表方案,可以选用多种分库分表技术和中间件来实现。但有一个问题,当单表数据量到达多少的时候执行分库分表?

4.2 单表上限2000w的起源

  一直有这样一种说法,MySQL 单表数据量大于 2000 万行,性能会明显下降。冷热分离之 OTS 表格存储实战这篇文章中给出了来源:这个传闻据说最早起源于百度。“具体情况大概是这样的,当年的 DBA 测试 MySQL性能时发现,当单表的量在 2000 万行量级的时候,SQL 操作的性能急剧下降,因此,结论由此而来。然后又据说百度的工程师流动到业界的其它公司,随之也带去了这个信息,所以,就在业界流传开这么一个说法。再后来,阿里巴巴《Java 开发手册》提出单表行数超过 500 万行或者单表容量超过2GB,才推荐进行分库分表。对此,有阿里的黄金铁律支撑,所以,很多人设计大数据存储时,多会以此为标准,进行分表操作。”

   背后的原理,大家也可以仔细阅读这篇文章,简单来说,这个说法源于Mysql的InnoDB引擎的存储结构和索引结构。记录数过多时导致B+树高度过高从而需要多次IO,导致性能明显下降。

4.3 冷热分离

4.3.1 数据的冷热划分

   首先,绝大部分场景,数据都可以分为“冷数据”和“热数据”。数据划分的原则,可以根据时间远近、热点/非热点用户等等。例如在以往项目中的实例,用户通常只访问一段时间之内的数据,例如近一周或一个月。如果数据不做划分,必然会导致一定程度上的性能、成本损耗。

4.3.2 冷热分离好处

   通过合理的冷热分离设计,可以达到的好处:

  • 降低单表数据量,提升单表性能
  • 大量业务冷数据转冷存,存储成本可以降低很多,至少50%+

五 冷热分离方案

   需要考虑的包括存储方案、数据迁移方案,另外需要做历史查询时也需要支持聚合查询和自动的冷热查询路由。

5.1 存储方案

   存储方案,包括本地方案和云方案。本地的存储介质,通常是硬盘,但通常机械硬盘会受限于磁盘空间和IO瓶颈,这也是单表限制的主要原因。所以一般处于性能提升的考虑,会使用固态硬盘(SSD)。但SSD成本较高(远高于机械硬盘),所以不适合海量数据存储,这时候就需要考虑磁盘阵列等等。另外,磁带也是一种方案,但仅适合历史数据的持久化保存,和必要时做数据恢复,本身并不适合查询。

   如果能够接受云方案,那么可选的就有云硬盘作为DB的存储介质、或者是云服务上提供的冷热存储(blob、表格存储)。阿里云的OTS就是一种表格存储实现,其技术架构如下图所示:

5.2 迁移方案

   数据有冷热划分,那么就会有界限、生命周期。新的数据写入时,其属性是“热”的;当到达某个时间节点或预设阈值时,就需要把数据迁移到“冷”数据存储。这里又涉及到几个问题:

  • 冷热数据标记
  • 迁移方法。时效性保障
  • 数据一致性

另外,为了保证冷热数据迁移过程中业务系统的稳定性,在数据迁移的过程中还一定要做到:可灰度[降低影响,提前发现],可一键回滚[快速止血]。

总结

   本文介绍了数据架构的概念、意义,以及数据的冷热分离,并阐述了冷热分离方案和注意事项。本篇作为综述,在后续系列文章中会通过实际案例来进一步探究数据架构的内容。

参考文章

数据架构-什么是数据架构

相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
阿里云表格存储使用教程
表格存储(Table Store)是构建在阿里云飞天分布式系统之上的分布式NoSQL数据存储服务,根据99.99%的高可用以及11个9的数据可靠性的标准设计。表格存储通过数据分片和负载均衡技术,实现数据规模与访问并发上的无缝扩展,提供海量结构化数据的存储和实时访问。 产品详情:https://www.aliyun.com/product/ots
相关文章
|
3月前
|
机器学习/深度学习 数据采集 人工智能
揭秘!47页文档拆解苹果智能,从架构、数据到训练和优化
【8月更文挑战第23天】苹果公司发布了一份47页的研究文档,深入解析了其在智能基础语言模型领域的探索与突破。文档揭示了苹果在此领域的雄厚实力,并分享了其独特的混合架构设计,该设计融合了Transformer与RNN的优势,显著提高了模型处理序列数据的效能与表现力。然而,这种架构也带来了诸如权重平衡与资源消耗等挑战。苹果利用海量、多样的高质量数据集训练模型,但确保数据质量及处理噪声仍需克服。此外,苹果采取了自监督与无监督学习相结合的高效训练策略,以增强模型的泛化与稳健性,但仍需解决预训练任务选择及超参数调优等问题。
146 66
|
30天前
|
存储 分布式计算 大数据
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
53 3
|
1月前
|
消息中间件 NoSQL Kafka
大数据-52 Kafka 基础概念和基本架构 核心API介绍 应用场景等
大数据-52 Kafka 基础概念和基本架构 核心API介绍 应用场景等
59 5
|
1月前
|
消息中间件 存储 分布式计算
大数据-53 Kafka 基本架构核心概念 Producer Consumer Broker Topic Partition Offset 基础概念了解
大数据-53 Kafka 基本架构核心概念 Producer Consumer Broker Topic Partition Offset 基础概念了解
58 4
|
30天前
|
存储 分布式计算 算法
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
38 0
|
30天前
|
消息中间件 分布式计算 Kafka
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
37 0
|
1月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
44 0
|
1月前
|
存储 大数据 数据处理
洞察未来:数据治理中的数据架构新思维
数据治理中的数据架构新思维对于应对未来挑战、提高数据处理效率、加强数据安全与隐私保护以及促进数据驱动的业务创新具有重要意义。企业需要紧跟时代步伐,不断探索和实践新型数据架构,以洞察未来发展趋势,为企业的长远发展奠定坚实基础。
|
1月前
|
设计模式 消息中间件 监控
后端开发中的微服务架构:从概念到实践
后端开发中的微服务架构:从概念到实践
|
2月前
|
存储 搜索推荐 数据库
MarkLogic在微服务架构中的应用:提供服务间通信和数据共享的机制
随着微服务架构的发展,服务间通信和数据共享成为关键挑战。本文介绍MarkLogic数据库在微服务架构中的应用,阐述其多模型支持、索引搜索、事务处理及高可用性等优势,以及如何利用MarkLogic实现数据共享、服务间通信、事件驱动架构和数据分析,提升系统的可伸缩性和可靠性。
40 5