# 数据集成和互操作
数据集成和互操作描述了数据在不同数据存储、应用程序和组织这三者内部和之间进行移动和整合的相关过程。数据集成是将数据整合成物理的或虚拟的一致格式。数据互操作是多个系统之间进行通信的能力,数据集成和互操作的解决方案提供了如下大多数组织所依赖的基本数据管理职能:
- 数据迁移和转换。
- 数据整合到数据中心或数据集市。
- 将供应商的软件包集成到组织的应用系统框架中。
- 在不同应用程序或组织之间共享数据。
- 跨数据存储库和数据中心分发数据。
- 数据归档。
- 数据接口管理。
- 获取和接收外部数据。
- 结构化和非结构化数据集成。
- 提供运营智能化和管理决策支持。
# 目标和原则
数据集成和互操作实践与解决方案的实施目标是:
- 及时与数据消费者所需的格式提供数据。
- 将数据物理地或虚拟地合并到数据中心。
- 通过开发共享模型和接口来降低管理解决方案的成本和复杂度。
- 识别有意义的事件(机会和威胁),自动触发警报并采取响应的行动。
- 支持商务智能、数据分析、主数据管理以及运营效率提升。
在实施数据集成和互操作时,组织应遵循以下原则:
- 采用企业视角确保未来可扩展性设计,通过迭代和增量交付实现。
- 平衡本地数据需求与企业数据需求,包括相关的支撑和维护。
- 确保数据集成和互操作设计和活动的可靠性。
# 基本概念
# ETL
数据集成和互操作的核心是抽取、转换和加载这一基本过程。无论是在物理状态下或虚拟状态下,批量的或实时的执行ETL都是在应用程序和组织之间数据流动的必要步骤。ETL处理过程如下图:
根据数据集成的需求,ETL可以作为定期调度事件执行(批处理),也可以在有新数据或数据更新后执行(实时和事件驱动)。操作型数据处理往往是实时或者准实时的,而分析或报表所需的数据通常在批量作业中。
数据集成的需求还可以决定抽取和转换的数据是否存储在物理状态下的分段结构中。物理分段允许追踪数据的审计痕迹,并且可以从中间点重新启动潜在进程。然而,分段结构不仅占用磁盘空间,而且读写耗时。对于需要超低延迟的数据集成需求来说,它通常不会包括数据集成中间结果的物理分段。
抽取 抽取过程包含选择所需的数据并从其源数据中提取。然后,被抽取的数据会在磁盘或内存中的物理数据存储库中进行存储。如果在磁盘上进行物理缓存,则缓存数据库可以和源数据库或目标数据库合并,或者两者都合并。
在理想情况下,如果这个过程在一个操作型系统上执行时,为了避免对操作流程产生负面影响,那么设计时应考虑尽可能少的使用资源,可以在非高峰时间进行批处理,其中包括执行选择或识别待抽取数据等操作。
转换 转换过程是让选定的数据与目标数据库的结构相兼容。转换包括多种情况,例如,当数据向目标移动时将它从源数据移除,或是数据复制到多个目标中,或是数据用于触发事件但不会持久化。转换的例子包括:
- 格式变化。技术上的格式转换。
- 结构变化。数据结构的变化,如从非规划到规范化的记录。
- 语义转换。数据值转换时保持语义一致化表达,如源性别码可以是0、1、2、3,而目标性别代码可以表示为unknown、female、male或 not frovided。
- 消除重复。如规则需要唯一的键值或记录,以确保包括扫描目标、检测和删除重复行的方法。
- 重新排序。改变数据元素或记录的顺序以适应已定义的模式。
加载 加载过程是在目标系统中物理存储或呈现转换的结果。根据所执行的转换、目标系统的目的和其预期用途,数据可能需要被进一步处理以便与其他数据集成,或者可能以一种最终形式呈现给消费者。
ELT 如果目标系统比源系统或中间应用系统具有更强的转换能力,那么数据处理的顺序可以切换为ELT(抽取、加载、转换)。ELT允许在数据加载到目标系统后再进行转换。ELT允许元数据以原始数据的形式在目标系统上实例化,在大数据环境中,ELT加载方式比较常见。
# 其他概念
映射 映射定义了要抽取的源数据与抽取数据的识别规则。它既是从源结构到目标结构建立查找矩阵的过程,也是该过程的结果。映射定义了要抽取的源数据与抽取数据的识别规则、要加载的目标与要更新的目标行的识别规则,以及要应用的任何转换和计算规则。有些数据集成工具提供了映射的可视化页面,因此开发人员可以使用图形界面创建转化代码。
低延迟或流处理 快速的数据集成解决方案已经取得了巨大的进展。这些解决方案需要硬件和软件的投资,如果一个组织需要快速的进行远距离移动数据,那么为低时延解决方案付出的额外成本是合理的。随着事件的发生,”流数据“在事件发生后立即从计算机系统实时连续的流出。低延迟数据集成解决方案旨在减少事件的响应时间,它们可能包括使用像固态硬盘的硬件解决方案或使用内存数据库的软件解决方案,这样就不会因为读写传统磁盘而造成延迟。
异步解决方案通常用于低延迟解决方案,这样事务在处理下一个数据之前不需要等待后续进程的确认。大规模多处理器或并行处理也是低延迟解决方案中常见的配置,这样传入数据的处理可以同时分散在多个处理器上,而不是在单个或少量处理器上,一面造成阻塞。
消息格式规范 规范化的数据模型是组织或数据团队使用的通用模型,用于标准化数据共享的格式。在中心辐射型数据交互设计模型中,所有想要提供或接收数据的系统只与中央信息中心进行交互。根据通用的活企业消息格式规范将数据从发送系统转换到接收系统中。格式规范的使用,降低了系统或组织之间的数据转换量,每个系统都只需要将数据转换为中央规范格式的数据,而不需要将数据转换为众多系统格式。
交互模型 交互模型描述了在系统之间建立以及传送数据的方式,有如下三种模型:
- 点到点:它们直接相互传递数据,这个模型通常用于一个系统的上下文之间。
- 中心辐射型:它将共享数据整合到应用程序,可以使用一个中央数据中心。所有想交换数据的系统都是通过一个中央公共数据控制系统进行交换,而不是直接与其他系统点对点的交换。数据仓库、数据集市、操作数据存储和主数据管理中心都是数据中心的最佳实践。
- 发布与订阅:涉及推送数据的系统(发布)和其他接收数据的系统(订阅),在数据服务的目录中列出推送数据的系统,需要使用数据的系统订阅这些服务。在发布数据时,数据会自动发送给订阅用户。当多个数据消费者需要特定格式的数据集时,集中开发该数据集并使其对所有想要的人都可用,可确保所有参与者及时收到一致的数据集。
# 数据集成规划与分析
# 定义需求
定义数据集成需求涉及理解组织的业务目标,以及为实现这些目标而需要的数据和建议的技术方案。还需要收集这些数据相关法规或法律,由于数据内容的原因,有些活动可能受到限制,而预先了解这些情况将防止以后出问题。
数据集成和生命周期需求通常要以特定的格式在特定的位置获取数据,并与其他数据集成。需要确定数据集成和互操作交互模型的类型,然后制定满足需求所需的技术和服务。定义需求的过程可以创建并发现有价值的元数据,这些元数据从发现到操作,应该在整个数据生命周期中进行管理。组织的元数据越完整和准确,其管理数据集成风险和成本的能力越强。
# 数据探索
数据探索的目标是为数据集成工作确定潜在数据来源,数据探索将确定可能获取数据的位置以及可能集成的位置。数据探索还包括评估审查现有文档,还要通过数据剖析和其他分析来验证根据实际数据收集的信息,数据探索生成完善组织的数据目录,这个目录通常维护在元数据仓库中。
# 记录数据血缘
在数据探索的过程中,将揭示数据是如何在一个组织中流动的,此流动的信息可用于记录高级数据血缘,其中包含数据是如何被组织获取或创建的,它在组织中是如何移动和变化以及如何被组织用于分析、决策或事件触发的。详细记录的数据血缘可以注明哪些规则改变数据以及其改变的频率。
血缘分析可能会识别使用中系统所需的更新,自定义编码的ETL和其他遗留数据操作对象应当被记录下来,以确保组织能够分析出数据流中任何更改的数据。
# 剖析数据
理解数据的内容和结构是实现数据集成的关键。数据剖析有助于实现这一目标,实际的数据结构和内容总是和假定有差异,剖析这些数据可以帮助团队发现这些差异,并利用这些差异对采购和设计做出更好的决策。基本剖析包括:
- 数据结构中定义的数据格式和从实际数据中推断出数据格式。
- 数据的数量,包括空值或默认数据的级别。
- 数据值以及它们与定义的有效值集合的紧密联系。
- 数据集内部的模式和关系,如相关字段和基数规则。
- 与其他数据集的关系。
# 收集业务规则
业务规则是需求的一个关键子集,是定义或约束业务处理方面的语句,业务规则旨在维护业务结构、控制或影响业务行为。业务规则分四类:业务术语定义、相互关联术语的事实、约束或行为断言以及派生。实现数据集成和互操作需要业务规则的支撑,具体包括以下几个方面:
- 评估潜在的源数据集和目标数据集的数据。
- 管理组织中的数据流。
- 监控组织中的操作数据。
- 指示何时自动触发事件和警报。
# 设计数据集成解决方案
数据集成解决方案应该在企业和单个解决方案两个层面统筹考虑,因为评估和协商工作是需要在确定数据集成解决方案之前进行,解决方案体系结构表示将要使用的技术,它将包括所涉及数据结构的清单、数据流的编排和频率指示、法规、安全问题和补救措施以及有关备份和恢复、可用性和数据存档和保留。设计解决方案包含如下几个步骤:
- 选择交互模型。
- 设计数据服务或交换形式。
- 选择行业数据标准。
# 映射数据源到目标
数据集成解决方案包括从源结构到目标结构的数据转换,需要做好从一个位置到另一个位置的数据格式转换映射规则,对于映射关系中的每个属性,映射规则如下:
- 指明源数据和目标数据的技术格式。
- 指定源数据和目标数据之间所有中间暂存点所需的转换。
- 描述最终或中间目标数据存储区中每个属性的填充方式。
- 描述是否需要对数据值进行转换,如通过在表示适当目标值的表中查找源值。
- 描述需要哪些计算。
# 设计数据编排
数据集成方案中的数据流必须做好设计和记录,数据流程编排是从开始到结束的数据流模式,包括完成转换和事务所需的所有中间步骤。批量数据集成的流程编排将设定数据移动和转换的频率,批量数据集成通常被编码为一个调度器,它会在某个时间、周期或在事件发生时被触发启动。调度器可能包括具有依赖关系的多个步骤。
实时数据集成流程通常由事件触发,如数据新增或更新。实时数据集成流程编排通常更复杂,通常需要跨多个工具来实现。对集成或ETL数据流,通常会采用专用工具以特有的方式进行开发,对批量数据流将在一个调度器中开发,以管理执行已开发的数据集成组件顺序、频率和依赖关系。