《大数据之路:阿里巴巴大数据实践》第一篇 数据技术篇-读书笔记

目录

2.日志采集

2.1 浏览器的页面日志采集

2.2 无线客户端的日志采集

2.3 日志采集的挑战案例

3.数据同步

3.1 数据同步基础

3.2 数据同步策略

3.2.1 批量数据同步

3.2.2 实时数据同步

3.3 数据同步问题

3.3.1 分库分表处理

3.3.2 高效同步和批量同步

3.3.3 增量与全量同步的合并

3.3.4 数据同步性能

3.3.5 数据漂移

4.离线数据开发

4.1 统一计算平台

4.2 统一开发平台

4.3 任务调度系统

4.4 特点

5.实时技术

5.1 流式技术架构

5.1.1 数据采集

5.1.2 数据处理

5.1.3 数据存储

5.2 流式数据模型

5.2.1 数据分层

5.2.2 多流关联

6.数据服务

6.1 服务架构演进

6.1.1 DWSOA

6.1.2 OpenAPI

6.1.3 SmartDQ

6.1.4 OneService

6.2 性能优化

6.2.1 资源分配

6.2.2 缓存优化

6.2.3 查询能力

7.数据挖掘


一、数据技术篇

2.日志采集

本章主要介绍数据采集中的日志采集部分,阿里巴巴的日志采集体系方案包括两大体系:

  • Aplus.JS是Web端( 基于浏览器)日志采集技术方案;

  • UserTrack是APP端(无线客户端)日志采集技术方案。

本章从浏览器的页面日志采集、无线客户端的日志采集以及我们遇到的日志采集挑战三块内容来阐述阿里巴巴的日志采集经验。

2.1 浏览器的页面日志采集

(1)页面浏览(展现)日志采集

    顾名思义,页面浏览日志是指当一个页面被浏览器加载呈现时采集的日志。此类日志是最基础的互联网日志,也是目前所有互联网产品的两大基本指标:页面浏览量(Page View,PV)和访客数(UniqueVisitors,UV)的统计基础。页面浏览日志是目前成熟度和完备度最高,同时也是最具挑战性的日志采集任务,我们将重点讲述此类日志的采集。

(2)页面交互日志采集

    当页面加载和渲染完成之后,用户可以在页面上执行各类操作。随着互联网前端技术的不断发展,用户可在浏览器内与网页进行的互动已经丰富到只有想不到没有做不到的程度,互动设计都要求采集用户的互动行为数据,以便通过量化获知用户的兴趣点或者体验优化点。交互日志采集就是为此类业务场景而生的。

    除此之外,还有一些专门针对某些特定统计场合的日志采集需求,如专门采集特定媒体在页面被曝光状态的曝光日志、用户在线状态的实时监测等,但在基本原理上都脱胎于上述两大类。

2.2 无线客户端的日志采集

    众所周知,日志采集多是为了进行后续的数据分析。

    移动端的数据采集,一是为了服务于开发者,协助开发者分析各类设备信息;二是为了帮助各APP更好地了解自己的用户,了解用户在APP上的各类行为,帮助各应用不断进行优化,提升用户体验。

    无线客户端的日志采集采用采集SDK来完成,在阿里巴巴内部,多使用名为UserTrack的SDK来进行无线客户端的日志采集。无线客户端的日志采集和浏览器的日志采集方式有所不同,移动端的日志采集根据不同的用户行为分成不同的事件,“事件”为无线客户端日志行为的最小单位。基于常规的分析,UserTrack(UT)把事件分成了几类,常用的包括页面事件(同前述的页面浏览)和控件点击事件(同前述的页面交互)等。

    对事件进行分类的原因,除了不同事件的日志触发时机、日志内容和实现方式有差异之外,另一方面是为了更好地完成数据分析。在常见的业务分析中,往往较多地涉及某类事件,而非全部事件;故为了降低后续处理的复杂性,对事件进行分类尤为重要。要更好地进行日志数据分析,涉及很多方面的内容,如需要处理Hybrid应用,实现H5和Native日志的统一;又如识别设备,保证同一设备上各应用获取到的设备信息是唯一的。除此之外,对于采集到的数据如何上传,以及后续又如何合理处理等,每个过程都值得我们进行深入的研究和探索。

2.3 日志采集的挑战案例

    对于目前的互联网行业而言,互联网日志早已跨越初级的饥饿阶段(大型互联网企业的日均日志收集量均以亿为单位计量),反而面临海量日志的淹没风险。各类采集方案提供者所面临的主要挑战已不是日志采集技术本身,而是如何实现日志数据的结构化和规范化组织,实现更为高效的下游统计计算,提供符合业务特性的数据展现,以及为算法提供更便捷、灵活的支持等方面。

    这里介绍两个最典型的场景和阿里巴巴所采用的解决方案。

  • 日志分流与定制处理

  • 采集与计算一体化设计

3.数据同步

3.1 数据同步基础

    数据同步的三种方式:

  • 数据直抽。

  • 数据文件同步。

  • 数据库日志解析同步。

3.2 数据同步策略

3.2.1 批量数据同步

  • 数据类型统一采用字符串类型(中间状态)。

  • DataX对不同的数据源提供插件,将数据从数据源读出并转换为中间状态存储。

  • 传输过程全内存操作,不读写磁盘,也没有进程间通信。

3.2.2 实时数据同步

  • 通过解析MySQL的binlog日志来实时获得增量的数据更新,并通过消息订阅模式来实现数据的实时同步。

  • 日志数据——> 日志交换中心——> 订阅了该数据的数据仓库。

  • 针对订阅功能,可以支持主动、被动订阅,订阅端自动负载均衡。数据消费者自己把握消费策略。可以订阅历史数据,随意设置订阅位置。并具有属性过滤功能。

3.3 数据同步问题

3.3.1 分库分表处理

    建立了一个中

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员学习圈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值