大数据之路阿里巴巴实践
大数据平台研发,全局概览导向。
大家好,我是脚丫先生 (o^^o)
最近一直在看《大数据之路:阿里巴巴大数据实践》一书,读完之后感觉受益良多。
第一,对于整个大数据的体系有了更多且清晰的认知。
第二,对于研发自己的大数据平台有了一个导向之路;
第三,毕竟是阿里多年技术的累计产出,而且都是阿里技术大牛写的,干货相当多;
最后,如果对于大数据方向想有更深入的了解,推荐大家阅读!
对大数据平台方向以及喜欢大数据的小伙们,可以深入研读。
我在自研属于自己的大数据平台,也反复深读该书,非常推荐小伙伴们。
首先,给出了大数据平台体系的整个运行流程,采集->计算->数据服务->数据应用。
其次,针对每一阶段具体的实现方案以及实现技术都进行一一阐述。
最后小伙伴们可以以此为模型建立自己的大数据知识体系,从采集层到应用真正明白大数据整个研发链路。
我抛砖引玉的介绍前面数据采集层,后续的各层,希望小伙伴们继续深度。
一、阿里巴巴大数据系统体系架构
阿里巴巴的大数据系统的体系架构图,划分为数据采集、数据计算、数据服务及数据应用四层,后面的内容就是围绕这张图展开的。
二、 数据采集层
数据采集作为阿里大数据系统体系的第一环尤为重要。因此阿里巴巴建立了一套标准的数据采集体系方案,致力全面、高性能、规范地完成海量数据的采集,并将其传输到大数据平台。
数据采集分为日志采集和数据库数据同步两部分。
2.1 日志采集
阿里巴巴的日志采集体系方案包括两大体系:
Aplus.JS 是 Web端(基于浏览器)日志采集技术方案。
UserTrack 是APP 端(无线客户端)日志采集技术方案。
1、浏览器的页画日志采集
浏览器的页面型产品/服务的日志采集可分为如下两大类。
(1) 页面浏览(展现)日志采集
页面浏览日志是指当一个页面被浏览器加载呈现时采集的日志,此日志主要价值在于两大基本指标:页面浏览量(PV)和访客数(UV)的统计。
(a). 在HTML文档内的适当位置增加一个日子采集节点,但浏览器解析到这个节点时,将自动触发一个特定的HTTP请求到日志采集服务器。
(b). 植入采集脚本的动作可以由服务器在相应业务请求时动态执行,也可以在开发页面时由开发人员手动植入。
©. 采集到日志后大多会立刻将日志发送到日志采集服务器,服务器立即返回成功响应,并将日志存储到日志缓存区。
(d). 顺序读取日志并处理,转存成标准日志文件,加入到实时消息通道供后端程序读取和进一步处理。
(2) 页面交互日志采集
也就是用户行为数据的采集,主要是用户在使用产品过程中,与客户端进行交互过程产生的数据。
(3) 服务器端数据清洗和预处理
上述介绍了阿里巴巴的两类浏览器页面日志的采集方案,并粗略说明了日志到达日志服务器之后的解析处理。但在大部分场合下,经过上述解析处理之后的日志并不直接提供给下游使用,需要进行数据的清洗和预处理。例如:
识别流量攻击、网络爬虫和虚假流量
数据缺项补正
剔除无效数据
基于数据安全和业务特性的日志隔离分发
2、无线客户端的日志采集
无线客户端的日志采集采用采集SDK 来完成,在阿里巴巴内部,多使用名为 UserTrack 的 SDK 来进行无线客户端的日志采集。
无线客户端的日志采集和浏览器的日志采集方式有所不同,移动端的日志采集根据不同的用户行为分成不同的事件,“事件”为无线客户端日志行为的最小单位。
2.2 数据同步
对于大数据系统来说,包含数据从业务系统同步进入数据仓库和数据从数据仓库同步进入数据服务或数据应用两个方面。
源业务系统的数据类型多种多样,有来源于:
(1)关系型数据库的结构化数据,如MySQL Oracle DB2, SQL Server 。
(2)也有来源于非关系型数据库的非结构化数据,如 Ocean Base HBase Mongo DB 等,这类数据通常存储在数据库表中。
(3)还有来源于文件系统的结构化或非结构化据,如阿里云对象存储 oss 、文件存储 NAS 等,这类数据通常以文件形式进行存储。
数据同步需要针对不同的数据类型及业务场景选择不同的同步方式。总的来说,同步方式可以分为三种:
直连同步
数据文件同步
数据库日志解析同步
2.2.1 阿里数据仓库的同步方式
(1) 批量数据同步
数据类型统一采用字符串类型(中间状态),DataX对不同的数据源提供插件,将数据从数据源读出并转换为中间状态存储,传输过程全内存操作,不读写磁盘,也没有进程间通信。
(2) 实时数据同步
通过解析MySQL的binlog日志来实时获得增量的数据更新,并通过消息订阅模式来实现数据的实时同步,
日志数据 ——> 日志交换中心 ——> 订阅了该数据的数据仓库,
针对订阅功能,可以支持主动、被动订阅、订阅端自动负载均衡,数据消费者自己把握消费策略。可以订阅历史数据,随意设置订阅位置,并具有属性过滤功能。
三、获取方式
小伙伴们可以私聊我获取!!!
一起交流大数据平台研发。
四、大数据平台
对于一个数据开发,在完成一项需求时,常见的一个流程是首先要把数据导入到大数据平台中,然后按照需求进行数据开发。
开发完成以后要进行数据验证比对,确认是否符合预期。
接下来是把数据发布上线,提交调度。
最后是日常的任务运维,确保任务每日能够正常产出数据。
大数据平台的概念,就是为了提高数据研发的效率,降低数据研发的门槛,让数据能够在一个设备流水线上快速地完成加工。
是一个能够覆盖数据研发的完整链路的数据工作台。
好了,今天就聊到这里,祝各位终有所成,收获满满!
我是脚丫先生,我们下期见~
更多精彩内容请关注 微信公众号 👇「脚丫先生」🔥:
一枚热衷于分享大数据基础原理,技术实战,架构设计与原型实现之外,还喜欢输出一些个人私活案例。
更多精彩福利干货,期待您的关注 ~
更多推荐
所有评论(0)