《大数据之路:阿里巴巴大数据实践》系列丛书

 第1章 总述

第1篇 数据技术篇
 第2章 日志釆集
 第3章 数据同步
 第4章 离线数据开发
 第5章 实时技术
 第6章 数据服务
 第7章 数据挖掘
第2篇 数据模型篇
 第8章 大数据领域建模综述
 第9章 阿里巴巴数据整合及管理体系
 第10章 维度设计
 第11章事实表设计
第3篇数据管理篇
 第12章 元数据
 第13章 计算管理
 第14章 存储和成本管理
 第15章 数据质量
第4篇数据应用篇
 第16章 数据应用


文章目录

  • 《大数据之路:阿里巴巴大数据实践》系列丛书
  • 第14章 存储和成本管理
    • 14.1数据压缩
    • 14.2 数据重分布
    • 14.3 存储治理项优化
    • 14.4 生命周期管理
      • 14.4.1 生命周期管理策略
      • 14.4.2 通用的生命周期管理矩阵
    • 14.5 数据成本计量
    • 14.6 数据使用计费

第14章 存储和成本管理

  在大数据时代,移动互联、社交网络、数据分析、云服务等应用迅 速普及,对数据中心提出了革命性的需求,存储管理已经成为IT核心 之一。对于数据爆炸式的增长,存储管理也将面临着一系列挑战。如何 有效地降低存储资源的消耗,节省存储成本,将是存储管理孜孜追求的 目标。本章主要从数据压缩、数据重分布、存储治理项优化、生命周期 管理等的角度介绍存储管理优化。

14.1数据压缩

  在分布式文件系统中,为了提高数据的可用性与性能,通常会将数 据存储3份,这就意味着存储1TB的逻辑数据,实际上会占用3TB的 物理空间。目前MaxCompute中提供了 archive压缩方法,它采用了具 有更高压缩比的压缩算法,可以将数据保存为RAID file的形式,数据 不再简单地保存为3份,而是使用盘古RAID file的默认值(6,3)格式 的文件,即6份数据+3份校验块的方式,这样能够有效地将存储比约为1:3提高到1:1.5,大约能够省下一半的物理空间。当然,使用archive 压缩方式也有一定的风险,如果某个数据块出现了损坏或者某台机器宕 机损坏了,恢复数据块的时间将要比原来的方式更长,读的性能会有一 定的损失。因此,目前一般将archive压缩方法应用在冷备数据与日志 数据的压缩存储上。例如,一些非常大的淘系日志数据,底层数据超过 一定的时间期限后使用的频率非常低,但是又是属于不可恢复的重要数 据,对于这部分数据就可以考虑对历史数据的分区进行archive压缩, 使用RAID file来存储,以此来节省存储空间。示例如下:

14.2 数据重分布

  在MaxCompute中主要采用基于列存储的方式,由于每个表的数据 分布不同,插入数据的顺序不一样,会导致压缩效果有很大的差异,因 此通过修改表的数据重分布,避免列热点,将会节省一定的存储空间。 目前我们主要通过修改distribute by和sort by字段的方法进行数据重分 布,如图14.1所示。

  数据重分布效果的波动比较大,这主要跟数据表中字段的重复值、 字段本身的大小、其他字段的具体分布有一定的关系,一般我们会筛选 出重分布效果高于15%的表进行优化处理。
  重分布前后一些底层大表的效果对比如表14.2所示。

14.3 存储治理项优化

  阿里巴巴数据仓库在资源管理的过程中,经过不断地实践,慢慢摸 索出一套适合大数据的存储优化方法,在元数据的基础上,诊断、加工 成多个存储治理优化项。目前已有的存储治理优化项有未管理表、空表、 最近62天未访问表、数据无更新无任务表、数据无更新有任务表、开 发库数据大于100GB且无访问表、长周期表等。通过对该优化项的数 据诊断,形成治理项,治理项通过流程的方式进行运转、管理,最终推 动各个ETL开发人员进行操作,优化存储管理,并及时回收优化的存 储效果。在这个体系下,形成现状分析、问题诊断、管理优化、效果反 馈的存储治理项优化的闭环。通过这个闭环,可以有效地推进数据存储 的优化,降低存储管理的成本。
  存储治理项优化的主要流程如图14.2所示。

14.4 生命周期管理

  MaxCompute作为阿里巴巴集团的大数据计算及服务引擎,存储着 阿里系大量且非常重要的数据,从数据价值及数据使用性方面综合考虑, 数据的生命周期管理是存储管理的一项重要手段。生命周期管理的根本 目的就是用最少的存储成本来满足最大的业务需求,使数据价值最大化。

14.4.1 生命周期管理策略

1.周期性删除策略
  所存储的数据都有一定的有效期,从数据创建开始到过时,可以周 期性删除X天前的数据。例如对于MySQL业务库同步到MaxCompute 的全量数据,或者ETL过程产生的结果数据,其中某些历史数据可能 已经没有价值,且占用存储成本,那么针对无效的历史数据就可以进行 定期清理。
2.彻底删除策略
  无用表数据或者ETL过程产生的临时数据,以及不需要保留的数 据,可以进行及时删除,包括删除元数据。
3.永久保留策略
  重要且不可恢复的底层数据和应用数据需要永久保留。比如底层交 易的增量数据,出于存储成本与数据价值平衡的考虑,需要永久保留, 用于历史数据的恢复与核查。
4.极限存储策略
  极限存储可以超高压缩重复镜像数据,通过平台化配置手段实现透明 访问,缺点是对数据质量要求非常高,配置与维护成本比较高,建议一个 分区有超过5GB的镜像数据(如商品维表、用户维表)就使用极限存储。
5.冷数据管理策略
  冷数据管理是永久保留策略的扩展。永久保留的数据需要迁移到冷 数据中心进行永久保存,同时将MaxCompute中对应的数据删除。一般 将重要且不可恢复的、占用存储空间大于100TB,且访问频次较低的数 据进行冷备,例如3年以上的日志数据。
6.增量表merge全量表策略
  对于某些特定的数据,极限存储在使用性与存储成本方面的优势不 是很明显,需要改成增量同步与全量merge的方式,对于对应的delta 增量表的保留策略,目前默认保留93天。例如,交易增量数据,使用 订单创建日期或者订单结束日期作为分区,同时将未完结订单放在最大 分区中,对于存储,一个订单在表里只保留一份;对于用户使用,通过 分区条件就能查询某一段时间的数据。

14.4.2 通用的生命周期管理矩阵

  随着业务的发展和不断的数据实践,我们慢慢摸索出一套适合大数 据生命周期管理的规范,主要通过对历史数据的等级划分与对表类型的 划分生成相应的生命周期管理矩阵。

1.历史数据等级划分
  目前我们对历史数据进行了重要等级的划分,主要将历史数据划分 为PO、Pl、P2、P3四个等级,其具体定义如下。

  • P0:非常重要的主题域数据和非常重要的应用数据,具有不可恢 复性,如交易、日志、集团KPI数据、IPO关联表。
  • P1:重要的业务数据和重要的应用数据,具有不可恢复性,如重 要的业务产品数据。
  • P2:重要的业务数据和重要的应用数据,具有可恢复性,如交易 线ETL产生的中间过程数据。
  • P3:不重要的业务数据和不重要的应用数据,具有可恢复性,如 某些SNS产品报表。

2.表类型划分
  (1)事件型流水表(增量表)
  事件型流水表(增量表)指数据无重复或者无主键数据,如日志。
  (2)事件型镜像表(增量表)
  事件型镜像表(增量表)指业务过程性数据,有主键,但是对于同 样主键的属性会发生缓慢变化,如交易、订单状态与时间会根据业务发 生变更。
  (3)维表
  维表包括维度与维度属性数据,如用户表、商品表。
  (4)Merge全量表
  Merge全量表包括业务过程性数据或者维表数据。由于数据本身有新增的或者发生状态变更,对于同样主键的数据可能会保留多份,因此 可以对这些数据根据主键进行Merge操作,主键对应的属性只会保留最 新状态,历史状态保留在前一天分区中。例如,用户表、交易表等都可 以进行Merge操作。
  (5)ETL临时表
  ETL临时表是指ETL处理过程中产生的临时表数据,一般不建议 保留,最多7天。
  (6)TT临时数据
  TT拉取的数据和DbSync产生的临时数据最终会流转到ODS层, ODS层数据作为原始数据保留下来,从而使得TT&DbSync上游数据成 为临时数据。这类数据不建议保留很长时间,生命周期默认设置为93 天,可以根据实际情况适当减少保留天数。
  (7)普通全量表
  很多小业务数据或者产品数据,BI 一般是直接全量拉取,这种方 式效率快,对存储压力也不是很大,而且表保留很长时间,可以根据历 史数据等级确定保留策略。
  通过上述历史数据等级划分与表类型划分,生成相应的生命周期管 理矩阵,如表14.3所示。
  MaxCompute集群中海量数据的存储和大量计算任务每天都会消耗 巨额成本,并且随着数据量的不断增长,这个成本还在逐步增加。如何 在服务好业务的前提下,更好地管控数据成本,提升资源利用率,已成 为数据资产管理工作中非常重要的一环。
  在阿里巴巴集团内部,大部分数据都会存储在MaxCompute集群 上,数据以数据表的形式存在,并且数据表之间存在比较复杂的关联和 上下游依赖关系。可以把数据表之间的依赖关系用树形结构形象化地表 示,如图14.3所示。图中的A、B、C等代表不同的数据表,带箭头的 连线代表数据表之间的依赖和关联关系。比如数据表B、C、D都依赖 数据表A,数据表E依赖数据表B和C。

  MaxCompute中的任何一个计算任务都会涉及计算和存储资源的消 耗,其中计算资源的消耗主要考虑CPU消耗。为了下面更好地描述数 据计量计费的算法和规则,特做如下定义:CPU消耗的单位定义为CU, 代表CPU的一个核心(Core)运行一天的消耗量。存储资源的消耗主 要考虑磁盘存储的消耗,这里采用国际通用的存储单位PB来衡量。例 如:计算资源的单价为1元/CU,存储资源的单价为1元/PB天。

14.5 数据成本计量

  对数据成本的计量,可以采用最简单的方式,将一个数据表的成本 分为存储成本和计算成本。存储成本是为了计量数据表消耗的存储资 源,计算成本是为了计量数据计算过程中的CPU消耗。但是,对这样 的数据成本计量方式会存在较大的质疑和挑战。例如,如图14.4所示, 表D是业务方的一个数据表,表D依赖表C,但是为了产生表C,往 往上面存在一个较长的数据刷新链路。表C的成本可能是10元,但是 表A、B可能会是100元。像这样的情况,如果表C的成本仅仅用数据 表C自身的存储和计算成本衡量显然是不合理、不准确的。

图14.4数据刷新链路示意图
  因此,在计量数据表的成本时,除考虑数据表本身的计算成本、存 储成本外,还要考虑对上游数据表的扫描带来的扫描成本。我们将数据 成本定义为存储成本、计算成本和扫描成本三个部分。
  通过在数据成本计量中引入扫描成本的概念,可以避免仅仅将表自 身硬件资源的消耗作为数据表的成本,以及对数据表成本进行分析时, 孤立地分析单独的一个数据表,能够很好地体现出数据在加工链路中的 上下游依赖关系,使得成本的评估尽量准确、公平、合理。

14.6 数据使用计费

  在上一节中,已经清楚地将数据成本分为:存储成本、计算成本和 扫描成本。那么对于数据表的使用计费,在阿里巴巴集团内部,分别依 据这三部分成本进行收费,称为:计算付费、存储付费和扫描付费。
  我们把数据资产的成本管理分为数据成本计量和数据使用计费两 个步骤。通过成本计量,可以比较合理地评估出数据加工链路中的成本, 从成本的角度反映岀在数据加工链路中是否存在加工复杂、链路过长、 依赖不合理等问题,间接辅助数据模型优化,提升数据整合效率;通过 数据使用计费,可以规范下游用户的数据使用方法,提升数据使用效率, 从而为业务提供优质的数据服务。

《大数据之路:阿里巴巴大数据实践》-第3篇 数据管理篇 -第14章 存储和成本管理相关推荐

  1. 读《大数据之路-阿里巴巴大数据实践》数据模型篇笔记

    读<大数据之路-阿里巴巴大数据实践>数据模型篇 七 建模综述 OLTP 面向数据 随机读写 3NF OLAP 批量读写 不关注一致性更关心数据整合 ER模型–衍生出dataVault 维度 ...

  2. 《大数据之路 阿里巴巴大数据实践》笔记

    此书下载传送门http://www.java1234.com/a/javabook/yun/2018/0308/10578.html 第1章 总述 阿里巴巴大数据系统体系主要分为,数据采集.数据计算. ...

  3. 大数据之路 阿里巴巴大数据实践 读书笔记

    一 .总述 人类正在从IT时代走向DT时代.现在的数据呈爆炸式增长,其潜在的巨大价值有待发掘.但是如果不对数据进行有序.有结构的分类组织和存储,它将变成一场灾难. 在阿里内部,数据的存储达到EB级别. ...

  4. 《大数据之路-阿里巴巴大数据实践》读书笔记

    ps:这本书主讲阿里的大数据体系架构方案,从底层到高层阐述,目前对我来说此书的难度较大,不是很懂,大部分为对原书的引用归纳,我会给出相应的大牛的关于此书的读书笔记的传送门供参考.以下为大牛关于本书的读 ...

  5. 大数据之路——阿里巴巴大数据实践:总述

    阿里巴巴大数据系统架构图: Aplus.JS是web端日志采集技术 UserTask是APP端日志采集技术 TimeTunel(TT)是一个实时消息处理平台,类似于kafka+storm DataX是 ...

  6. 《大数据之路-阿里巴巴大数据实践》第一章 总述

  7. 【大数据之路】数据管理篇 《三》存储和成本管理 【搬运小结】

    文章目录 [大数据之路]数据管理篇 <三>存储和成本管理 1.1数据压缩 1.2存储治理项优化 1.3生命周期管理 1.3.1 生命周期管理策略 1.3.2 生命周期管理策略 1.4数据成 ...

  8. 【手把手教你如何从Tushare库下载股票数据,并保存在硬盘当中,第一篇数据过滤】

    手把手教你如何从Tushare库下载股票数据,并保存在硬盘当中.第一篇数据过滤 前言 一.Tushare是什么? 二.代码 1.引入库 2.交易日的逻辑 3.先把每天个股的基础数据调出来 3.接下来我 ...

  9. 阿里首度公开大数据系统架构《大数据之路:阿里巴巴大数据实践》来了

    絮絮叨叨了很久,说阿里数据要出书.每天被催,什么时候写好,什么时候出版.终于,千呼万唤始出版了!!!! 点击阅读详情,即刻试读!!! 曾鸣教授作序 CSDN.ChinaUnix.ITPUB.segme ...

  10. 阿里巴巴大数据实践-读书笔记

    7月份,阿里的数据技术及产品部的同学们出了一本书,大数据之路-阿里巴巴大数据实践,号称全面系统的介绍了阿里巴巴的大数据系统架构. 这很好,阿里的同学们在对外交流这一块,感觉管得是越来越严了,加上人多部 ...

最新文章

  1. gg.gap:ggplot阶截断坐标轴的优秀完美解决方案
  2. java反射的性能问题
  3. OpenCV中OpponentColorDescriptorExtractor
  4. cannot import name UnrewindableBodyError
  5. springmvc 全局编码_SpringMVC请求参数和响应结果全局加密和解密
  6. 机器学习--用朴素贝叶斯分类法辨别男女声音
  7. IE6利用iframe遮挡 弹层 select
  8. VC程序运行时间测试
  9. 第四季-专题10-字符设备驱动模型
  10. Oracle P6培训系列:03设置用户设置
  11. NfcA/NfcB/NfcF/NfcV/IsoDep/Ndef/Mifare/Felica/Pboc/ISOxxxx 标签格式及标准
  12. 翻译软件Bob安装教程
  13. linux下创建桌面快捷方式,简单快捷(ubuntu)
  14. 使用LibreOffice将office文档转pdf(java实现)
  15. 基于神经网络的毕设题目_《基于神经网络的图像识别方法研究》毕业设计方案.pdf...
  16. 2021-03-15
  17. 这个牛逼哄哄的数据库开源了
  18. C语言课题1:猜数字游戏【从基础开始手把手教你】
  19. 吃内存狂魔?微信官方工具来了:深度清理缓存
  20. 应用JavaFX实现的填字游戏

热门文章

  1. U盘装系统工具哪个好用?
  2. FileSplit:文件的子集--文件分割体
  3. 鼎利5G测试软件不显示信息,鼎利软件应用 - 4G/5G - 通信人家园 - Powered by C114
  4. 思科vrrp实例_VRRP配置及多备份VRRP配置实例
  5. Visual Studio Qt vs tools 下载教程及加速教程
  6. 使用活字格制作企业办公用品管理软件
  7. 地图的文字注记的制作和优化
  8. 微信内置浏览器 用 JS 调用微信APP分享到微信朋友圈
  9. Html控制舵机,舵机速度控制原理细解
  10. 微型计算机系统性能优化及测试,第八章 微型计算机系统的测试、优化和升级.doc...