在企业数据集成领域,已经有了很多成熟的框架可以利用,不同的使用场景下,应该选用不同的应用模式。目前数据集成的主要应用模式有以下几种:联邦数据库模式、基于中间件模式、主数据集成模式、数据仓库模式、数据湖模式,这些模式的技术着重点不同,但在应用上都是解决数据交换共享和使用的问题,以实现数字化企业的数据驱动业务、数据驱动管理的目标。
01 联邦数据库模式
联邦数据库集成模式提供了一种创建对数据消费者(应用)角度看数据集成视图,数据逻辑看上去存在一个位置,但实际的物理位置却可能在多个数据源中。联邦数据库由半自治数据库系统构成,相互之间分享数据,联盟各数据源之间相互提供访问接口,同时联盟数据库系统可以是集中数据库系统或分布式数据库系统及其他联邦式系统。
下图是 IBM 联邦数据库的体系结构,应用程序可以使用任何受支持的接口(包括 ODBC、JDBC 或 Web 服务客户机)与联邦服务器交互,对用户而言无需知道数据存储在哪里,无需知道数据源支持哪种 SQL 语言,也无需知道数据源是Oracle 9i 还是IBM的DB2。总之,联邦数据库对yoghurt来说就像是使用一个系统。
联邦数据库集成模式的优点是通过统一的“联邦视图”来访问不同数据源,为用户访问数据提供了很好的方便性,并且数据是实时的。对于及时投入生产要求较高的应用,数据联邦允许应用直接访问数据,而不需要耗时较长的数据架构的调整。另外,如果数据安全性要求较高的企业,不允许对数据进行复制和备份的场景下,数据联邦是很好的解决方案。联邦数据库缺点也很明显:由于访问数据是通过一个“联邦”视图来实现的,视图是实时的,因此数据转换是一个重点,但是却无法解决数据质量和性能问题。随着企业数据量的增大,性能问题是所有数据集成都面临的问题,但是由于设计思路的缺陷,数据联邦在这方面虽有很大进展,但是也无法和另外一些数据集成技术相比。数据质量管控意味着数据规则的加载、数据检验执行,这也不是“联邦”视图解决现实数据集成问题的优先考虑的因素。这就导致数据联邦模式不适用对数据质量要求较高,需要进行大量数据转换、加工和场景,例如:数据治理、数据仓库等。
02 中间件数据集成模式
基于数据集成中间件的数据集成模式是数据复制的一种方式。数据集成中间件(data integration middleware)是指支持不同来源、格式和性质的数据源进行逻辑上或物理上有机集成,为分布、自治、异构的数据源提供可靠转换、加载与统一访问服务的中间件。中间件集成方法是目前比较流行的数据集成方法,中间件模式通过统一的全局数据模型来访问异构的数据库、遗留系统、Web资源等。数据集成中间件的主要功能便是通过对不同来源、格式和特性的数据的转换与包装,提供统一的高层访问服务,实现各种异构数据源的共享。初期的数据集成中间件,主要由数据集成中央处理器(中间件)和适配器组成。中间件位于异构数据库系统(数据层) 和应用程序(应用层)之间,向下协调各数据源系统,向上为访问集成数据的应用提供统一数据模式和数据访问的通用接口。各数据源的应用仍然完成它们的任务,中间件系统则主要集中为异构数据源提供一个高层次数据访问服务。随着技术的发展,ETL工具发展成了数据集成中间件的主流,ETL即数据的抽取、转换、清洗、装载。关于ETL中间件我们下文再详细介绍。
03 主数据应用模式
主数据是企业各应用系统之间共享的数据,例如:客户、供应商、产品、员工等,它也是企业最核心的数据。主数据的集成模式本质上是一种数据交换共享模式,旨在解决各异构系统之间核心数据的一致性、正确性、完整性和及时性。
主数据集成强调的是单一数据视图,通过整合多个数据源,形成主数据的单一视图,保证单一视图的准确性、一致性以及完整性,从而提供数据质量。统一业务实体的定义,简化改进业务流程并提升业务的响应速度。在主数据集成的应用中,会使用到联邦数据库、数据接口集成和基于ESB中间件的数据集成技术等。
04 数据仓库应用模式
数据仓库是一个为决策支持系统提供支撑的数据集合,这些数据具有面向对象性、集成性、与时间相关性等特点。数据仓库的数据都是从企业数据源集成过来的,不可以修改的、稳定的数据以只读格式保存,且不随时间改变。
面向主题:即处于数据仓库中的数据是按照特定的主题组织而成的,这里的主题不是具体的而是一个抽象的概念,常指企业或个人在使用数据仓库着重关注的方面。主题是一个抽象的概念,是较高层次上企业信息系统中的数据综合、归类并进行分析利用的抽象。例如:财务主题、人力主题、生产主题等。
集成性:集成性指在数据仓库中的数据信息并不是在各业务系统中简单、随机抽取的,由于数据仓库间的独立性,因此需要消除源数据中的异值。通过对分散、独立、异构的数据库数据进行抽取、清理、转换和汇总便得到了数据仓库的数据,这样保证了数据仓库内的数据关于整个企业的一致性。
稳定性:即业务系统中的数据总是处于不断变化的状态,即数据为最新的状态。相对于业务系统的不断变化,数据仓库具有稳定性,是指数据在进入数据仓库后,数据一般用于查询,很少会对数据进行修改,常见的操作也只是进行定期的加载和刷新。数据仓库中的数据是在对原有分散的数据库数据抽取、数据清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。
数据仓库是决策支持系统和数据(知识)挖掘系统的基础,数据仓库中的数据可信度和完整程度将直接影响后续系统的工作。数据仓库的集成方式通常是采用数据集成工具(ETL)将数据源的数据以全量或增量的方式,定期抽取到数据仓库中。ETL的过程就是数据集成的过程,从不同异构数据源流向统一的数据仓库,其间数据的抽取、清洗、转换和装载形成串行或并行的过程。
05 数据湖应用模式
数据湖是在仓库概念上发展出了的新一代数据集成、管理和应用模式。数据湖的出现,最初就是为了补充数据仓库的缺陷和不足,为了解决数据仓库漫长的开发周期,高昂的开发成本,细节数据丢失、信息孤岛依然无法解决、出现问题无法真正溯源等问题。但是随着大数据技术的发展,数据湖不断演变,汇集了各种技术,包括数据仓库、实时和高速数据流技术、机器学习、分布式存储和其他技术。数据湖逐渐发展成为一个可以存储和处理所有结构化、半结构化、非结构化数据,并对数据进行大数据处理、实时分析和机器学习等操作的统一数据管理平台,为企业实现真正的“数据驱动”提供完整解决方案。
与数据仓库不同的是,数据仓库在处理数据之前要先进行数据梳理、定义数据结构、进行数据清洗才进行入库操作,而数据湖是不管“三七二十一”连上数据源就将原始数据“一锅端过来”,这就为后续数据湖的机器学习、数据挖掘能力带来了无限可能!在灵活性上数据湖具备天然优势。传统的数仓,因为模型范式的要求,业务不能随便的变迁,变迁涉及到底层数据的各种变化,这导致了传统数仓无法支持业务的变化。
对于数据湖来说,即使像互联网行业不断有新的应用,业务不断发生变化,数据模型也不断的变化,但数据依然可以非常容易的进入数据湖,对于数据的采集、清洗、规范化的处理,完全可以延迟到业务需求的时候再来处理。这跟早期的数仓思维就很不一样,数据湖相对于企业来说,灵活性比较强,能更快速的适应上层数据应用的变化。由于数据湖需要具备多样数据的存储和处理能力,在数据集成方面使用的技术也是多样的,比如:基于ETL工具的结构化数据集成,接口服务集成,文件数据集成,实时数据集成等。
写在最后的话
数据集成是消除企业信息孤岛,实现数据集中共享,进而实现数据治理和数据应用的重要手段。数据集成可以将企业本地数据、云中的数据等来自不同“孤岛”的数据连接起来,让数据不在孤立、相互作用,从而挖掘出更大的价值。数据集成可以让企业的应用、流程、系统、组织和人员等关键要素都协同起来,提高企业业务效率。数据集成可以将不同类型的数据汇聚和融合起来,让业务用户可以快速获得有用信息进行分析,从全局综合的角度分析问题,增加分析结果的准确性。