理解大数据本应很简单:什么是数据集成和数据治理

本文是《极简大数据》系列第二篇。

不管出于什么目的,假设你要利用一批数据。那么你期望数据是什么样的?

答案很简单:全、快、对。

当然也可以换三个词:全域数据、实时数据、高质量数据。

我个人还是喜欢上面接地气的词。

如果你关注大数据,或者是做数据产品经理,应该了解数据集成和数据治理。

它们都是手段,最终为数据的使用而服务。

经过集成和治理后的数据,我们期望是能高效使用的、高质量的、高价值的数据。

实现高价值,前提条件是数据要全和快,这是对数据集成能力的要求。

数据的主要来源有三种,一是业务发生后系统产生的数据,存放在关系型数据库或 NoSQL 数据库中,比如在淘宝剁手下单,就会产生一条订单记录,谁什么时间在哪个店铺购买了一件什么商品,付款多少钱等。

第二类是系统服务环境产生的日志文件,如 Nginx、Apache 等对于 HTTP 请求和响应生成的记录文件,在浏览器里输入淘宝网址回车,淘宝的服务器就记下哪个 IP 在什么时间访问了淘宝,打开了哪几个页面,停留了多长时间,客户端有什么特性(如分辨率大小、浏览器版本、操作系统版本等)。

第三类是从客户端(浏览器、APP)采集到的用户行为日志文件,称为埋点日志,是程序员开发出来的一小段程序,可以采集到你做了什么动作,如点击商品加入购物车、切换到评论页面等,便于运营人员更好地分析用户如何使用应用。

当然数据还有更多的来源和格式,如传感器采集到的数据等,可以看这一篇

这三类数据都要能从源服务器上采集过来。有的数据是结构化的,如关系型数据库,有的是半结构化的,如 NoSQL 数据库、日志文件。更大的范围来说,图片、音频、视频等非结构化数据,也要能够支持采集。

这是对所能采集的数据类型的要求。在采集方式上,还要能支持全量、增量采集。

全量采集就是每次都完整拉一遍。缺点很明显,需要带宽流量和时间,不符合对快的要求;增量采集,程序要记得每次采到了哪里,采过的数据如果某些发生了变化,也要能感知,在下一次采集时把变化的数据带回来。

传统上,增量采集可以用时间戳、标志位、触发器等方式搞定,这需要数据源的配合,有时候,我们没有条件干涉数据源。

大数据技术下,对于关系型数据库,可以采集数据库的日志,再解析日志还原数据,实现增量的流式采集。如 MySQL 配置好 Binlog 日志,通过 Kafka 把日志实时发送过来。其它数据库也都有类似的方法。

对于关系型数据库,Apache 社区有开源组件 Sqoop,它主要用于在关系数据库和Hadoop之间传输数据。对于日志文件的采集,开源组件有 Flume、Logstash 等。

不仅多种类型的数据能够采集,还要速度快,讲究实时、准实时,达到秒级的同步。

数据时效性的价值不言而喻。数据一旦产生,就能感知和传输过来,与之前采集的数据增量合并形成最新最完整的数据。

只有足够快,才能不错过一些重要的分析和监控,许多实时的数据业务对此都有要求,如风控、推荐等。

数据量大,要求采集吞吐率高,而吞吐率和延迟(快慢)又是一对矛盾体,意思是说,大数据规模下,想要实时,是很有挑战的,例如天猫双 11 活动的大屏,看着只是几个数字在变,这背后的技术是相当硬核的。

再来说数据的质量问题。

高质量,代表数据不多、不少、不错、一致。

展开来说就是不重复冗余,没有其它数据混杂在内造成干扰;数据不残缺,行列记录都是完整的;标准一致,代表相同意义的数据字段类型、格式最好都能统一。

这些都是数据治理功能所要解决的问题,对已经是结构化的数据从库、表、字段不同级别进行标准和质量的监控、基于规则模型去校验和纠错等。

对应的就是数据标准管理和数据质量管理。

治理的另一个范围是数据安全,包含敏感和隐私数据不能泄露,数据不能被非法访问,对数据访问进行监控和审计。涉及到脱敏、数据权限和监控审计等功能。

在 DAMA(国际数据管理协会)中,对数据治理定义了九个方面的内容。

元数据也是很重要的一部分,元数据是指「关于数据的数据。」就是全方位、多角度地描述一份数据所形成的数据。就像简历之于人的关系,如果简历内容十分丰富,那我们就可以全面地了解这个人。

对于数据也是一样,从技术(数据格式、存储大小、更新时间……)、业务(描述什么业务的数据,属于哪个信息系统等……)、管理(谁在负责该数据、安全等级……)多个角度充分地描述数据,那我们就能对这个数据有清晰的了解和认识。

我们可以通过元数据快速查找和定位数据,也可以通过分析元数据,看清数据的来龙去脉,它产生的过程,以及它对别的数据的影响,这就是所谓的数据血缘。

总结来说,数据集成和数据治理的功能范围,就是为实现上述目标所框定的。

首先确保可用性和性能,真正能把多源异构的数据接入进来,保证传输的可靠性。

原始数据落地之后,需要对它进行有效的治理,通过元数据、数据标准、数据质量、数据安全等多种手段,确保数据是精确、完整、有效的,以便于下一步数据能更好地利用。

关于数据集成和治理,我们先明确目标和架构,以后的篇幅我会细讲里面每个小的模块。

关耳爷

微信号wei-talk

— 你也可能感兴趣 —