数据中台 | 数据汇聚概念
数据采集与数据汇聚
随着互联网、移动互联网、物联网等技术的兴起,企业的业务形态开始多元化,通过行为埋点、爬虫的方式来收集过程数据是企业非常重要的方法和手段。从空间维度来看,用户行为可以分为线上行为和线下行为两类,采集这两类行为所产生的数据所使用的的方法是不一样的,而且方法也随着技术的演进不断发展和变化。
线上采集方式 | 适用场景 | 优点 | 缺点 |
---|---|---|---|
全埋点 | 适合于终端设计标准化且有统一系统接口的情形,用户在终端上的操作,通过系统提供的事件捕获机制,在对象事件发生时调用埋点工具中的指定处理逻辑,对该事件相关的信息进行记录 | 不用频繁升级,一次性验证开发并发布后就可以获取终端的全量行为数据,当突然发现需要对某个对象做分析时,可以直接从历史数据中找到所需数据,不需要再次进行数据收集 | 数据存储、传输成本高一些,有些当前不需要的数据也需要保留 |
可视化埋点 | 适合于需要考虑存储和带宽成本的情形,可通过后端配置来降低对象事件行为采集数量,实现机制和全埋点类似 | 发布后不需要频繁升级,成本比全埋点低,并且能够灵活配置 | 当需要对某一个对象进行分析,但发现其数据没有被采集时,需要重新配置并等数据采集完成再进行后续工作,容易影响业务进度 |
代码埋点 | 适用于终端设计非标准化、事件行为需要通过代码来控制的场景。 | 灵活性强,针对复杂场景可以单独设计方案,对存储、带宽等可以做较多的优化 | 成本高,维护难度大,升级周期较长 |
服务端埋点 | 服务端埋点一般会和客户端埋点结合使用,相互补充,以完成整个用户行为的采集 | 如果需要获取的用户行为通过服务端请求就可以采集到或者通过服务端内部的一些处理逻辑也能获取时,为了降低客户端的复杂度、避免一些信息安全的问题,常常会采用这种方式来收集用户行为数据 | 有些用户的行为不一定会发出访问服务端的请求,这种方式就无法采集到这部分数据 |
ETL和ELT
在数据建设过程中有ETL的操作,即在数据抽取过程中进行数据的加工转换,然后加载至存储中。但是在大规模数据场景下,一般不建议采用ETL的模式,而是采用ELT的模式,即将数据抽取后直接加载到存储中,再通过大数据和人工智能技术对数据进行清洗和处理。
数据汇聚的工具
在数据能力建设过程中,很多企业结合自身的场景和最佳实践也开源了一些优秀的汇聚工具。
工具 | 优点 | 缺点 |
---|---|---|
Canal | 流程架构简单清晰,配置和部署相对简单,同时可以额外做一些配置管理、开发改造的工作 | 一对一消费,不适用于多消费和数据分发的场景 |
Sqoop | 依托Hadoop和MapReduce,在特定场景下,数据汇聚的过程中会有很大的性能提升 | 通过在命令行中配置参数来调整数据同步,配置复杂,定制程度高,自定义逻辑和链路监控能力弱。 |
DataX | 提供数据速度、执行进度等信息展示,脏数据探测功能、支持传输过程中对传输报错进行策略化处理 | 高并发数据汇聚场景下对内存要求高,单机模式 |
数据交换产品
数据交换的场景:
- 从数据类型上看,有结构化数据和非结构化数据
- 从时效性来看,有实时数据交换和离线数据交换
- 从数据流整体看,数据交换只是数据作业的起点,需要统一调度与上下游作业的关系
数据交换产品的目的:
- 屏蔽底层工具的复杂性,以可视化配置的方式提供给企业用户
- 为了解决数据孤岛,需要满足异构存储、异构数据类型的交换需求
- 考虑不同时效要求下数据的互通
数据交换产品包含的内容:
- 数据源管理主要是管理数据所用的存储,用户平台在数据交换时可以方便地对外部存储进行相应的管理
- 离线数据交换是针对数据时效要求低、吞吐量大的场景,解决大规模数据的批量导入问题
- 实时数据交换主要负责把数据库、日志、爬虫等数据实时接入到存储中
存储选择
将各类数据汇聚后,首先面临的是存储压力,不同类型的数据内容、不同的数据汇聚方式以及未来可能的使用场景,对存储的选择也会有较多的考虑,常见的问题有:
- 存储是选择关系型数据库还是大数据相关的技术
- 现有的存储与新的存储之间的关系是什么
选择存储时还需要考虑以下几个方面:
- 数据规模
- 数据生产方式
- 数据应用方式
在建设数据中台时,需要根据企业自身情况选择合适的存储组合来满足企业的数据战略和数据应用需求。
1. 在线与离线
在线存储是指存储设备和所存储的数据时刻保持在线状态,可供用户随意读取,满足计算平台对数据访问的速度要求。
离线存储是为了对在线存储的数据进行备份,以防范可能发生的数据灾难。
2. OLTP与OLAP
OLTP是专注于面向事务任务的一类数据处理,通常涉及在数据库中插入、更新或删除少量数据,主要处理大量用户下的大量事务。一般都是高可用的在线系统,以小的事务以及小的查询为主,评估其系统的时候,一般看每秒执行的事务及查询的数量,TPS、QPS
OLAP通常用于报表分析场景,通过多维的方式来对数据进行分析、查询并生成报表。
OLTP应用主要是用来完成用户的事务处理,通常要进行大量的更新,同时对响应的时间要求比较高;OLAP应用主要是对用户当前的数据和历史数据进行分析,帮助市场做决策,制定营销策略,主要用来执行大量的查询操作,对实时性要求低。
3. 存储技术
分布式系统
分布式系统包含多个处理单元来协作完成任务,分而治之的策略能够更好地处理大规模数据分析问题
分布式文件系统:存储管理需要多种技术的协同,其中文件系统为其提供最底层存储能力的支持,比如分布式文件系统HDFS
分布式键值系统:用于存储关系简单的半结构化数据,广泛应用的对象存储技术也可以视为键值存储,其存储和管理的是对象而不是数据块
NoSQL数据库
NoSQL数据库的优势是:可以支持超大规模数据存储,灵活的数据模型可以很好地支持应用,具有强大的横向扩展能力,典型的NoSQL数据库包括键值数据库、列族数据库、文档数据库等。
云数据库
云数据库是基于云计算技术的一种共享基础架构的方法,是部署和虚拟化在云计算环境中的数据库。 云数据库并非一种全新的数据库技术,而只是以服务的方式提供数据库功能。