在大型企业中保证业务数据的一致性是一个非常棘手的问题。一般来说,如跨国型公司的客户或产品相关数据,往往有多个来源。这就导致了,有时即使是最简单的问题也很难回答。在此情况下,数据集成可能是成为一种解决办法。
数据集成为组织提供了存储在多个数据源中数据的统一视图,而提取、转换和加载(ETL)技术就是数据集成的早期尝试。
使用ETL,可以从多个源事务系统提取、转换和加载数据到单个位置,例如公司数据仓库。提取和加载部分相对机械,但转换部分不那么容易。为了实现这一点,您需要对业务规则进行定义,来解释哪些转换是有效的。
ETL与数据集成之间的一个主要区别是,数据集成是一个更广泛的领域。它可能还包括数据质量和定义主引用数据的过程,例如在公司范围内定义客户、产品、供应商和其他与业务事务提供有关的关键信息。
数据分类与一致性
下面我们看一个例子。一个大的营业公司可能需要从几个层次对产品和客户进行分类,以分段分层展开营销活动。对于该公司旗下规模较小的子公司,则可以通过简单的产品和客户分类层次结构来实现这一点。在这个例子中,规模更大的组织可能将一罐可乐归类为碳酸饮料、一种饮料、食品和饮料销售的一部分。然而,较小的子公司可能会把同样的可乐归入食品和饮料销售,而没有中间的分类。这就是为什么需要分类的一致性——或者至少是对差异的理解——来获得公司整体销售的全局视图的原因。
不幸的是,知道你在和谁做生意并不总是那么简单。例如,Shell U.K.是石油巨头Royal Dutch Shell公司的子公司。像Aera Energy和Bonny Gas Transport这样的公司都是Shell公司的实体,有些还有其他投资者。因此,与这些公司进行的业务交易,需要作为客户添加到Shell公司的全局视图中,但是从公司名称来看,这种关系并不明显。
著名投资银行副总裁曾告诉笔者,他们不知道自己在全球范围内做了多少业务,例如,德意志银行(Deutsche bank),更不用说企业是否盈利,这些问题的答案埋在各种全球性投资银行部门的系统内。
数据质量问题
ETL技术是解决这个问题的早期尝试。但要正确获得转换步骤,您需要定义业务规则,制定什么样的转换是有效的——例如,如何汇总销售事务或映射一个数据库字段,当“m”用于定义男性顾客,而“male”用于另一个含义时。技术的发展对这一过程是有帮助的。
事实证明,实现集成化的数据比ETL和数据集成本身更广泛。数据质量也是一个重要因素。如果发现客户或产品文件中有重复的内容怎么办?在笔者参与的一个项目中,有80%的客户记录都是重复的。这意味着,该公司的商业客户数量只有它认为的五分之一。
在原材料中,主文件的重复率通常是20%到30%。当进行公司概述,需要汇总数据时,应该消除这些异常情况。
不断增长的数据量
尽管数据集成对大公司来说有其优势,但也不是没有挑战。如公司产生的非结构化数据的持续增长。
而且,由于数据以不同的格式保存——传感器数据、web日志、呼叫记录、文档、图像和视频——ETL工具在这种环境中可能是无效的,因为它们在设计时并没有考虑到这些因素。当存在大量数据或大数据时,这些工具也会遇到困难。如Apache Kafka等类似工具,试图通过实时流数据来解决这个问题,这使他们能够克服以前的消息总线方法对实时数据集成的限制。
从早期的ETL到现在,数据集成的相关技术、理念已经发生了很大的变化。但仍需要继续保持不断进化,以跟上企业持续变化的需求和大数据时代下不断涌现的新型挑战。