变更数据捕获和实时数据仓库框架

Framework Of Change Data Capture And Real Time Data Warehouse
Mayuri B. BokadeS. S.DhandeH. R. Vyavahare
International journal of engineering research and technology Apr 2013
International Journal of Engineering Research


本文提出了一种实时数据仓库中变更数据捕获和数据提取的框架。数据捕获框架支持触发、数据复制和其他捕获方法。实时数据仓库描述了一个实时反映业务的系统,它提出了实时调度策略。在大型组织中,为每次处理数据都需要最新信息的决策者生成和消耗大量数据。实时数据仓库,它将以更紧凑的数据和更短的周期管理ETL过程。未来,本文将使用实时变更数据捕获 (CDC) 技术提高数据质量。变更数据捕获框架在数据仓库的 ETL 设计中具有非常重要的作用。

关键词:变更数据捕获、实时数据仓库、ETL

1 介绍

传统上,数据仓库不包含今天的数据,即最新数据。它们通常加载来自操作系统的数据。无论地理位置或业务行业如何,期望在正确的时间以正确的格式将准确和可信的信息传递给正确的人是很重要的。由于传统数据仓库缺乏实时更新,因此需要实时数据仓库。实时数据仓库通常描述实时反映业务的系统。当我们必须非常迅速地做出决定时,访问实时数据是几乎每个公司的关键考虑因素之一。根据过时的数据做出战略决策可能会产生错误的结果。随着当今商业世界的决策变得更加实时,支持这些决策的系统需要跟上。数据仓库、商业智能、决策支持系统迅速开始整合实时数据。在这种情况下,保持数据从捕获数据到可供决策者使用是一项艰巨的任务。变更数据捕获 (CDC) 是一种创新的数据集成机制,基于对企业/运营/交易数据源所做变更的识别、捕获和交付。

通过 CDC 处理更改,从而使数据集成过程更加高效和实时,并通过减少数据更改发生时间与业务用户可以使用相同更改之间的延迟来降低其成本。 CDC 使用 ETL(提取、转换和加载)工具来处理 DW 更新。 ETL 是一个软件程序,它从源系统中提取数据,对数据进行转换和清理,然后将其加载到 DW 中。本文提出了一种实时数据仓库中变更数据捕获和数据提取的框架。本文重点介绍如何提取数据、如何转换数据并将其加载到数据仓库中。

2 变更数据捕获

检测源系统中更改的数据并捕获这些更改的能力称为更改数据捕获 (CDC)。处理这些更改是最困难和最具挑战性的任务。目的只是检测自上次加载以来已更改的数据; CDC 的实施可能会引起许多问题和疑问。从技术上讲,我们可以说变更数据捕获 (CDC) 是用于实现实时同步的过程。 Change Data Capture 仅快速识别和处理已更改的数据,并使更改后的数据可用于进一步使用。

CDC 的一个目标是通过处理最少量的数据来提高效率。 CDC 解决方案可以提供过滤器,允许减少信息量并仅提供相关记录。此类过滤器可以根据更改的类型(即插入、更新)交付记录,仅在特定字段发生更改时交付记录,或者从原始记录中指定处理所需的字段子集。这些过滤器在靠近源运行时可以通过减少遍历网络的记录量来获得最大的收益。

鉴于许多公司需要最新信息,他们已开始寻找实时更新 DW 的方法,从而大大减少延迟。

CDC 提供了一种有效的机制来使 ODS 保持最新状态,方法是连续识别和交付更改,而不是定期查询整个数据库的更改。此外,CDC 可以近乎实时地推送更改,以支持具有极低延迟要求的 ODS 应用程序。

使用 CDC,传播具有来自给定数据源的一个或多个数据副本的数据的过程可以变得更加高效,并减少提供新数据的延迟。
CDC算法
在上述变更数据捕获算法1中,步骤2到10设置数据字典并加载日志数据进行分析;从 11 到 17 的步骤分析日志文件,捕获更改的数据信息并导出更改的数据以进行进一步处理。

3 CDC技术

有几种技术和技术可用于处理变更数据捕获流程(CDC 流程),其中一些是:

3.1 事务日志文件

几乎所有的数据库管理系统都有一个事务日志文件,记录每个事务对数据库所做的所有更改和修改。为了捕获对数据库所做的更改,我们可以扫描和分析数据库事务日志的内容。当变更数据捕获过程使用此技术时,事务日志分析不会影响可操作的事务数据库。

3.2 触发器方法

CDC 的最佳技术之一是向应控制和管理其更改的表添加触发器。可以在操作系统中创建触发器以跟踪最近更新的记录。然后可以将它们与时间戳列结合使用,以识别给定行最后一次修改的确切时间和日期。我们通过在每个需要捕获变更数据的源表上创建一个触发器来做到这一点。在源表上执行的每个 DML 语句之后,此触发器将时间戳列更新为当前时间。因此,时间戳列提供了给定行最后一次修改的确切时间和日期。在这种方法中,当发生插入、更新或删除操作时,触发器会被打开,并记录有关特定表或文件的更改信息,但在实现附加触发器时会遇到障碍。

3.3 RDBMS 复制

在数据库管理系统复制过程中,数据的副本自动分布在少数几个数据库服务器之间,并保持分布的信息同步。如果RDBMS支持复制,我们还可以使用这种机制将数据复制到数据仓库。复制并不是确切的变更数据捕获机制,因此这需要额外的努力来使用复制来实现CDC的需求。此外,由于不兼容,复制可能不是异构源系统的良好解决方案。

4 变更数据捕获框架

变更数据捕获框架支持触发器、数据复制和其他捕获方法。图 1 显示了基于事务日志文件的变更数据捕获框架。
图 1

该框架包括基于日志文件的变更数据捕获组件、调度控制以及数据转换和加载、调度组件和其他组件。源数据库将继续生成新的数据,日志文件记录数据库的变化,但所有数据的重要性是不同的。重要数据优先导入RTDWH。数据队列由变更数据捕获组件导入的数据组成。调度组件采用First inFirst Serve调度(FIFS)和优先级调度,保证了实时数仓中数据的新鲜度和数据质量。同时调度控制器监控CPU的利用率,采用实时反馈的方法调整调度策略,提供更好的数据质量保证。调度控制器解决任务调度问题,同时解决重要任务的优先级调度问题。它设置所有任务的优先级。优先级控制器根据优先级对任务进行分类,并将任务交付到不同的运行队列中。数据转换和加载组件,首先将数据清洗干净,然后将其转换为特定格式,然后通过加载组件连接到RTDWH。

5 ETL 和数据仓库 (DW)

降低与更新企业 DW 相关的成本和资源是业务或 IT 面临的问题。 CDC 使用 ETL 工具提供了一种将信息移动到 DW 中的新方法降低与更新企业 DW 相关的成本和资源。传统上,DW 更新是使用 ETL(提取、转换和加载)工具处理的。 ETL 是一个软件程序,它从源系统中提取数据,对数据进行转换和清理,然后将其加载到 DW 中。

这些过程要求操作系统在给定的时间段内下线。这段时间被称为“批处理窗口”,通常以小时甚至几天为单位,在此期间系统忙于移动数据,无法执行操作和其他关键任务功能。鉴于这种“批量”方法的局限性,大多数 IT 商店仅每天更新其 DW,通常每周更新一次。鉴于许多公司需要最新信息,他们已开始寻找实时更新 DW 的方法,从而大大减少延迟。例如,在 Share Market 的情况下,当业务分析师无法获得数据时,每小时不可用可能会造成数百万美元的损失。CDC 提供了一种将信息移动到 DW 中的新方法,并且可以与 ETL 一起使用。

CDC 批量或实时交付对 ETL 工具的更改,从而显着提高整个流程的效率,减少或完全消除批处理窗口,以低延迟交付信息,并降低相关成本,包括 CPU 周期、存储、网络带宽和人力资源。

6 ETL 过程

提取、转换和加载 (ETL) 是指涉及以下过程的过程: 从外部提取数据源,对其进行转换以满足质量和运营需求,然后将该数据加载到目标,即数据库或数据仓库。ETL 过程从各种源中提取数据并将其加载到数据仓库。ETL 系统用于从一个数据源中移动数据数据仓库到另一个数据仓库。 ETL 过程首先从各种数据源或操作应用程序中提取数据,然后转换不一致数据的值,清理“坏”数据,对其进行过滤,然后将该数据加载到目标数据仓库。

ETL 过程不是一次性事件;新数据会定期添加到数据仓库中。典型的周期性可能是每月、每周、每天甚至每小时,这取决于数据仓库的目的和它所服务的业务类型。

7 数据仓库中的提取

提取是从源系统中提取数据以在数据仓库环境中进一步使用的操作。这是 ETL 过程的第一步。提取后,可以将这些数据转换并加载到数据仓库中。设计和创建提取过程通常是 ETL 过程和整个数据仓库过程中最耗时的任务之一。源系统可能非常复杂且记录不充分,因此很难确定需要提取哪些数据。数据不仅必须正常提取一次,而且还必须定期提取多次,以将所有更改的数据提供给数据仓库并使其保持最新状态。此外,源系统通常无法修改,也无法调整其性能或可用性,以适应数据仓库提取过程的需要。数据仓库中有多种提取方法:

7.1 逻辑提取方法

有两种类型的逻辑提取:

7.1.1 完全提取

数据完全从源系统中提取。由于此提取反映了源系统上当前可用的所有数据,因此无需跟踪自上次成功提取以来对数据源的更改。完整提取的示例可能是不同表的导出文件或扫描完整源表的远程 SQL 语句。

7.1.2 增量提取

在特定时间点,仅提取自历史上明确定义的事件以来发生变化的数据。为了识别这种变化,必须有可能识别自这个特定时间事件以来所有变化的信息。此信息可以由源数据本身(例如应用程序列)提供,反映上次更改的时间戳,也可以由更改表提供,其中适当的附加机制跟踪原始事务之外的更改。

7.2 物理提取方法

数据既可以从源系统在线提取,也可以从离线结构中提取。物理提取方法有以下几种:

7.2.1 在线提取

数据直接从源系统本身提取。提取过程可以直接连接到源系统以访问源表本身,也可以连接到以预配置方式存储数据的中间系统(例如,快照日志或更改表)。对于在线提取,您需要考虑分布式事务是使用原始源对象还是准备好的源对象。

7.2.2 离线提取

数据不是直接从源系统中提取的,而是在原始源系统之外显式暂存的。数据已经具有现有结构(例如,重做日志、归档日志或可传输的表空间)或由提取例程创建。

8 数据仓库中的运输

传输是将数据从一个系统移动到另一个系统的操作。在数据仓库环境中,最常见的传输要求是将数据从一个数据仓库移动到另一个数据仓库或数据集市。运输是 ETL 流程的简单阶段之一,可以与流程的其他阶段集成。

在仓库中传输数据有三种基本的传输机制:

8.1 使用平面文件传输

传输数据的最常见方法是传输平面文件,使用诸如 FTP 或其他远程文件系统访问协议之类的机制。数据从源系统卸载或导出为平面文件,然后使用 FTP 或类似机制传输到目标平台。由于源系统和数据仓库经常使用不同的操作系统和数据库系统,使用平面文件通常是最简单的方法在异构系统之间以最少的转换交换数据。然而,即使在同构系统之间传输数据时,平面文件通常也是最有效和最易于管理的数据传输机制。

8.2 通过分布式操作传输

分布式查询,无论有无网关,都可以成为提取数据的有效机制。这些机制还将数据直接传输到目标系统,从而在一个步骤中提供提取和转换。通过分布式查询或事务的结果立即识别传输的成功或失败。

8.3 使用可传输表空间的传输

Oracle 可传输表空间是在两个Oracle databases之间移动大量数据的最快方式。在引入可传输表空间之前,最具扩展性的数据传输机制依赖于移动包含原始数据的平面文件。这些机制要求将数据从源数据库中卸载或导出到文件中。然后,在传输之后,这些文件被加载或导入到目标数据库中。可传输表空间完全绕过卸载和重新加载步骤。使用可传输表空间,Oracle 数据文件(包含表数据、索引和几乎所有其他 Oracle 数据库对象)可以直接从一个数据库传输到另一个数据库。此外,与导入和导出一样,可传输表空间除了传输数据外,还提供了一种用于传输元数据的机制。可传输表空间有一些限制:源系统和目标系统必须在相同的操作系统上运行。

9 在数据仓库中加载

ETL 是加载大量数据的理想解决方案,还提供高级转换功能。在数据被清理并转换为符合数据仓库要求的结构后,数据就可以加载到数据仓库中了。您可以在加载操作期间进行一些最终转换,但您应该在最终加载操作之前完成任何可能识别不一致的转换。您可以使用各种机制将数据加载到数据仓库,例如 SQL 加载器或外部表或导出/导入。加载阶段将数据加载到最终目标,通常是数据仓库 (DW)。根据组织的要求,此过程变化很大。一些数据仓库可能会用累积信息覆盖现有信息,每天、每周或每月都会频繁更新提取数据。其他 DW(甚至同一 DW 的其他部分)可能会以历史形式添加新数据,例如每小时。要理解这一点,请考虑维护去年销售记录所需的 DW。然后,DW 将用较新的数据覆盖任何超过一年的数据。但是,任何一年窗口的数据输入都将以历史方式进行。替换或追加的时间和范围是战略设计选择,取决于可用时间和业务需求。更复杂的系统可以维护对 DW 中加载的数据的所有更改的历史记录和审计跟踪。当加载阶段与数据库交互时,可传输的表空间)或由提取例程创建。

10 实时数据集成

下一代数据集成和 ETL(提取-转换-加载)工具需要支持变更数据捕(CDC),实施 CDC 可以显着提高实时数据和信息集成的效率,并在正确的时间交付数据。变更数据捕获是一种数据集成方法,基于仅识别、捕获和交付对运营/交易数据系统所做的更改。通过仅处理更改,CDC 使数据集成,更具体地说,ETL 过程的“提取”部分更加高效。如果操作正确,它还可以减少源系统中发生更改与数据仓库中的业务用户可以使用相同更改之间的“延迟”。变更数据捕获是一种技术,可用于解决 IT 经理面临的许多数据管理或数据集成挑战。这些挑战的范围从解决批处理窗口挑战到提供实时数据馈送以支持业务应用程序中的工作流。在下一代实施中,CDC 使实时数据和信息集成显着更加高效,并在正确的时间交付数据。当业务需求是只捕获某些更改时,转移所有更改将是一种浪费。因此,最先进的 CDC 解决方案提供的过滤器可减少传输的信息量,从而最大限度地减少资源需求并最大限度地提高速度和效率。

11 结论和进一步的工作

本文提出了一种实时数据仓库中基于事务日志的变更数据捕获框架。我们解释了变更数据捕获的各种技术。使用 ETL 捕获变更数据,成功地提供了将信息移动到数据仓库的新方法,并且还使信息集成更加实时高效,即在正确的时间交付信息。我们介绍了ETL 和 CDC 仅使用 Oracle 数据库,但我们可以使用其他数据库对其进行研究。未来,我们可以通过结合变更数据捕获(CDC)和 ETL 工具的优势来实现实时数据交付。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随处可见的打字员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值