品《阿里巴巴大数据实践-大数据之路》一书(上)

简介: 7月有人推荐阿里巴巴刚出的这本书《阿里巴巴大数据实践-大数据之路》,到亚马逊一看才是预售状态,拍下直到8月才拿到。 翻看目录一看,欢喜的很,正好出差两天就带在身边,由于在机场滞留超过12个小时,就把它读完了。

7月有人推荐阿里巴巴刚出的这本书《阿里巴巴大数据实践-大数据之路》,到亚马逊一看才是预售状态,拍下直到8月才拿到。

8f08d336f513607005b570603aace7cab7e1a7de

翻看目录一看,欢喜的很,正好出差两天就带在身边,由于在机场滞留超过12个小时,就把它读完了。

用“品”字有以下几个原因,一是市面上充斥着太多的大数据平台技术的书,诸如hadoop,spark等占据了大部,但对于如何管好大数据却缺乏真知灼见,二是这本书的确干货很多,诚意实足,明显来自阿里实操人员的经验,从作者是阿里巴巴数据技术与产品部就可知道,三是内容跟笔者的专业相符,里面提到的任何一方面笔者都有实操或管理经验,想来自己有资格去品评这本书,最后,阿里巴巴的数据量在那里,其大数据平台历经考验,突然透露一些技术秘密,对于任何有志于搞大数据的企业或个人,都应该去学习一下。

因此用“品”,不能像看一般的书那样一目十行,要能发现里面的先进理念,结合企业或自身的实际看到差距,从中找到可以借鉴的地方,指导后续的大数据工作。

大数据博大精深,正如这本书也是集体创作一样,受限笔者的水平,读书笔记也只能浮光掠影的走一遭,如果你觉得有启示,可以去买一本,自己来品一品。

首先是一张镇楼图,阿里巴巴的大数据系统的体系架构图,划分为数据采集、数据计算、数据服务及数据应用四层,后面的内容就是围绕这张图展开的,技术含量有多高,大家都懂的,如果读到后面迷失了,可以重新回过头来理解这张图。

063a2c87f0586356f900b0ccea39eb3175859a4b

笔者这里选取的内容,主要是与自身企业对标后感觉有特点的,一般的内容就不提了,当然这仅是笔者的看法,因此建议读完本文后自己去看看原书,不定会获得更多的启示。

一、数据采集

1、线上主动采集工具

阿里巴巴针对web和app端有两个专门的采集工具Aplus.Js和UserTrack,大多传统公司由于长期经营线下,对于web,app等的主动采集能力是偏弱的,一般数据管理部门对于web或app端的采集基本是源端推送过来的文件,对于采集没有实际主导权,内容丰富程度大打折扣,同时无论是web的js脚本还是app的sdk,实际上都是有一定的技术门槛,企业app源端由于受限于合作伙伴的能力,往往采集能力不够,数据质量参差不齐。

互联网源端的日志留存,到底哪些是源端本身的要求,哪些是大数据管理的要求,需要想清楚,大数据管理部门如果想获得更好的数据,是否考虑要往前走一步,毕竟OLAP和OLTP对待数据的角度不一样,人家没必要为你留你所需要的数据。

企业的大数据管理部门,能否适应互联网的新的形式,打破条线分割,在常规的数据库,文本,消息等采集基础上,新增线上的主动采集工具,是巨大的挑战。

当前一些企业提供的企业级大数据采集工具,是缺了这条腿的,以后企业往线上走,这个PaaS能力的确是要具备的。

2、数据同步

阿里巴巴实现了诸如oracle的归档日志的增量采集,应该是比较成熟的,自己企业也采用过类似的OGG技术,虽然可行,但开销很大,新增和存量的合并代价很高, DSG希望能雄起。

现在分库分中心的表越来越多,对于数据同步的配置越加复杂,阿里巴巴的tddl分布式数据库引擎可以通过建立中间逻辑来整合统一分库分表的访问,的确值得借鉴。

很多企业的抽取数据源种类繁多,管理复杂,阿里搞了IDB来实现数据库的统一管理,基于这个元数据能力,在数据同步时,阿里可以采用oneclick来实现数据采集的一健配置和批量化同步,管理的深度和厚度可见一般。

阿里针对数据漂移也给出了解决建议,其实数据漂移问题在每个企业都大量存在,比如运营商计费话单的记录更新时间,日志时间,业务时间和抽取时间往往不一致,这会导致业务的逻辑问题,你可能在上月底12点未到打的电话,业务记录却会在本月的话单里。

二、数据计算

1、MaxCompute离线计算引擎

455d2f908d74b446669ba46214f4c23a0e101917

阿里的MaxCompute离线计算引擎弥补了hadoop的很多缺陷,它提供了一个集成管理方案,包括统一的授权,资源管理,数据控制和权限分配等,并提供一个易用的客户端,支撑Web、SDK、CLT、IDE等4种访问模式,集群数量可以到几万台,安全控制能力加强,这些都是当前很多商用hadoop版本难以做到的。

其计算核心就是网传的飞天内核,包括Pangu(盘古分布式文件系统)、Fuxi(伏羲资源调度系统)、Shennong(神农监控模块)等。

2、统一开发平台

笔者的企业也有这类平台,但跟阿里的还是有差距,它其实是一个工具集,功能更完备,体系化程度更好。

06a7dcef8d49f2d0530a1dad4dad2f817a11b9cb

5c70c57c4cc56d4a5dee4ee7ba9fa4066c7eccc0

(1)在云端(D2)

D2是集成任务开发、调试及发布、生产任务调度及大数据运维,数据权限申请及管理功能的一站式数据开发平台,并能承担数据分析工作台的功能。

这个其实非常类似笔者企业的DACP,但由于DACP要能对接各类源系统,因此底层的逻辑其实更复杂,实施难度更大,而D2基本只要对接MaxCompute,这其实也是自主研发的一个好处,功能可以做的更强大,体验更好,但相对比较封闭。

(2)SQLSCAN

SQLSCAN将在任务开发中遇到的各类问题,如用户编写的SQL质量差、性能低、不遵守规范等,总结形成规则,并通过系统及研发流程保障,事前解决故障隐患,避免时候故障。

这个功能对于将平台推到一线至关重要,我们的DACP在推广过程中,碰到大量的SQL优化问题,但无论是通过培训还是其他方式,其实都远没有系统中固化规则的好,阿里的实践很好,开发平台一定要记住不可能人人都是代码专家,要用系统化的方式解决问题,这是平台能够规模化的一个核心要素。

关于DACP功能过于庞大的问题,笔者其实也明显感觉到了,阿里的关于开发平台拆分为多个产品的一些思路给了启示,这是有利于小步快跑的原则的,为每个模块取不同的名字,也有利于专项资源的投入。

(3)DQC

DQC(数据质量中心)主要关注数据质量,通过配置数据质量校验规则,自动在数据处理任务过程中进行数据质量方面的监控。

其主要有数据监控和数据清洗两大功能,数据监控主要是设置规则并报警,有强规则和弱规则之分,强规则可以阻断任务执行,数据清洗的方式跟我们的大致类似,在引入过程中不进行清洗,入库后,再基于配置的规则进行清洗。

(4)在彼岸

主要将通用的、重复性的操作沉淀在测试平台中,避免人肉,提高测试效率,笔者所在企业的大数据自动化测试虽然也有一些,但功能不够强大,在彼岸的功能包括数据对比(支持不同集群、异构数据库的表做数据对比,比如数据量、字段统计值SUM,AVG等),数据分布等

从阿里的统一开发平台可以看出来,其不仅提供了从任务开发到运维的整套工具,还特别注重体系的完整性和规则的沉淀,这类平台工具实际很难由第三方公司提供,而传统企业除了自身研发力量不够,往往由于业务需求的压力导致在IT这类基础平台层面的研发投入不足,一味靠资源和人力的投入去解决一些其实无解的问题,同时将报表取数人员和产品开发人员混编在一起,造成疲于应对需求的局面,这是值得深思的。

3、实时技术

阿里巴巴基于TimeTunnel来进行实时数据的采集,原理和Kafka等消息中间件类似,采用StreamCompute进行流式处理,跟Storm,Stream也类似,对于实时统计的问题,它提的些方案值得借鉴。

在商业智能统计类实时任务中,对于资源消耗有一类是非常高的,那就是去重指标,实时任务为了追求性能,计算逻辑一般在内存完成,在计算去重时,势必要把去重的明细数据保留下来,当去重的明细数据达到上亿时,内存中放不小,怎么办?

精确去重可以通过数据倾斜来进行处理,把一个节点的内存压力分到多个节点,在模糊去重的前提下,可以采用相关的去重算法,把内存使用量降到千分之一甚至万分之一,布隆过滤器就是一种,其简单来讲就是不保存明细数据,只保留明细数据对应哈希值的标记位,当然会出现哈希值碰撞的情况。

实时任务在运行中会计算很多维度和指标,这些数据如何存呢?由于实时任务大多是多线程处理的,意味着数据存储必须能够较好的支持多并发读写,并且延时需要在毫秒级才能满足实时的性能要求,一般使用Hbase,Tair等列式数据存储系统。

当然诸如HBASE等系统缺点也比较明显,必须使用rowkey, 而rowkey的规则限制了读写的方式,显然没有关系型数据库那么方便,但对于海量数据的实时计算和读写,一般还是适用的,针对HBASE阿里提供了表名和rowkey设计的一些实践经验。

比如rowkey可以采取MD5+主维度+维度标识+字维度+时间维度+子维度2,例如卖家ID的MD5的前四位+卖家ID+app+一级类目+ddd+二级类目ID,以MD5的前四位作为rowkey的第一部分,可以把数据散列,让服务器整体负载均衡,避免热点的问题。

笔者一直觉得对于实时数据是不需要建模的,看来还是太天真了,也许主要是实时应用在当前很多企业场景不多所致,但阿里显然不一样,其实时统计能力至关重要,无论是双11大屏还是阿里的生意参谋,都把实时统计指标作为一个卖点,实时模型跟离线模型的建模理念是一致的,比如阿里的流式模型分为五层,ODS层、DWD层、DWS层、ADS层及DIM层,关于每层的含义在笔者后续的文章中会介绍,这里就不再描述了。

本文简要谈了阿里的数据采集和数据计算,下一篇还会谈到数据服务、数据挖掘、数据建模、数据管理及数据应用等,非常精彩,虽然对于很多企业来讲,这些平台和工具可能过重,但思想是先进的。

对于在做类似产品的大公司或者致力于大数据运营的大企业,则要好好研究一下, 它山之石,可以攻玉。

品《阿里巴巴大数据实践-大数据之路》一书(下)

转自数据同行公众号

阿里巴巴大数据-玩家社区 https://yq.aliyun.com/teams/6/

---阿里大数据博文,问答,社群,实践,有朋自远方来,不亦说乎……

bba01b493e1c5d904e882b1c380673c6ebe49a98

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
分布式计算 算法 搜索推荐
阿里巴巴内部:2022年全技术栈PPT分享(架构篇+算法篇+大数据)
我只截图不说话,PPT大全,氛围研发篇、算法篇、大数据、Java后端架构!除了大家熟悉的交易、支付场景外,支撑起阿里双十一交易1682亿元的“超级工程”其实包括以下但不限于客服、搜索、推荐、广告、库存、物流、云计算等。 Java核心技术栈:覆盖了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。 大数据:Spark、Hadoop
|
6月前
|
数据采集 SQL 搜索推荐
大数据之路:阿里巴巴大数据实践——OneData数据中台体系
OneData是阿里巴巴内部实现数据整合与管理的方法体系与工具,旨在解决指标混乱、数据孤岛等问题。通过规范定义、模型设计与工具平台三层架构,实现数据标准化与高效开发,提升数据质量与应用效率。
大数据之路:阿里巴巴大数据实践——OneData数据中台体系
|
7月前
|
数据采集 存储 大数据
大数据之路:阿里巴巴大数据实践——日志采集与数据同步
本资料全面介绍大数据处理技术架构,涵盖数据采集、同步、计算与服务全流程。内容包括Web/App端日志采集方案、数据同步工具DataX与TimeTunnel、离线与实时数仓架构、OneData方法论及元数据管理等核心内容,适用于构建企业级数据平台体系。
|
7月前
|
分布式计算 监控 大数据
大数据之路:阿里巴巴大数据实践——离线数据开发
该平台提供一站式大数据开发与治理服务,涵盖数据存储计算、任务调度、质量监控及安全管控。基于MaxCompute实现海量数据处理,结合D2与DataWorks进行任务开发与运维,通过SQLSCAN与DQC保障代码质量与数据准确性。任务调度系统支持定时、周期、手动运行等多种模式,确保高效稳定的数据生产流程。
大数据之路:阿里巴巴大数据实践——离线数据开发
|
6月前
|
存储 SQL 分布式计算
大数据之路:阿里巴巴大数据实践——元数据与计算管理
本内容系统讲解了大数据体系中的元数据管理与计算优化。元数据部分涵盖技术、业务与管理元数据的分类及平台工具,并介绍血缘捕获、智能推荐与冷热分级等技术创新。元数据应用于数据标签、门户管理与建模分析。计算管理方面,深入探讨资源调度失衡、数据倾斜、小文件及长尾任务等问题,提出HBO与CBO优化策略及任务治理方案,全面提升资源利用率与任务执行效率。
|
6月前
|
存储 监控 大数据
大数据之路:阿里巴巴大数据实践——事实表设计
事实表是数据仓库核心,用于记录可度量的业务事件,支持高性能查询与低成本存储。主要包含事务事实表(记录原子事件)、周期快照表(捕获状态)和累积快照表(追踪流程)。设计需遵循粒度统一、事实可加性、一致性等原则,提升扩展性与分析效率。
|
存储 分布式计算 大数据
大数据之路:阿里巴巴大数据实践——大数据领域建模综述
数据建模解决数据冗余、资源浪费、一致性缺失及开发低效等核心问题,通过分层设计提升性能10~100倍,优化存储与计算成本,保障数据质量并提升开发效率。相比关系数据库,数据仓库采用维度建模与列式存储,支持高效分析。阿里巴巴采用Kimball模型与分层架构,实现OLAP场景下的高性能计算与实时离线一体化。
|
7月前
|
SQL 缓存 监控
大数据之路:阿里巴巴大数据实践——实时技术与数据服务
实时技术通过流式架构实现数据的实时采集、处理与存储,支持高并发、低延迟的数据服务。架构涵盖数据分层、多流关联,结合Flink、Kafka等技术实现高效流计算。数据服务提供统一接口,支持SQL查询、数据推送与定时任务,保障数据实时性与可靠性。
|
SQL 存储 分布式计算
ODPS技术架构深度剖析与实战指南——从零开始掌握阿里巴巴大数据处理平台的核心要义与应用技巧
【10月更文挑战第9天】ODPS是阿里巴巴推出的大数据处理平台,支持海量数据的存储与计算,适用于数据仓库、数据挖掘等场景。其核心组件涵盖数据存储、计算引擎、任务调度、资源管理和用户界面,确保数据处理的稳定、安全与高效。通过创建项目、上传数据、编写SQL或MapReduce程序,用户可轻松完成复杂的数据处理任务。示例展示了如何使用ODPS SQL查询每个用户的最早登录时间。
1817 1
|
机器学习/深度学习 分布式计算 DataWorks
MaxCompute是由阿里巴巴集团创建的
【7月更文挑战第1天】
350 58

热门文章

最新文章

相关产品

  • 云原生大数据计算服务 MaxCompute