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

目录

一、数据采集:

页面浏览量 Page View PV

交互日志

清洗和预处理

 app日志:

二、数据同步

同步:

三、离线数据

客户端:

逻辑层:

D2:

SQLSCAN:

DQC:

在彼岸:

任务调度系统

四、实时技术

流式技术框架:

实时采集:

数据处理:

数据存储:

流式数据模型:

数据分层:

多流关联:

 维表使用:


数据爆炸式增长,采集、储存、计算,挑战。

数据计算

离线计算、实时计算,构建统一、规范、可共享。

从数据计算频率角度分为:

离线数据仓库 T+1

实时数据仓库

数据加工链路分层:

1、操作ODS

2、明细DWD

3、汇总DWS

4、应用ADS

数据服务

以整合计算好的数据作为数据源,对外通过接口的方式提供数据服务。

数据应用

通过合适的应用提供给用户。

一、数据采集

AplusJS web端;UserTrack app端。

页面浏览量 Page View PV

是最原始的要求,HTTP协议:

用户键入、浏览器发出HTTP请求、服务器返回HTTP相应、浏览器解析

浏览器开始解析文档时,才时开始进行采集日志的最好时机。

HTML文档埋点,请求日志采集服务器。

交互日志

无法统一规定采集内容

埋点, 采集代码和业务代码一同触发

接收日志后一般不做解析,直接转存,可由业务方按需解析,并可与正常的PV日志关联运算。

清洗和预处理

原因:

1.虚假、恶意流量日志,合法性校验,是长期艰苦的对抗过程

2.缺项补正,标准化,如登录后对登陆前做身份信息回补。

3.无效数据

4.数据安全,需预先隔离

 app日志:

采集sdk实现

鼓励在客户端聚合

设备标识:

对于登录用户,用户ID;对于未登录,PC Cookie   APP 还是一个需要攻克的难题。

二、数据同步

不同系统中的数据流转

1.同步直连        2.数据文件        3.解析

同步:

1.离线类型的数据仓库,定时同步到业务系统。

2.实时,持久化到HBase,

当天增量,前一天的全量,合并

三、离线数据

Maxcompute 统一的计算平台

离线数据仓库的存储和计算:数据导入、分布式计算、海量数据仓库、海量数据计算。

不同场景的各种计算任务统一到同一个平台上,共享,统一,提供数据上传/下载通道、 SQL MapReduce 、机器学习算法 图编程模和流式计算模型多种计算分析服务,并且提供完善的安全解决方案。

客户端、接入层、逻辑层、存储与计算层

客户端:

web、sdk、CLT、IDE

逻辑层:

worker、scheduler、executor

D2:

任务开发、调试、发布,生产任务调度,大数据运维,数据权限申请、管理,数据分析工作台

1.创建计算节点

2.节点进入开发环境,成为工作流

3.发布,成为线上生产链路的一环。

SQLSCAN:

提交代码时,触发SQLSCAN检查,

DQC:

Data Quality Center 数据质量中心

数据监控:报警接收人判断并决定如何处理

数据清洗:不符合既定规则的数据清洗掉,非侵入式,ODS后入仓后揿动清洗任务。

在彼岸:

功能测试,数据是否符合预期

任务调度系统

指挥系统,各类任务相互依赖,有向无环

四、实时技术

特点:时效性高、常驻进程、性能要求高、时序局限性

离线:T-N,延迟粒度为天

准实时:H-N,小时

实时:当前,秒

离线和准实时都可在批处理系统实现,如Hadoop

实时需要在流式处理系统中

流式技术框架:

数据采集、数据处理、数据存储、数据服务。

实时采集:

数据库变更日志、比如mysql的binlog日志,HBase的hlog日志、

引擎访问日志,Apache引擎日志、搜索引擎

是业务服务器上的文件,本质是监控文件的内容变化。按批次:数据大小、时间阈值,其中之一达到,则作为一批新的数据采集到数据中间件中。

批次采集频繁,可降低延时,但会降低吞吐量。

数据中间件有:kafka、MetaQ、Notify等消息系统

数据处理:

Strom、S4、Spark Streaming、Flink、StreamCompute

实时数据处理应用的计算任务一般是多线程的。根据主键分桶处理。

去重指标:明细数据达几亿或几十亿的时候,内存放不下了的情况。分情况:

1.精确去重:数据倾斜,对去重值进行分桶Hash

2.模糊去重:布隆过滤器(明细数据的哈希值)、基数估计

事务处理:

系统不稳定导致失败,数据自动ACK、失败重发、事务信息。

数据存储:

中间计算结果、最终计算结果、维表数据

实时任务是多线程的,所以数据库存储系统必须支持多并发读写,且为毫秒级延时。所以一般使用HBase、Tair、MongoDB等列示存储系统。没有关系型数据库方便,但可以存储海量数据。

流式数据模型:

数据分层:

ODS层:从业务系统采集过来的最原始数据,和离线应一致。

DWD层:数据明细层

DWS层:订阅明细层的数据后,会在实时系统中计算出各个维度的汇总指标。各个业务线共用的

ADS层:个性化维度汇总层,一些创新业务

DIM层:实时维表层,基本都是从离线维表层导出来的,供实时应用调用的。

多流关联:

流式计算是增量过程,数据到达时间是不确定和无序的。涉及中间状态的保存和恢复机制。

 维表使用:

在实时计算中,关联维表一般会使用当前的实时数据T去关联T-2的维表数据。原因:

1.数据无法及时准备好

2.无法获取全量的最新数据

3.数据的无序

大促保障

1.独占资源和共享资源的策略

2.合理选择缓存机制,降低读写库次数

3.降低拓扑层级

4.内存对象共享

5.高吞吐量和低延时取平衡

单个结点故障时常态,需要对整个链路进行多链路搭建。多机房容灾,异地容灾。

五、数据服务

SOA

开发效率不高、维护成本高 

API

将数据按照其统计粒度进行聚合,同样维度的数据采用相同的接口。

如:会员为中心的数据做成一张宽表,只要是查询会员粒度的数据,仅需要调用会员接口即可。

SQL(一些限制和特殊增强)

业务方通过写SQL的方式对外提供服务。

只需关心逻辑表的结构,无需关系底层物理表结构、来源、是否分库分表。

只能满足简单的查询

逻辑表到物理表的映射,自底向上:数据源、物理表、逻辑表、主题

数据的主要来源:a、实时计算结果写入HBase  b、同步离线数据到查询库

平台化

微服务,Docker做隔离。

WebSocket

提供数据服务的核心引擎,数据服务者根据规范快速创建服务、发布服务、监控、下线。

数据建模

适合业务 和基础数据存储环境的模型,好处:性能、成本、效率、质量
OLTP 系统通 常面向的主要数据操作是随机读写
OLAP 系统面向的 主要数据操作是批量读写

ER模型

实体关系(Entity Relationship)

需要全面了解企业业务和数据

实施周期非常长

对建模人员的能力要求非常高

高层模型、中层模型、物理模型

维度模型

从分析决策的需求出发构建模型

星形模型、雪花模型

设计步骤:

1.需要进行分析决策的业务过程

2.粒度        3.维表        4.事实

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值