批量数据的整合
传统的数据整合一般采用ETL方式,即抽取(Elect)、转换(Transfer)、加载(Load),随着数据量的加大,以及数据平台自身数据处理技术的发展,目前较为通用的方式为ELT模式,即抽取、加载、转换。
1. 数据抽取
业务类系统或流程类系统负责数据的采集,但哪些数据需要整合到数据平台,则需要根据数据应用的需求进行定义。在进行数据抽取和加载之前,需要定义数据源系统与数据平台之间的接口,形成数据平台的接入模型文档。
数据的抽取会涉及安全与隐私问题,在进行抽取数据的调研时,也会涉及授权问题,源系统的数据结构,以及每张报表每个字段的业务含义的明确,样本数据的采集,都需要得到相应系统的所属部门的授权。在进行数据抽取之前,需要最后的授权。
源系统的数据分析是数据整合最为关键和重要的一步,需要确认源系统中的数据结构、数据含义,与文档及业务人员理解的是否一致,是否存在偏差。同时,也需要对源系统数据的数据质量进行分析,了解数据质量状况,并出具数据质量分析报告。通过上述两种分析,能够识别出数据现状与业务期望之间的差别,该差别应反馈给需求提出方,需求提出方应根据数据的状况,调整需求和业务期望
从源系统中抽取数据一般分为两种模式:抽取模式和供数模式。从技术实现角度来将,抽取模式是较优的。即由数据平台通过一定的工具来抽取源系统的数据,但是从项目角度来讲,建议采用源系统供数模式,因为抽取数据对源系统的影响,如果都有数据平台项目来负责,有可能导致以下后果:源系统出现的任何性能问题都可以推诿到数据平台戳去工作上;源系统发生数据结构的变更后不通知数据平台项目,导致抽取出错;源系统不对数据质量负责,要求数据平台项目负责。以上的三种情况会对数据平台项目带来重大的风险,最终导致数据平台项目失败。
- 数据加载
传统的数据平台建设在完成数据抽取后,一般由ETL工具进行数据转换,即将数据结构模型转换为数据平台的数据结构模型,大数据并行技术出现后,数据库的计算能力大大加强,一般都采用先加载后转换的方式。
数据在加载过程中,应该对愿数据进行数据比对。以确保抽取加载过程中的数据一致性,同时设置一些基本的数据校验规则。对于不符合数据校验规则的数据,应该退回源系统,由源系统修正后重新供出。通过这样的方式,能够有效地保证加载后的数据质量,在完成数据加载后,系统能够自动生成数据加载报告,报告本次加载的情况,并说明加载过程中的源系统的数据质量问题。
在数据加载过程中,还需要注意数据版本管理,传统的数据仓库类平台需要保留不同时间点的历史数据,一般采用数据戳方式,大数据类应用,也建议采用这种方式,目前,大数据平台在数据库结构中自带版本管理功能,如果得到有效的利用,将大大地减少开发工作量,并提升系统的效率。
- 数据转换
数据转换分为四种类型:简单映射、数据转换、计算补齐、规范化。
简单映射:就是在源和目标之间一致地定义和格式化每个字段,只需在源和目标之间进行映射,就能把源系统的特定字段复制到目标表的特定字段。
数据转换:即将源系统的值转换为目标系统中的值。最典型的案例就是代码值转换,源端系统中直接以“F”,“M”来表示性别,在目标系统中采用“男”和“女”来表示,这就需要字段转换
计算补齐:在源数据丢失或者缺失的情况下,通过其他数据的计算,经过某种业务规则或者数据质量规则的公式,推算出缺失的值,进行数据的补齐工作。
规范化:当数据平台从多个系统中采集数据的时候,会涉及多个系统的数据,不同系统对于数据会有不同的定义,需要将这些数据的定义整合到统一的定义下,遵照统一的规范。
4. 数据整合
在数据整合到数据平台之后,需要根据应用目标进行数据的整合,将数据关联起来并提供统一的服务。
传统的数据仓库说将数据整合为不同的数据域。针对不同的数据域,建立起实体表和维表,基于这些实体表和维表,为不同的应用提供多维分析服务。
为支持统一的指标运算,一些数据仓库也建立了统一计算层,统一对于基于数据仓库上的各类指标进行统一计算,并提供给各集市进行展示
为支持数据分析与挖掘应用,一些数据仓库生成面向客户、面向产品、面向员工的宽表,用于进行数据挖掘工作。
实时数据的整合
大数据的一个重要的特点就是速度,大数据时代,数据的应用者对于数据的时效性也提出了新的要求,企业的管理者希望能够实时地通过数据看到企业的经营状况;销售人员希望能够实时地了解客户的动态,从而发现商机快速跟进;电子商务网站也需要能够快速地识别客户在网上的行为,实时地做出产品的推荐。
- 实时数据的抽取
在实时数据抽取的过程中,需要注意一点,就是必须实现业务处理和数据抽取的松耦合。业务系统的主要职责是进行业务的处理,数据采集的过程不能影响业务处理的过程。实时数据抽取一般不采用业务过程中同步将数据发送到数据平台的方式,因为一旦采用同步方式发送失败或者超时,就会影响业务系统本身的性能,建议采用如下方式
– 定时的小批量的面向数据采集,通过数据抽取程序,定时小批量地从业务系统数据库中采集增量的数据,并发送到数据平台,采用这种方式时,建议采用频次可调节,在业务系统业务压力较大的情况下,可以放宽频次进行采集,以减少业务系统的压力
– 实时业务的异步数据发送。在实时业务完成后,通过异步的方式,将业务数据发送到数据平台,实现数据的实时采集。因为采用异步的方式,所以对源系统不会形成压力
- 实时数据的加载
在实时数据加载过程中,需要对数据完整性和质量进行检查,对于不符合条件的数据,需要记录在差异表中,最终将差异数据反馈给源系统,进行数据核对。
实时数据加载一般采用的流式计算技术,快速地将小数据量、高频次的数据加载到数据平台上。
3. 实时数据的转换
实时数据转换与实时加载程序一般为并行的程序,对于实时加载完的数据,通过轮询或者触发的方式,进行数据转换处理。
4. 实时数据的整合
实时数据整合主要是根据实时的数据进行数据的累计和指标计算。对于多维分析和数据挖掘应用所需的数据,建议仍然由批量计算进行处理。
数据整合与主数据管理
主数据是指系统间共享的数据,比如客户、账户、组织机构、供应商等等。主数据是企业中最具价值的数据,与交易数据、流程数据、非结构化数据相比,它更为稳定。
在数据整合过程中,需要关注2个方面
1. 一切数据应尽量和主数据进行关联。数据只有关联起来才有价值,而主数据正是关联其他数据的枢纽点,对于企业来讲,一切数据只有和主数据关联起来才有意义。
2. 利用大数据来提升主数据的质量,在数据整合的过程中,可以通过各系统采集到的数据对于主数据进行补充和纠正,以提升主数据的质量;也可以通过非结构数据的挖掘,获取有效信息,提升主数据质量,当然,各系统数据来源的可信度也需要进行识别和定义,避免低质量的数据覆盖了高质量的数据。