大数据之路-阿里巴巴大数据实践
第一章 总述
"人类正在从IT时代走向DT时代",数据量激增,但是如果不能对这些数据进行有序/有结构地分类组织和存储,不能有效利用并发掘它,继而产生价值,那么同时也将成为一场灾难.对阿里来说,数据达到EB级别.双11可达12万笔/秒.
应当建设高效的数据模型体系.
数据体系主要分为:数据采集,数据计算,数据服务和数据应用四大层次.
-
数据采集层:
日志采集:针对Web端的采集技术方案;针对APP端的日志采集技术方案.
业务数据:针对业务数据库的采集方案.
-
数据计算层:
计算层包括两大体系:数据存储及计算云平台(离线平台和实时平台);数据整合及管理体系(OneData-数据整合和管理的方法体系及工具的统称)离线计算主要是以天(包含小时/周/月)为单位,如T-1;实时数据仓库主要对实时性要求较高.
数据分为不同层次:Ods,Dwd,Dws,Ads等
元数据整合及应用是重要的组成部分.包含数据源元数据,数据仓库元数据,数据链路元数据,工具类元数据,数据质量类元数据等.元数据应用主要面向数据发现,数据管理等,如用于存储,计算,成本管理等.
-
数据服务层:
通过接口服务化方式对外提供数据服务.针对不同需求,数据服务层的数据源架构在多种数据库之上,如MySQL和HBase等.数据服务可以使应用对底层透明,将海量数据方便高效地开放给集团内部各应用使用.
数据服务需要在性能,拓展性,稳定性等方面更好服务用户,满足应用各种复杂的数据服务需求,满足高可用等,不断完善.
数据服务层对外提供数据服务主要是通过统一的数据服务平台(OneService)以数仓整合计算好的数据作为数据源,通过对外接口的方式提供数据服务,主要提供简单查询服务,复杂查询服务(承接集团用户识别,用户画像等复杂数据查询服务)和实时数据推送服务三大特色数据服务.
-
数据应用层:
数据已经准备好,需要通过合适的应用提供给用户,让数据最大化发挥价值.包括外部及内部运营等.
第一篇 数据技术篇
第二章 日志采集
-
日志采集主要包括两大体系:Aplus.JS是Web端采集方案;UserTrack是APP端采集方案.
-
Web端采集:包含页面浏览日志(PV页面浏览量,UV访客数)和页面交互日志的采集.
-
无线客户端APP的日志采集:采集SDK,
-
日志传输:Nginx传递到下游,消息队列中.
-
日志采集的挑战:日志分流与定制的处理/采集与计算的一体化设计/高吞吐量保障.
第三章 数据同步
包括从数据从业务系统同步进入数据仓库和数据从数据仓库同步进入数据服务和数据应用两个方面.
3.1 数据同步基础:数据源多种多样,有MySQL等关系型数据库中结构化数据,非关系型数据库的数据如HBase,还有源于文件系统的结构化或非结构化数据.同步方式有直连同步,数据文件同步,数据库日志解析同步.
-
直连同步:JDBC,数据量较大时会影响性能,不推荐.
-
数据文件同步:约定好文件编码,大小,格式等直接从源系统生成数据的 文本文件,由专门的文件服务器传输到目标系统后加载到目标数据库系统中.当数据源包含多个异构的数据库系统时,用这种方式比较简单.日志类数据通常是以文本文件形式存在的,也适合数据文件同步方式.
通过文件服务器上传或下载可能会造成丢包的错误,通常除上传数据文件本身以外,还会上传一个校验文件,记录了数据文件的数据量以及文件大等校验信息,以供下游系统验证数据同步的准确性.还可增加压缩和加密以增加传输效率和安全性.
-
数据库日志解析同步:使用日志信息读取,满足增量数据同步的需求.且数据库日志解析同步实现了实时与准实时同步的能力,延迟可控制在毫秒级别,且对业务系统性能影响也较小.
对于一条同一主键多变化的数据,一般情况下采用不过滤的方式处理,下游通过是否删除记录的标识来判断记录是否有效.另外还有只过滤最后一条删除记录,以及过滤删除流水及之前的流水的方式.
通过数据库日志解析进行同步的方式性能好,效率高,对业务系统影响小.但是存在一些问题: