前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据之如何采集数据

大数据之如何采集数据

原创
作者头像
啦啦啦
修改2018-09-05 10:34:20
1.2K0
修改2018-09-05 10:34:20
举报

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

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

日志采集

根据产品的类型 又有可以分为:

  • 浏览器页面 的日志采集
  • 客户端 的日志采集

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

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

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

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

客户端日志采集: 一般会开发专用统计SDK用于APP客户端的数据采集。

客户端数据的采集,因为具有高度的业务特征,自定义要求比较高,因此除应用环境的一些基本数据以外,更多的是从 “按事件”的角度来采集数据,比如 点击事件、登陆事件、业务操作事件 等等。

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

因为现在越来越多APP采用Hybrid方案,即 H5 与 Native相结合的方式,因此对于日志采集来说,既涉及到H5页面的日志,也涉及到Native客户端上的日志。在这种情况下,可以分开采集分开发送,也可以将数据合并到一起之后再发送。

常规情况下是推荐将 H5上的数据往Native上合并,然后通过SDK统一的发送。这样的好处是 既可以保证采集到的用户行为数据在行为链上是完整的,也可以通过SDK采取一些压缩处理方案来减少日志量,提高效率。

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

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

数据源数据同步

根据同步的方式 可以分为:

  • 直接数据源同步
  • 生成数据文件同步
  • 数据库日志同步

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

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

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 日志采集
  • 数据源数据同步
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档