相信大家对大数据分析应该都很熟悉,从各种信息途径(网文/广告/技术类刊物等)都可以获取到,在互联网上,也可以找到各类的大数据分析平台(如神策/诸葛IO/网易有数等),也有提供独立部署的数据服务公司(易观数科等),这些平台或公司以数据分析为输出,通过【数据接入(数据采集)】,让使用者(企业)将数据导入到平台上,依靠平台已经实现的算法/组合规则,为使用者(企业)提供结果数据展示/导出等功能服务。今天的早会,简单介绍下大数据的数据来源 - 数据采集的方式(数据接入的方式)。
随着大数据时代的来临,要想大数据被更好地认识和使用,从中提炼有价值的情报作为企业的数据资产,就需要进行大数据分析。通过大数据的分析,洞察产品应用场景、挖掘客户痛点、设计产品价值;通过用户行为偏好、购买习惯,来源渠道/媒体,构造用户画像,挖掘潜在客户。要想达到数据分析的价值,就要收集企业的各种类型的数据,将数据接入到大数据的数据仓库中,以备分析。
大数据处理关键技术一般包括:大数据采集、大数据预处理、大数据存储及管理、大数据分析及挖掘、大数据展现和应用(大数据检索、大数据可视化、大数据应用、大数据安全等)。下面主要介绍下大数据采集。
大数据数据流转图
大数据的主要数据来源有商业数据、互联网数据、传感器数据等,也可以分为线上行为数据(页面数据、交互数据、表单数据、会话数据等)和内容数据(应用日志、电子文档、机器数据、语音数据、社交媒体数据等)。由于数据来源广,数据量巨大,数据结构复杂(结构化/非结构化)等特点,决定数据必须采用数据仓库(非结构化数据结构)来存储,而不是传统的关系型数据库。
面对多种多样的数据,在设计大数据平台的的数据采集模块时,要考虑到数据采集的简便化与可用性,让企业在低成本的情况和开发下的情况进行数据的对接。目前可考虑到的数据采集方式有以下这些方式:
开放API接口
大数据平台提供一套标准化的API接口,并提供API接口的说明文档,示例程序,或者SDK包。方便用户及生态合作伙伴利用API开展基于分析模型的应用程序开发、细粒度的数据应用、自定义的分析模型与OLAP分析,多系统数据源融合治理等,支持实时及非实时的数据处理。通过API接口采集到数据,会传送到数据分发的服务上,通过数据分发服务来进行数据的实时分析,与存储。这种方式需要接入的企业具有开发能力,需要开发人员来进行数据对接的开发与调试。
数据导入的方式
大数据平台提供一套标准的数据格式文档(如Excel/csv/txt格式),按数据仓库需要的数据内容,定义好相对应的格式。在平台上提供相应文档的下载,使用者下载到文档后,按照文档的格式填充数据,再将数据导入到大数据平台上,大数据平台根据用户导入的数据,触发相应的分析程序,将分析的结果数据填充到数据结果库上,最终呈现到界面上给用户使用。这种方式需要通过人工的方式进行导入,难以做到实时的效果,适合于对数据及时性要求不高的业务场景。
数据源接入的方式
大数据平台提供使用者数据源接入的功能,通过监控数据源的数据,实现实时及离线数据的同步,如果是实时的数据,会转发到数据分发服务上,由数据分发服务对数据进行实时分析,与存储。计划支持关系型数据(如mysql, sql server, oracle等),或者通过监控数据库的binlog,来实现数据的同步。在数据同步方式建立好,需要通过配置的方式,将源数据的属性信息与大数据平台的数据仓库的属性进行关联,这样才能完成从数据源将数据转化为大数据仓库的数据结构,适应后面的数据清洗、计算、归总等处理过程。这种方式适合于企业没有开发人员,通过提供数据源,数据源的字典等信息,将数据导入到大数据平台。
数据埋点的方式
JS 埋点数据流程图
移动数据采集流程图
通过客户端的SDK(js SDK,小程序SDK),采集用户与应用界面产生交互的行为,这些行为只会在客户端发生,常见的比如页面打开、按钮点击等。这种方式适用于分析网站的流量及用户行为,用于网站或者平台的各类运营活动中,也可以实时推送到运营人员的工作台上,运营人员可以实时知道网站或平台的各类用户访问行为。需要用户有网站或平台的运维人员来嵌入SDK的程序。
日志采集方式
日志采集流程图
大数据平台按照数据仓库的源数据的结构,定义好一套标准的数据格式,用户按照此数据格式产生相应的日志文件,大数据平台通过监控日志文件的变化,将数据传输到数据仓库上,并进行实时/离线的数据处理与存储,这种方式适合于数据量巨大,及实时性要求比较高的场景。
文章来源公众号,ID:技术老男孩