1.引言
数据集成和互操作(DII)描述了数据在不同数据存储、应用程序和组织这三者内部和之间进行移动和整合的相关过程。数据集成是将数据整合成物理的或虚拟的一致格式。数据互操作是多个系统之间进行通信的能力。数据集成和互操作的解决方案提供了大多数组织所依赖的基本数据管理职能:
- 1)数据迁移和转换。
- 2)数据整合到数据中心或数据集市。
- 3)将供应商的软件包集成到组织的应用系统框架中。
- 4)在不同应用程序或组织之间数据共享。
- 5)跨数据存储库和数据中心分发数据。
- 6)数据归档。
- 7)数据接口管理。
- 8)获取和接收外部数据。
- 9)结构化和非结构化数据集成。
- 10)提供运营智能化和管理决策支持。
数据集成和互操作依赖于数据管理的其他领域,如:1)数据治理。用于治理转换规则和消息结构。2)数据架构。用于解决方案设计。3)数据安全。无论数据是持久化、虚拟化还是在应用程序和组织之间流动,都要确保解决方案对数据的安全性进行适当的保护。4)元数据。用于知晓数据的技术清单(持久的、虚拟的和动态的)、数据的业务含义、数据转换的业务规则、数据操作历史和数据血缘。 5)数据存储和操作。管理解决方案的物理实例化。6)数据建模和设计。用于设计数据结构,包括数据库中的物理持久化的结构、虚拟的数据结构以及应用程序和组织之间传送的消息结构。 数据集成和互操作对数据仓库和商务智能、参考数据和主数据管理至关重要,因为所有这些都关注数据从源系统转换和集成到数据中心, 以及从数据中心到目标系统,最终交付给数据消费者(人和系统)的过程。
1.1 业务驱动因素
数据集成和互操作主要目的是为了对数据移动进行有效管理。由于大多数组织都有数以百计的数据库和存储库,因此每个信息技术组织的主要责任就是管理数据在组织内部的存储库与其他组织之间的双向流动过程。数据集成和互操作语境关系图如图8-1所示。对企业来说,管理数据集成的复杂性以及相关成本是建立数据集成架构的原因。
在使用多种技术来移动数据时,每种技术都需要特定的开发和维护技术。标准工具的应用可以降低维护和人力成本,并提高故障排除工作的效率。降低接口管理的复杂性不仅可以减少接口的维护成本,并使支撑资源能更有效地在企业其他优先事务中发挥作用。 数据集成和互操作(DII)还支持组织遵守数据处理标准和规则的能力。企业级数据集成和互操作系统可以重用代码,从而实现规则的兼容性,并简化兼容性验证工作。 总而言之: 业务驱动因素分为三部分: 1. 管理数据集成的复杂性以及相关成本 2. 维护管理成本 3. 支持组织遵守数据处理标准和规则。
1.2 目标和原则
1.2.1目标
数据集成和互操作实践与解决方案的实施目标是:
- 1)及时以数据消费者(人和系统)所需的格式提供数据。
- 2)将数据物理地或虚拟地合并到数据中心。
- 3)通过开发共享模型和接口来降低管理解决方案的成本和复杂度。
- 4)识别有意义的事件(机会和威胁),自动触发警报并采取相应行动。
- 5)支持商务智能、数据分析、主数据管理以及运营效率的提升。
1.2.2 原则
在实施数据集成和互操作时,组织应遵循以下原则:
- 1)采用企业视角确保未来的可扩展性设计,通过迭代和增量交付实现。
- 2)平衡本地数据需求与企业数据需求,包括支撑与维护。
- 3)确保数据集成和互操作设计和活动的可靠性。业务专家应参与数据转换规则的设计和修改,包括持久性和虚拟性。
1.3 基本概念
1.抽取、转换、加载
数据集成和互操作的核心是抽取、转换和加载(ETL)过程。无论是在物理状态下或虚拟状态下,批量的或实时的执行ETL都是在应用程序和组织之间数据流动的必要步骤。ETL处理过程如图8-2所示。
根据数据集成的需求,ETL可以作为定期调度事件执行(批处理),也可以在有新数据或数据更新后执行(实时或事件驱动)。操作型数据处理往往是实时或准实时的,而分析或报表所需的数据通常在批量作业中。
1.抽取
- 抽取过程包括选择所需的数据并从其源数据中提取。
- 被抽取的数据会在磁盘或内存中的物理数据存储库中进行储存。
- 如果在磁盘上进行物理缓存,则缓存数据库可以和源数据库或目标数据库合并,或者与两者都合并。
2.转换
- 转换过程是让选定的数据与目标数据库的结构相兼容。
- 转换的情况:
- 1)格式变化。技术上的格式转换,如从EBCDIC到ASCII的格式转换。
- 2)结构变化。数据结构的变化,如从非规范化到规范化的记录。
- 3)语义转换。数据值转换时保持语义的一致化表达,如源性别代码可以包括0、1、2和3,而目标性别代码可以表示为UNKNOWN、FEMALE、MALE或NOT PROVIDED。
- 4)消除重复。如规则需要唯一的键值或记录,以确保包括扫描目标、检测和删除重复行的方法。
- 5)重新排序。改变数据元素或记录的顺序以适应已定义的模式。
- 转换可以批量执行,也可以实时执行,或者是将转换结果存储在物理状态下的缓存区域,或者是将转换后的数据存储在虚拟状态下的内存中,直至移动到加载步骤为止。
3.加载
- 加载过程是在目标系统中物理存储或呈现转换结果。
4.抽取、加载、转换(ETL)
如果目标系统比源系统或中间应用系统具有更强的转换能力,那么数据处理的顺序可以切换为ELT——抽取、加载、转换(图8-3)。ELT允许在数据加载到目标系统后再进行转换。
5.映射
- 映射(Mapping)是转换的同义词,它既是从源结构到目标结构建立查找矩阵的过程,也是该过程的结果。
- 映射定义了要抽取的源数据与抽取数据的识别规则、要加载的目标与要更新的目标行的识别规则(如果有的话)以及要应用的任何转换或计算规则。
2.时延
时延(Latency)是指从源系统生成数据到目标系统可用该数据的时间差。不同的数据处理方法会导致不同程度的数据延迟。延迟可以是很高(批处理)或较高(事件驱动),甚至是非常低(实时同步)。
1.批处理
批处理是指大多数数据在应用程序和组织之间以一批文件的形式移动,要么是根据数据使用者的人工请求,要么是按周期自动触发。批处理模式移动的数据将代表在给定时间点的全部数据,如一个周期结束后的账户余额或自上次发送数据以来已更改的数据值,如一天内已完成的地址的更改。这组数据的变化成为增量, 而某一时刻的数据成为快照。批处理对于在短时间内处理大量数据非常有用,它倾向用于数据仓库数据集成解决方案。批量数据集成可用于数据转换、迁移和归档以及从数据仓库和数据集市中抽取和加载数据。为了尽量减少应用程序的更新问题,可以将应用程序之间的数据移动安排在工作日的逻辑处理结束时或者在夜间对数据进行特殊处理后(原则:不影响业务系统的运行)。
2.变更数据捕获
变更数据捕获(CDC)是一种通过增加过滤来减少传送带宽需求的方法,只包含在特定时间范围内更改过的数据。变更数据捕获监视数据集的更改(插入、更改、删除),然后将这些更改(增量)传送给使用这些数据的其他数据集、应用程序和组织。作为变更数据捕获过程的一部分,对 数据也可以用标记或时间戳等标识符来标识。变更数据捕获可以是基于数据的,也可以是基于日志的。
- 基于数据的变更数据捕获技术:
- 1)源系统填入特定的数据元素。例如,某一个范围内的时间戳、代码或标志, 抽取过程使用规则来识别要 抽取的行。
- 2)源系统进程在更改数据时被添加到一个简单的对象和标识符列表,然后用于控制抽取数据的选择。
- 3)源系统复制已经变化的数据。这些数据已经作为交易的一部分变成了独立对象,然后用于抽取处理。
- 在基于日志的更改数据捕获中,数据库管理系统创建的数据活动日志被复制和处理,然后寻找将其转换并应用到目标数据库的特定更改。
3.准实时与事件驱动
大多数未采用批量方式的数据集成解决方案都是使用准实时或事件驱动的方式。数据在特定的时间表内是以较小的集合进行处理,或者在事件发生时处理,如数据更新。与批处理相比,准实时(Near-Real Time)处理具有更低的延迟,而且通常因为工作是随时间分布的,所以系统负载较低。但是,它通常比同步数据集成解决方案要慢一些。准实时数据集成解决方案通常是使用企业服务总线来实现。
4.异步
在异步数据流中,提供数据的系统在继续处理之前不会等待接收系统确认更新。简言之: 发送或接收系统可能在在一段时间离线, 另一个系统仍能正常运行。在异步配置中对应用程序进行的数据更新不是及时的,所以称为准实时集成。在接近实时的环境中,源中进行的更新与中继到目标数据集之间的延迟通常为秒级或分级。
5.实时, 同步
当一个数据集的数据必须与另一个数据集的数据保持完美的同步时,必须使用实时的同步解决方案。在同步集成解决方案中,执行过程在执行下一个活动或事务之前需等待接收来自其他应用程序或进程的确认。采用这种架构的基础是数据集可能有多大差异以及这种解决方案的价值有多少。可以通过数据库能力(如两阶段提交)保持数据集同步。两阶段提交要确保事务中的所有内容更新,要么都是成功的,要么都没有成功。例如,金融机构使用两阶段提交解决方案来确保财务交易表与财务平衡表完全同步。在状态管理方面,实时的、同步的解决方案比异步解决方案的需求少,因为事务处理的顺序显然应由更新应用程序管理。
6.低延迟或流处理
低延迟数据集成解决方案旨在减少事件的响应时间。异步解决方案通常用于低延迟解决方案,这样事务在处理下一个数据之前不需要等待后续进程的确认。
3.复制
复制必须把物理上分布的各个数据集副本进行数据同步。复制解决方案通常监视数据集的更改日志,而不是数据集本身。因为它们不会与应用程序竞争访问数据集,所以它们可以最大限度地减少对任何操作应用程序的影响。标准复制解决方案是准实时的,数据集的一个副本和另一个副本之间的更改有很小的延迟。 当源数据集和目标数据集是彼此的精确副本时,复制工具的表现最佳。如果最终目标数据不是源数据的精确副本时,那么就需要维护出一个暂存区域来容纳源数据的精确副本。如果数据更改动作发生在多个副本站点时,那么数据复制解决方案不是最佳的选择。如果有可能在两个不同的站点更改相同的数据片段, 则存在数据可能不同步的风险,或者其中一个站点的更改可能会在没有警告的情况下被覆盖。
4.归档
ETL功能可用于归档数据并可能将其转换为存档环境中的数据结构。使用归档存储来自正在退役的应用程序的数据以及来自长期未使用的生产系统的数据,可以提高操作效率。监控归档技术非常重要,要确保在技术发生改变时,数据仍然可以被访问。
5.企业消息格式/规范格式
规范化的数据模型是组织或数据交换团队使用的通用模型,用于标准化数据共享的格式。根据通用的或企业的 规范消息格式将数据从发送系统转换到接收系统中。规范格式的使用降低了系统或组织之间数据转换量。每个系统都只需要将数据转换为中央规范格式的数据,而不需要将数据转换为众多系统格式。
6.交互模型
交互模型描述了在系统之间建立连接以传送数据的方式。
1.点对点
共享数据系统之间的绝大多数交互都是“点对点”的,它们直接相互传递数据。这个模型在一小组系统的上下文中是行得通的。但是当许多系统需要来自同一来源的相同数据时,它会很快变得效率低下并增加组织风险。具体有以下几个方面:
- 1)影响处理(Impacts to Processing)。如果源系统是操作型,那么提供数据的工作量可能会影响交易处理。
- 2)管理接口(Managing Interfaces)。点对点交互模型所需的接口数量接近系统数量的平方数。管理和支撑系统之间接口的工作量很快就会大于系统本身的支持。
- 3)潜在的不一致(Potential for Inconsistency)。当多个系统需要不同的版本或数据格式时,就会出现设计问题。使用多个接口获取数据会导致发送给下游系统的数据不一致。
2.中心辐射型
中心辐射型(Hub-and-Spoke)模型是点对点的替代方案,它将共享数据(物理或虚拟)整合到应用程序可以使用的一个中央数据中心。所有想交换数据的系统都是通过一个中央公共数据控制系统进行交换的,而不是直接与其他系统(点对点)进行交换。数据仓库、数据集市、操作数据存储和主数据管理中心都是数据中心的最佳示范。数据中心最小化访问数据的源系统与抽取的数据量, 从而减少对源系统资源的影响。数据中心的对系统的扩展性友好, 且在系统有限的情况下, 效率极高。
企业服务总线(Enterprise Service Bus,ESB)是用于在多个系统之间接近实时共享数据的数据集成解决方案,其数据中心是一个虚拟概念,代表组织中数据共享的标准和规范格式。
3.发布与订阅
发布和订阅模型涉及推送(发布)数据的系统和其他接受(订阅)数据的系统。在数据服务的目录中列出推送数据的系统,希望使用数据的系统订阅这些服务。在发布数据时,数据会自动发送给订阅用户。
7.数据集成和互操作架构概念
1.应用耦合
耦合描述了两个系统交织的程度。两个紧密耦合的系统通常有一个同步接口,其中一个系统等待另一个系统的响应。紧密耦合代表了运营上的风险:如果一方系统不可用,那么它们实际上都不可用,并且两个系统的业务连续性计划必须保持一致。在某些情况下,松耦合是一种优选的接口设计,其中在系统之间传送数据不需要等待响应,而且一个系统不可用时,不会导致另一个系统无法使用。可使用服务、API或消息队列等各种技术来实现松耦合。图8-4解释了松耦合的一种设计模式。 当系统松散耦合时,因为交互点有良好的定义,所以理论上可以在不重写与之交互系统的情况下,替换应用程序清单中的系统。
2.编排和流程控制
编排(Orchestration)是一个术语,用来描述在一个系统中如何组织和执行多个相关流程。所有处理消息或数据报的系统,必须能够管理这些流程的执行顺序,以保持一致性和连续性。
流程控制是确保数据的调度、交付、抽取和装载的准确和完整的组件。基本数据传送架构中经常被忽略的有以下几个方面: 1)数据库活动日志。 2)批量作业日志。 3)警报。4)异常日志。 5)作业依赖图,包含补救方案、标准回复。 6)作业的时钟信息,如依赖作业的定时、期望的作业长度、计算(可用)的窗口时间。
3.企业应用集成
在企业应用集成模型(Enterprise Application Integration,EAI)中,软件模块之间仅通过定义良好的接口调用(应用程序编程接口-API)进行交互。数据存储只能通过自己的软件模块更新,其他软件不能直接访问应用程序中的数据,只能通过定义的API访问。企业应用集成是基于面向对象的概念,它强调重用和替换任何模块而不影响任何其他模块的能力。
4.企业服务总线
企业服务总线(Enterprise Service Bus,ESB)是一个系统,它充当系统之间的中介,在它们之间传送消息。应用程序可以通过ESB现有的功能封装发送和接收的消息或文件。作为一个松散耦合的例子,ESB充当两个应用程序之间的服务角色(图8-5)。
5.面向服务的架构
面向服务的架构(Service Oriented Architecture,SOA)通过在应用程序之间定义良好的服务调用,可以提供推送数据或更新数据(或其他数据服务)的功能。SOA的目标是在独立的软件模块之间定义良好的交互。SOA的关键概念是提供了独立的服务:该服务没有调用应用程序的预先知识,服务的实现是调用应用程序的黑匣子。SOA可以通过Web服务、消息传送、RESTful API等多种技术来实现。通常作为可以供应用系统或个人消费者调用的API(应用程序编程接口)实现服务。数据服务可以包括数据的添加、删除、更新和检索,这些服务被指定在可用服务的目录中。
6.复杂事件处理
事件处理是一种跟踪和分析(处理)有关发生事件的信息流(数据流),并从中得出结论的方法。复杂事件处理(Complex Event Processing,CEP)将多个来源的数据进行合并,通过识别出有意义的事件(如机会或威胁),为这些事件设置规则来指导事件处理及路由,进而预测行为或活动,并根据预测的结果自动触发实时响应,如推荐消费者购买产品。高效的处理通常要求预先在CEP引擎的内存中预存一些数据。
组织可以使用复杂事件处理来预测行为或活动,并根据预测的结果自动触发实时响应,诸如销售机会、Web点击、订单或客户服务电话等事件可能发生在组织的各个层面上。复杂事件处理通常需要使用支持超低时延要求的技术,如处理实时流式数据和内存数据库。
7.数据联邦与虚拟化
当数据存在于不同的数据存储库时,还可以通过除物理集成以外的方式来聚合。无论各自结构如何,数据联邦(Data Federation)提供访问各个独立数据存储库组合的权限。数据虚拟化(Data Virtualization) 使分布式数据库以及多个异构数据存储能够作为单个数据库来访问和查看。
8.数据即服务
数据即服务(DaaS)是从供应商获得许可并按需由供应商提供数据,而不是存储和维护在被许可组织数据中心的数据。一个常见的例子是证券交易所出售证券和相关价格(当前和历史)的信息。尽管DaaS通常适用于表示向行业内的用户销售数据的供应商,但是这个“服务”概念同样也适用于组织内部,如向各种功能和操作系统提供企业数据或数据服务。服务组织提供可用服务目录、服务级别和定价计划。
9.云化集成
云化集成,也称为集成平台即服务或IPaaS,是作为云服务交付的一种系统集成形式。用它处理数据、流程、面向服务架构(SOA)和应用集成。内部集成需求是通过内部中间件平台提供服务,并且通常使用服务总线(ESB)来管理系统之间的数据交换。企业间集成是通过电子数据交换(EDI)网关、增值网络(VAN)或市场完成。云化集成解决方案通常作为SaaS应用程序在供应商的数据中心运行,而不是在拥有被集成数据的组织中运行。
8.数据交换标准
数据交换标准是数据元素结构的正式规则。国际标准化组织(ISO)也制定了数据交换标准。数据交换规范是组织或数据交换团队使用的通用模型,用于标准化数据共享格式。交换模式定义了任何系统或组织交换数据所需的数据转换结构。数据需要映射到交换规范中。
国家信息交换模型(NIEM)是为在美国政府机构之间交换文件和交易而开发的数据交换标准。其目的是使信息的发送者和接收者对该信息的含义有一个共同的、明确的理解, 从而实现在不同环境中的操作性。国家信息交换模型(NIEM)使用可扩展标记语言(XML)来定义模式和元素的表示,允许通过简单但详细的XML语法定义规则来定义数据的结构和含义。
2.活动
数据集成和互操作涉及在什么时间、什么地点、以什么方式能获得数据。数据集成活动遵循开发生命周期模型,从规划开始,经过设计、开发、测试和实施等过程。
2.1 规划和分析
1. 定义数据集成和生命周期需求
定义数据集成需求涉及以下几个方面:
-
- 理解组织的业务目标,以及为实现这些目标而需要的数据和建议的技术方案。
-
- 收集这些数据的相关法律或法规, 防止因为数据内容的原因使得某些活动无法进行。
-
- 考虑有关数据保留和数据生命周期其他部分的组织策略。数据保留的要求通常因数据域和类型而异。
数据集成和生命周期需求通常由业务分析师、数据管理专员和具有各种职能的架构师(包括IT)定义, 同时希望以特定的格式在特定的位置获取数据,并与其他数据集成。根据需求确定数据集成和互操作交互模型的类型,然后确定满足需求所需的技术和服务。
定义需求的过程可以创建并发现有价值的元数据。这些元数据从发现到操作,应该在整个数据生命周期中进行管理。组织的元数据越完整和准确,其管理数据集成风险和成本的能力就越强。
2. 执行数据探索
- 数据探索(Data Discovery)应该在设计之前进行。
- 数据探索的目标是为数据集成工作确定潜在的数据来源。
- 数据探索将确定可能获取数据的位置以及可能集成的位置。
- 数据探索还包括针对数据质量的高级别评估工作,以确定数据是否适合集成计划的目标。(评估不仅是审查现有的文档, 还需要采访主题专家, 同时通过数据分析验证实际收集数据的准确性)。
- 数据探索生成完善组织的数据目录,维护在元数据仓库中。确保该目录作为集成工作的标准部分得到维护:添加或删除数据存储、更改文档结构等。
- 当集成是内部数据与外部数据集成时, 需要提前做好规划。
3. 记录数据血缘
- 数据血缘:数据是如何被组织获取或创建的,它在组织中是如何移动和变化以及如何被组织用于分析、决策或事件触发的。详细记录的数据血缘可以包括根据哪些规则改变数据及其改变的频率。
- 血缘分析可能会识别使用中的系统所需的更新。自定义编码的ETL和其他遗留数据操作对象应当被记录下来,以确保组织能够分析出数据流中任何更改的影响。
- 分析过程还可以提供改进现有数据流的机会, 消除冗余提升组织使用其数据的整体能力。
4. 剖析数据
- 数据剖析有助于理解数据的内容和结构, 而数据的内容和结构是实现数据集成成功的关键。
- 剖析数据可以帮助集成团队发现这些差异,并利用这些差异对采购和设计做出更好的决策。
- 基本的剖析包括:
- 1)数据结构中定义的数据格式和从实际数据中推断出来的格式。
- 2)数据的数量,包括null值、空或默认数据的级别。
- 3)数据值以及它们与定义的有效值集合的紧密联系。
- 4)数据集内部的模式和关系,如相关字段和基数规则。
- 5)与其他数据集的关系。
- 剖析数据可以了解数据多大程度上满足集成活动, 同时了解如何将数据转换为符合要求的数据。
- 剖析的目标之一是评估数据的质量。评估数据是根据业务规则, 测量数据满足业务规则的程度。
- 剖析数据的要求必须与组织的安全和隐私规定保持平衡。
5. 收集业务规则
业务规则是需求的一个关键子集,是定义或约束业务处理方面的语句。业务规则旨在维护业务结构、控制或影响业务的行为。业务规则分为四类:业务术语定义、相互关联的术语的事实、约束或行为断言以及派生。 实现数据集成和互操作需要业务规则的支撑。具体内容包括以下几 个方面: 1)评估潜在的源数据集和目标数据集的数据。 2)管理组织中的数据流。 3)监控组织中的操作数据。 4)指示何时自动触发事件和警报。
对于主数据管理而言,业务规则包括匹配规则、合并规则、存活规则和信任规则。对于数据归档、数据仓库和使用数据存储的其他情况, 业务规则还包括数据保留规则。 收集业务规则也称为规则获取或业务规则挖掘。业务分析师或数据管理专员可以从现有文档(如案例、规范、系统代码等)中提取规则, 也可以组织研讨会和业务主题专家访谈来获得,或者两者兼而有之。
2.2 设计数据集成解决方案
1.设计数据集成解决方案
数据集成解决方案应该在企业和单个解决方案两个层面上统筹考虑。因为评估和协商工作是在确定数据集成解决方案之前进行,所以通过建立企业标准可以让组织节省实施单个解决方案的时间。企业可以通过集团折扣的方法来节省许可证成本,以及通过操作一致、复杂性下降的方法来解决方案成本。解决方案体系结构表示将要使用的技术,它将包括所涉及数据结构的清单(持久和可传递、现有和必需)、数据流的编排和频率指示、法规、安全问题和补救措施以及有关备份和恢复、可用性和数据存档和保留。 确定哪个交互模型或组合将满足需求——中心辐射型、点到点或发布订阅。创建或重用现有的集成流来移动数据。任何数据交换规范设计都应该基于行业标准开始,或者以已经存在的其他交换模式为标准。
2.建模数据中心、接口、消息、数据服务
数据集成和互操作中所需的数据结构包括数据持久化的数据结构,如主数据管理中心、数据仓库和数据集市、操作型数据存储库以及那些只是用于移动或转换数据的临时数据结构,如接口、消息布局和规范模型据均需要建模。
3.映射数据源到目标
数据集成解决方案都包括从源结构到目标结构的数据转换, 定义好两者之间的转换规则。对于映射关系中的每个属性,映射规范如下:
- 1)指明源数据和目标数据的技术格式。
- 2)指定源数据和目标数据之间所有中间暂存点所需的转换。
- 3)描述最终或中间目标数据存储区中每个属性的填充方式。
- 4)描述是否需要对数据值进行转换,如通过在表示适当目标值的表中查找源值。
- 5)描述需要进行哪些计算。
4.设计数据编排
数据流程编排是从开始到结束的数据流模式,包括完成转换和或事务所需的所有中间步骤。批量数据集成的流程编排将设定数据移动和转换的频率。批量数据集成通常被编码为一个调度器,它会在某个时间、周期或在事件发生时被触发启动。调度器可能包括具有依赖关系的多个步骤。实时数据集成流程编排通常由事件触发,如数据新增或更新。实时数据集成流程编排通常更复杂,通常需要跨越多个工具来实现,甚至可能都不是线性的过程。
2.3 开发数据集成解决方案
1.开发数据服务
开发服务来获取、转换和交付指定的数据,并且匹配所选的交互模型。实现数据集成解决方案经常用到一些工具或供应商套件,如数据转换、主数据管理、数据仓库等。为了实现这些不同的目的,建议在整个组织中使用一致的工具或标准的供应商套件,并且可以通过启用共享支持解决方案来简化操作支持,并降低运营成本。
2.开发数据流编排
对集成或ETL数据流通常会采用专用工具以特有的方式进行开发。对批量数据流将在一个调度器(通常是企业标准调度器,如CTRL-M)中开发,以管理执行已开发的数据集成组件的顺序、频率和依赖关系等。互操作性需求可能包括开发数据存储之间的映射或协调点。 企业服务总线将不断地对应用程序进行轮询,以查看它们是否有任何要发布的数据,并将所订阅的新的或已更改的数据传递给它们。开发实时数据集成流涉及监控事件,这些事件触发相应服务执行来获取、转换或发布数据。
3.制定数据迁移方法
当上线新的应用程序或当应用程序退役或合并时,数据需要进行迁移。这个过程涉及将数据转换为接收应用程序的格式。数据迁移项目经常被低估或缺乏充分的设计,因为程序员只是被告知简单地移动数据。他们没有参与数据集成的分析和设计活动。核心操作型应用程序的数据剖析过程通常会突出显示从上一代或者多代以前系统迁移而来的数据。这些数据不符合通过当前应用程序代码输入数据的标准。
4.制定发布方式
创建或维护关键数据的系统需要将这些数据提供给组织中的其他系统。生成数据的应用程序应该在数据更改(事件驱动)或定期调度时, 将新数据或更改后的数据推送到其他系统(特别是数据中心和企业数据总线)。最佳实践是为组织中的各种数据类型确定一个通用的消息定义(规范格式),并让具有适当访问权限的数据使用者(应用程序或个人)订阅接收有关数据更改的通知。
5.开发复杂事件处理流
开发复杂事件处理方案需要做以下几个方面的工作:
- 1)准备有关预测模型的个人、组织、产品或市场和迁移前的历史数据。
- 2)处理实时数据流,充分填充预测模型、识别有意义的事件(机会或威胁)。
- 3)根据预测执行触发的动作。
6.维护数据集成和互操作的元数据
管理和维护这些元数据,以确保正确理解系统中的数据,并防止在将来的解决方案中需要重新整理这些信息。可靠的元数据提高了组织管理风险、降低成本和从数据中获得更多价值的能力。记录所有系统的数据结构涉及源、目标和缓存的数据集成,包括业务定义和技术定义(结构、格式、大小)以及数据在持久化的数据存储之间的转换。大多数ETL工具供应商都将其元数据存储库打包为附加功能,以实现治理和管理监督。
2.4 实施和监测
启用已开发并通过测试的数据服务时,对实时数据处理过程需要实时监控运行状况。应建立表示潜在问题的度量指标以及直接反馈问题的机制,尤其是当触发响应的复杂性和风险增加时,应建立对反馈问题的自动化处理和人工监控流程。数据交互功能必须采用与最苛刻的目标应用程序或数据使用者相同的服务级别进行监视和服务。
3.工具
3.1 数据转换引擎/ETL工具
- 数据转换引擎(或ETL工具)是数据集成工具箱中的主要工具,是每个企业数据集成程序的核心。
- 数据转换引擎(或ETL工具)通常支持数据转换活动的操作和设计。
- 对于使用单一的点对点解决方案,数据集成过程经常通过自定义程序编码来实现。
- 企业级解决方案通常需要使用各种工具在整个组织内以标准方式执行相关处理。
- 数据转换引擎选择的基本考虑应该包括是否需要运用批处理和实时功能,以及是否包括非结构化和结构化数据。
3.2 数据虚拟化服务器
- 数据转换引擎对数据进行物理抽取、转换和加载,而数据虚拟化服务器对数据进行虚拟抽取、转换和集成。
- 数据虚拟化服务器可以将结构化数据和非结构化数据进行合并。
- 数据仓库经常是数据虚拟化服务器的输入,但数据虚拟化服务器不会替代企业信息架构中的数据仓库。
3.3 企业服务总线
- 企业服务总线(Enterprise Service Bus,ESB)既指软件体系结构模型,又指一种面向消息的中间件,用于在同一组织内的异构数据存储、应用程序和服务器之间实现近乎实时的消息传递。
- ESB的中央处理器通常在独立于其他参与系统的服务器上实现。处理器跟踪哪些系统对什么类型的消息感兴趣。
- ESB 是一个松耦合的模型,发送数据的系统在继续处理之前不会等待来自接收系统的确认而更新信息。
3.4 业务规则引擎
- 许多数据集成解决方案依赖于业务规则。作为一种重要的元数据形式,这些规则可用于基本的集成,也可用于包含复杂事件处理的解决方案中,以便于组织能够准实时地响应这些事件。
- 业务规则引擎中允许非技术用户管理软件的业务规则,因为业务规则引擎可以在不改变技术代码的情况下支持对预测模型的更改,所以它是一个非常有价值的工具, 可以用较低的成本支持解决方案的演进。例如,预测客户可能想要购买什么的模型,可以定义为业务规则而不是代码更改。
3.5 数据和流程建模工具
- 数据建模工具不仅用来设计目标数据结构,而且用来设计数据集成解决方案所需的中间数据结构。
- 在系统和组织之间传送的信息或数据流通常不会持久化,但是也应对其进行建模。另外,如同复杂事件处理流 一样,还应该对系统和组织之间的数据流进行设计。
3.6 数据剖析工具
- 数据剖析包括对数据集的内容统计分析,以了解数据的格式、完整性、一致性、有效性和结构。
- 所有数据集成和互操作开发应该包括对潜在数据源和目标的详细评估,以确定实际数据是否满足所提议解决方案的需要。
3.7 元数据存储库
- 元数据存储库包含有关组织中数据的信息,包括数据结构、内容以及用于管理数据的业务规则。
- 在数据集成项目中,可用一个或多个元数据存储库来记录数据源、转换和目标的数据的技术结构和业务含义。
- 数据集成工具使用的数据转换、血缘和处理规则也存储在元数据存储库中,每个工具通常都有自己的元数据存储库。可以将其中一个元数据存储库指定为用于合并来自各种操作工具数据的中心节点。
4.方法
在基本概念中,描述了设计数据集成解决方案的几种重要方法。基本目标是保持应用程序松散耦合,限制开发和管理接口的数量,使用中心辐射形方法并创建标准规范的接口等。
5.实施指南
5.1 就绪评估/风险评估
企业数据集成解决方案的选择通常是基于多个系统之间实现集成的成本合理性。设计一个企业数据集成解决方案,不仅要实现第一个应用程序和组织的集成,而且能支持在多个应用程序和组织之间移动数据。应用程序支撑团队倾向于在本地管理数据集成解决方案(成本低)。在解决方案设计和技术采购时,有足够权威级别的团队(如IT企业架构级别)来支持企业数据集成项目的实施是很有必要的。采用新技术的数据集成开发项目常常将实施重点放在技术上,而忽略了业务目标。必须确保实施数据集成解决方案应保持在关注业务目标和需求上,包括确保每个项目中的参与者都有面向业务或应用程序的人员,而不仅仅是数据集成工具专家。
5.2 组织与文化变革
- 组织必须确定管理数据集成实施的是由集中管理的团队负责,或是由在分散的应用程序团队负责。
- 本地团队了解他们的应用程序中的数据,中心团队对工具和技术有深刻的理解。
- 许多组织组建了专门从事企业数据集成解决方案设计和部署的卓越中心团队。本地和中心团队协作开发,将应用程序整合到企业数据集成解决方案中。本地团队应该主要负责管理和解决整合过程中问题,必要时升级到卓越中心。
- 开发规范化消息模型或者在组织中实现共享数据的一致标准,涉及的资源包括业务建模资源和技术资源。在每个涉及的系统中,由业务专家审查所有数据转换映射设计和更改。
6.数据集成和互操作治理
- 数据消息、数据模型和数据转换规则设计以业务规则为主, 技术因素为辅, 共同决策。
- 业务利益相关方负责定义数据建模和转换规则,并应由他们批准对这些业务规则的任何更改。应该将这些规则捕获为元数据,并进行合并以进行跨企业分析。识别和验证预测模型以及定义预测自动触发的操作也属于业务功能。
- 在数据集成和互操作中,支持信任的治理控制布局可能是很复杂和具体的。
- 一种方法是确定什么事件触发治理评审(异常或关键事件),将每个触发器映射到与治理机构对应的审查中。当从系统开发生命周期的一个阶段移动到另一个阶段时,事件触发器可能是每个阶段入口的一部分。例如,架构设计符合性检查表可能包括这样的问题:您是否在使用ESB等工具?搜索服务是否可以重用?
- 控制可能来自治理驱动的日常管理工作。例如,强制审查模型、审核元数据、控制可交付结果以及批准更改转换规则。
- 在服务水平协议和业务连续性/灾难恢复计划中,实时操作数据集成解决方案必须与它们提供数据的最关键系统采用同样的备份和恢复要求。
6.1 数据共享协议
数据共享协议应指定预期的数据使用和访问、使用的限制以及预期的服务级别,包括所需的系统启动时间和响应时间。这些协议对于受监管的行业,或者涉及个人或安全的信息的行业尤其重要。
6.2 数据集成和互操作与血缘
治理需要确保记录数据来源和数据移动的信息。数据共享协议可能规定了数据使用的限制。为了遵守这些限制,有必要知道数据在哪里移动和保留。对数据流进行更改时需要数据血缘信息。必须将此信息作为元数据解决方案的关键部分进行管理。前向和后向数据血缘(即数据的使用位置和来源)是数据结构、数据流或数据处理更改时进行影响分析的重要组成部分。
6.3 度量指标
要衡量实现数据集成解决方案的规模和收益,包括可用性、数量、速度、成本和使用方面的指标。
- 1)数据可用性。请求数据的可获得性。
- 2)数据量和速度。它包括:传送和转换的数据量,分析数据量, 传送速度,数据更新与可用性之间的时延,事件与触发动作之间的时延,新数据源的可用时间。
- 3)解决方案成本和复杂度。它包括:解决方案开发和管理成本,获取新数据的便利性,解决方案和运营的复杂度,使用数据集成解决方案的系统数量。
7.总结
- 数据集成和互操作(DII)描述了数据在不同数据存储、应用程序和组织这三者内部和之间进行移动和整合的相关过程。数据集成是将数据整合成物理的或虚拟的一致格式。数据互操作是多个系统之间进行通信的能力。
- 数据集成和互操作提供组织所依赖的基本数据管理职能:1)数据迁移和转换。2)数据整合到数据中心或数据集市。3)将供应商的软件包集成到组织的应用系统框架中。4)在不同应用程序或组织之间数据共享。5)跨数据存储库和数据中心分发数据。6)数据归档。7)数据接口管 理。8)获取和接收外部数据。9)结构化和非结构化数据集成。10)提供运营智能化和管理决策支持。
- 数据集成和互操作依赖于数据管理的其他领域,如:1)数据治理。 用于治理转换规则和消息结构。2)数据架构。 用于解决方案设计。3)数据安全。 无论数据是持久化、虚拟化还是在应用程序和组织之间流动,都要确保解决方案对数据的安全性进行适当的保护。4)元数据。 用于 知晓数据的技术清单(持久的、虚拟的和动态的)、数据的业务含义、数据转换的业务规则、数据操作历史和数据血缘。5)数据存储和操作。 管理解决方案的物理实例化。6)数据建模和设计。 用于设计数据结构,包括数据库中的物理持久化的结构、虚拟的数据结构以及应用程序和组织之间传送的消息结构。
- 业务驱动因素。数据集成和互操作是新兴大数据管理领域的核心,主要目的是为了对数据移动是进行有效管理。主要责任就是管理数据在组织内部的存储库与其他组织之间的双向流动过程。 业务驱动因素:(1)管理数据集成的复杂性以及相关成本。(2)维护管理成本。(3)支持组织遵守数据处理标准和规则的能力。
- 目标: 1)及时以数据消费者(人和系统)所需的格式提供数据。2)将数据物理地或虚拟地合并到数据中心。3)通过开发共享模型和接口来降低管理解决方案的成本和复杂度。4)识别有意义的事件(机会和威胁),自动触发警报并采取相应行动。5)支持商务智能、数据分析、主数据管理以及运营效率的提升。
- 原则: 1)采用企业视角确保未来的可扩展性设计,通过迭代和增量交付实现。2)平衡本地数据需求与企业数据需求,包括支撑与维护。3)确保数据集成和互操作设计和活动的可靠性。业务专家应参与数据转换规则的设计和修改,包括持久性和虚拟性。
- 活动:
- 1.规划和分析。(1)定义数据集成和生命周期需求。(2)执行数据发现。(3)记录数据血缘。(4)剖析数据。(5)收集业务规则。
- 2.设计数据集成方案。(1)设计解决方案组件。(2)建模数据中心接口数据服务。(3)映射数据到目标。(4)设计数据编排。
- 3.开发数据集成解决方案。(1)开发数据服务。(2)开发数据流编排。(3)制定数据迁移方法(4) 开发复杂事件处理流(5)维护 DII 元数据。
- 4.实施和监测。
- 数据集成和互操作的核心是抽取、转换和加载(ETL)这一基本过程。
- 抽取:包括选择所需的数据并从其源数据中提取。
- 转换: 让选定的数据与目标数据库的结构相兼容。格式变化。结构变成。语义转换。消除重复。重新排序。
- 加载: 在目标系统中物理存储或呈现转换结果。
- 如果目标系统比源系统或中间应用系统具有更强的转换能力,那么数据处理的顺序可以切换为ELT——抽取、加载、转换。
- 映射:是从源结构到目标结构 建立 查找矩阵的过程,也是该过程的结果。
- 时延(Latency):指从源系统生成数据到目标系统可用该数据的时间差。延迟可以是很高(批处理)或较高(事件驱动),甚至是非常低(实时同步)。类型: 批处理。变更数据捕获。准实时和事件驱动。异步。实时,同步。低延迟或流处理。
- 变更数据捕获技术:通过增加过滤来减少传送带宽需求的方法,只包含在特定时间范围内更新过的数据。 1)源系统填入特定的数据元素。2)源系统进程在更改数据时被添加到一个简单的对象和标识符列表,然后用于控制抽取数据的选择。3)源系统复制已变化的数据。
- 企业消息格式/规范格式。 通用模型,用于标准化数据共享的格式。
- 交互模型: 1 点对点(影响处理。接口。潜在的不一致。)2 中心要辐射型。3 发布与订阅。
- 企业应用集成模型(Enterprise Application Integration,EAI) 中,软件模块之间仅通过定义良好的接口调用(应用程序编程接口-API)进行交互。数据存储只能通过自己的软件模块更新, 其他软件不能直接访问应用程序中的数据,只能通过定义的 API 访问。企业应用集成是基于面向对象的概念,它强调重用和替换任何模块而不影响任何其他模块的能力。
- 企业服务总线 (Enterprise Service Bus,ESB) 是一个系统,它充当系统之间的中介,在它们之间传送消息。应用程序可以通过 ESB 现有的功能封装发送和接收的消息或文件。作为一个松散耦合的例子,ESB 充当两个应用程序之间的服务角色。
- 面向服务的架构 SOA:通这在应用程序之间定义好的服务调用,可以提供推送数据或更新数据。SOA 的目标是在独立的软件模块之间定义良好的交互。
- 数据服务可以包括数据的添加、删除、更新和检索,这些服务被指定在可用服务的目录中。SOA 可以通过 Web 服务、消息传送、RESTful API 等多种技术来实现。
- 【活动1-1】规划和分析-定义数据集成和生命周期需求。理解组织的业务目标及为实现这些目标而需要的数据和建议的技术方案。由业务分析师、数据管理专员和具有各种职能架构师定义。过程创建并发现元数据,有利于管理数据成风险和成本。
- 【活动 1-2】规划和分析-执行数据探索。为数据集成工作确定潜在的数据来源,还针对数据质量进行高级别的评估,以确定数据是否集成。数据探索会生成完善组织的数据目录。需要做好集成内外部数据的规划。
- 【活动 1-3】规划和分析-记录数据血缘。揭示数据在组织中如何流动。血缘分析可能会识别使用的系统所需的更新,分析过程还可以提供改进现有数据流的机会。
- 【活动 1-4】规划和分析-剖析数据。理解数据内容和结构是实现数据集成功的关键。基本剖析包括:1)数据结构中定义的数据格式和从实际数据中推断出来的格式。2)数据的数量,包括 null 值、空或默认数据的级别。3)数据值以及它们与定义的有效值集合的紧密联系。4)数 据集内部的模式和关系,如相关字段和基数规则。(内部关联)5)与其他数据集的关系(数据集之间的关联)。
- 【活动 1-5】规划和分析-收集业务规则。收集业务规则也称为规则获取、业务规则挖掘。业务规则是需求的一个关键子集,是定义或约束业务处理方面的语句。业务规则旨在维护业务结构、控制或影响业务的行为。业务规则分为四类:业务术语定义、相互关联的术语的事实、约 束或行为断言以及派生。实现数据集成和互操作需要业务规则的支撑内容:1)评估潜在的源数 据集和目标数据集的数据。2)管理组织中的数据流。3)监控组织中的操作数据。4)指示何时自动触发事件和警报。业务规则 :匹配规则、合并规则、存活规则、信任规则。
- 【活动 2-1】设计方案-设计数据集成解决方案: 在企业和单个解决方案两个层面统筹考虑。 尽可能重现有方案和组件。解决方案体系结构表示将要使用的技术,它将包括所涉及数据结构的清单(持久和可传递、现有和必需)、数据流的编排和频率指示、法规、安全问题和补救措 施以及有关备份和恢复、可用性和数据存档和保留。步骤:(1)设计交互模型。(2)设计数据服务交换模式。
- 【活动 2-2】设计方案-建模数据中心、接口、消息、数据服务。 数据持久化的数据结构,如主数据管理中心、数据仓库、数据集市、操作型数据存储库等。
- 【活动 2-3】设计方案-映射数据源到目标。 映射规范:1)指明源数据和目标数据的技术格式。 2)指定源数据和目标数据之间所有中间暂存点所需的转换。3)描述最终或中间目标数据存储 区中每个属性的填充方式。4)描述是否需要对数据值进行转换,如通过在表示适当目标值的表中查找源值。5)描述需要进行哪些计算。
- 【活动 2-4】设计方案-设计数据编排。 从开始到结束的数据流模式,包括完成转换和/或事务所需的所有中间步骤。设定数据移动和转换的频率。
- 【活动 3-1】开发方案-开发数据服务。使用一致的工具或标准的供应商套件。
- 【活动 3-2】开发方案-开发数据流编排。 开发实时数据成流涉及监控事件。可能包括开发数据存储之间的映射或协调点,涉及监控事件。
- 【活动 3-2】开发方案-制定数据迁移方法。 不是一次性的过程,常被低估或缺乏充分的设计。
- 【活动 3-2】开发方案-制定发布方式。 最佳实践是为组织中的各种数据类型确定一个通用的消息定义(规范格式),并让具有适当访问权限的数据使用者(应用程序或个人)订阅接收有关数据更改的通知。
- 【活动 3-2】开发方案-开发复杂事件处理流。 需要做的工作:1)准备有关预测模型的个人、 组织、产品或市场和迁移前的历史数据。2)处理实时数据流,充分填充预测模型、识别有意义的事件(机会或威胁)。3)根据预测执行触发的动作。
- 【活动 3-2】开发方案-维护数据集成和互操作的元数据。 元数据应经过业务和技术利益相关方的审核和批准过程。
- 【活动 4】实施和监测。 建立度量指标和反馈问题的机制。必须进行苛刻的监视和服务。
- 工具: 1、数据转换引擎/ETL 工具。2、数据虚拟化服务器。3、企业服务总线 ESB。4、业务规则引擎。5、数据和流程建模工具。6、数据剖析工具。7、元数据存储库。
- 就绪评估/风险评估:必须基于深入的业务来开发数据集成解决方案。方案要保持在关注业务和需求上。要有足够权威级别的团队来企业数据集成的实施,通过正面激励措施来鼓励,通过负面的管控措施来否决。
- 数据消息、数据模型和数据转换规则设计的决策,直接影响到组织使用数据的能力。这些决策必须由商业因素驱动。【业务驱动,技术支撑,不要喧宾夺主!!!】
- 度量指标:1)数据可用性。 请求数据的可获得性 。2)数据量和速度。 它包括:传送和转换的数据量,分析数据量,传送速度,数据更新与可用性之间的时延,事件与触发动作之间的时延, 新数据源的可用时间。3)解决方案成本和复杂度。 它包括:解决方案开发和管理成本,获取新数据的便利性,解决方案和运营的复杂度,使用数据集成解决方案的系统数量。