大数据之数据采集

大数据之数据采集

大数据体系通常分为:数据采集、数据计算、数据服务、以及数据应用 几大层次。数据库

在数据采集层,主要分为 日志采集 和 数据源数据同步。浏览器

日志采集

根据产品的类型 又有能够分为: 
- 浏览器页面 的日志采集 
- 客户端 的日志采集 

安全

浏览器页面采集: 
主要是收集页面的 浏览日志(PV/UV等) 和 交互操做日志(操做事件)。服务器

这些日志的采集,通常是在页面上植入标准的统计JS代码来进执行。但这个植入代码的过程,能够在页面功能开发阶段由开发同窗手动写入,也能够在项目运行的时候,由服务器在相应页面请求的时候动态的植入。微信

事实上,统计JS在采集到数据以后,能够当即发送到数据中心,也能够进行适当的汇聚以后,延迟发送到数据中心,这个策略取决于不一样场景的需求来定。markdown

页面日志在收集上来以后,须要在服务端进行必定的清晰和预处理。 
好比 清洗假流量数据、识别攻击、数据的正常补全、无效数据的剔除、数据格式化、数据隔离等。post

客户端日志采集: 
通常会开发专用统计SDK用于APP客户端的数据采集。性能

客户端数据的采集,由于具备高度的业务特征,自定义要求比较高,所以除应用环境的一些基本数据之外,更多的是从 “按事件”的角度来采集数据,好比 点击事件、登录事件、业务操做事件 等等。区块链

基础数据可由SDK默认采集便可,其它事件由业务侧来定义后,按照规范调用SDK接口。大数据

由于如今愈来愈多APP采用Hybrid方案,即 H5 与 Native相结合的方式,所以对于日志采集来讲,既涉及到H5页面的日志,也涉及到Native客户端上的日志。在这种状况下,能够分开采集分开发送,也能够将数据合并到一块儿以后再发送。

常规状况下是推荐将 H5上的数据往Native上合并,而后经过SDK统一的发送。这样的好处是 既能够保证采集到的用户行为数据在行为链上是完整的,也能够经过SDK采起一些压缩处理方案来减小日志量,提升效率。

APP上的数据采集,还有一点比较重要的就是惟一ID了,全部的数据都必须跟惟一ID相关联,才能起到更好的分析做用,至于移动设备惟一ID我在上一篇文章中有详细讲到。 

日志收集,还有很重要的一条原则就是 “标准化”、“规范化”,只有采集的方式标准化、规范化,才能最大限度的减小收集成本,提升日志收集效率、更高效的实现接下来的统计计算。

数据源数据同步

根据同步的方式 能够分为: 
- 直接数据源同步 
- 生成数据文件同步 
- 数据库日志同步 

直接数据源同步: 
是指直接的链接业务数据库,经过规范的接口(如JDBC)去读取目标数据库的数据。这种方式比较容易实现,可是若是业务量比较大的数据源,可能会对性能有所影响。

生成数据文件同步: 
是指从数据源系统现生成数据文件,而后经过文件系统同步到目标数据库里。 
这种方式适合数据源比较分散的场景,在数据文件传输先后必须作校验,同时还须要适当进行文件的压缩和加密,以提升效率、保障安全。

数据库日志同步: 
是指基于源数据库的日志文件进行同步。如今大多数数据库都支持生成数据日志文件,而且支持用数据日志文件来恢复数据。所以可使用这个数据日志文件来进行增量同步。 
这种方式对系统性能影响较小,同步效率也较高。 

数据采集自己不是目的,只有采集到的数据是可用、能用,且能服务于最终应用分析的数据采集才是根本。


本文原创发布于微信公众号「 bzsikao 」,欢迎关注,交流更多的 互联网认知、工做管理、大数据、Web、区块链技术。

相关文章
相关标签/搜索