用于自动化etl应用的系统和方法

文档序号:6480194阅读:260来源:国知局
专利名称:用于自动化etl应用的系统和方法
技术领域
本发明一般地涉及数据处理,并且更具体地,涉及自动化管理 用于填充数据库的ETL (提取转换装载)处理。
背景技术
ETL是用于描述数据入库(data warehousing )(或填充数据库) 处理的通用术语,其涉及从源提取数据、将数据转换成适于商业需 要,并且最终将数据装载进数据库。
ETL处理的第 一部分是从源系统提取数据。许多数据库填充工 程合并来自多个不同源的数据。每个分离的源也可能使用不同的数 据组织结构和/或格式。此类的数据源可以包括关系数据库和平面文 件,但也可以包括非关系数据库结构。提取步骤提取数据并且将数 据解析成用于转换处理的格式。
转换处理通常对提取的数据应用规则和/或函数,以准备待装载 的数据。转换处理的要求是提取的数据以及用于数据库的最终数据 格式的函数。此类的转换规则和函数包括选择特定的字段、翻译编 码的符号、编码新的符号、计算值、合并源等等。
装载处理将转换的数据装载进数据库。根据组织的要求,该处 理范围很宽。某些数据库仅以新的数据来覆盖旧的信息。更为复杂 的系统可以保留历史并且审查数据库的所有改变的痕迹。
ETL处理可以很复杂,具有明显的操作问题。 一个此类的问题 是伸缩性。由于其属性,ETL处理可以被周期性地执行,具有增加 的数据量和数据源要处理。此外,转换规则和函数可以被持续地修 改以基于商业需要不同地处理数据。运行E T L处理的另 一 个问题是其可以要求相当大数量的处理时 间,并且可以很容易涉及能中断处理的错误和其他不可预见的条件。 典型i也,不可以重启一个处理级,而必须再次/人开始运4亍。这可以 显著地延长执行完整的ETL处理的时间。
E T L处理的另 一 个问题是其需要大量的工作量来设计和构建用 于特定域的ETL系统。 一个中型数据仓库工程可以具有200-300个 分离的作业。对于必须设计、构建、运行和维护此类复杂的系统的 开发者来说,几乎没有自动化的工具或技术来辅助他们。

发明内容
下文提供对本发明的筒短总结以便提供对本发明的某些方面的 基本理解。该总结并不是本发明的详尽评述。不旨在标识出本发明 的关键或重要元素或叙述本发明的范围。下面的总结仅仅以简化形 式提供本发明的某些概念,作为下面将提供的详细描述的序言。
本发明的一个实施方式称为"DataStage服务架构"并且存在于 IBMDataStageETL工具的顶部。相对于传统的DataStage安排技术, 本发明的该实施方式提供若干种优势。其可以最小化工作流程执行 时间,例如通过尽可能快地在所有前期必备的作业已经完成并且作 业槽(slot)可用时启动ETL作业来优化CPU使用。类似地, 一个 实施方式自动地管理重启活动,因为其将阻止被放弃作业的所有子 作业的4丸行以1更防止不一致性。 一旦重启,该实施方式卩又完成前次 执行挂起的作业。
一个实施方式允许通过使用技术表来定义和更新所有的配置。 作为 一个例子,添加或移除工作流程内的作业仅仅是插入/删除表中 的值的事情。
本发明的一个实施方式允许现有的ETL工程合并进新的架构中。
本发明的实施方式的优势在于减小用于设计、构建和测试ETL 系统的工作量。根据使用的架构组件和作业模板的比例以及应用的
6个性化程度,在新的工程上可以节省若千人月的架构开发。相比于
在ETL作业间没有使用共同的指南、模板、架构或服务的情形,使 用本发明估计可以节省整个ETL开发工作量的40-50%。 其他优势包括
.减小营销的时间,使用预构建的架构层,其通常位于ETL
开发的关键路径上。
通过业已证明、全面的和预先测试过的框架和服务组件,
减小开发风险并提升软件质量。
通过将ETL管理服务尽可能地与ETL作业设计隔离而增加
灵活性,避免例如垂直或水平绑定ETL的固定#1行方案。
通过带有共享组件的模块化和标准化的架构,以及通过技
术元数据和软件文档的强制和标准化产品,增加了可维护性。
通过标准和全面的操作组件,改进可操作性。 本发明的一个实施方式包括一种用于利用作业表处理多个ETL 作业的系统,该作业表包括多个作业标识符,每个作业标识符标识 要运行的作业,其中所述作业表进一步包括关于在运行其他作业之 前,需要完成哪些作业的信息。其也可以包括优先级表,该优先级 表包括作业表中至少 一个作业标识符的优先级信息,其中如果一个 作业完成并且多个作业目前可以运行,则系统使用优先级表中的优 先级信息来确定多个作业中的哪个作业将运行。其也可以包括状态 表,该状态表包括关于哪些作业已经运行的信息,以及关于每个此 类作业的状态结果的信息。系统可能在所有作业完成之前停下,于 是在重启时,还未完成的作业将被运行。如果作业已经运行并且状 态表指示作业已经完成,则作业将不会再次运行。系统可以将可同
时运行的作业的数目限制到预定的值。
关于在运行其他作业之前需要完成哪些作业的信息可以采用第 一作业标识符和第二作业标识符之间的父/子指示的形式。
另一个实施方式包括用于生成对关于多个ETL作业的实时信息的显示的显示接口 ,例如标识哪些作业已经完成。
本发明的另一实施方式包括整合组件,例如工作流程设计器,
用于从应用提取关于多个ETL作业的信息,并且将该信息插入进作业表中。另外, 一个实施方式可以包括示图生成器,用于从作业表提取信息并且产生作业的示图,该示图包括哪些作业必须在其他作业之前运行的指示。示图生成器可以使用Visio⑧宏来生成Visio中的示图。
本发明也可以包括一种用于处理多个ETL作业的方法,其可以通过工作流程管理器来执行。该方法可以包括从作业表确定要运行的多个作业,其中作业表进一步包括关于在运行其他作业前需要完成哪些作业的信息;从状态表确定要运行的多个作业的状态,其中
状态表包括哪些作业已经成功完成以及哪些作业需要被再次运行的指示;基于来自作业表和状态表的信息确定要运行的作业的子集。要运行的作业的子集可以被保持在低于预定值。该方法也可以包括开始该作业子集的处理;并且如果该作业子集中的作业完成,则确定将要运行的另 一 个作业,其中该确定包括如果多个作业目前可以运行,则使用作业优先级信息。其也包括基于对多个作业的处理来更新状态表。如果在所有作业完成前处理停止,则在再次开始多个作业的处理时,完成的作业将不再次运行。
该确定要运行的作业的子集的步骤包括基于来自状态表的指示确定哪些作业已经完成。
该方法也可以包括生成对关于多个作业的实时信息的显示,其中多个作业中的每个作业的状态将被显示。此类状态可以包括标识作业是否已经完成。


通过参考考虑附图的以下描述,可以获得对本发明及其优势的更为全面的理解,其中相似的参考标号指代相似的特征,并且其中图1示出本发明的一个实施方式的商业组件层的概览;
8图2示出本发明的一个实施方式的元数据/语义层的概览;图3示出一个实施方式的服务层的概览;
图4示出形成一个称为"DataStage服务架构"(涉及DataStageETL作业组件)的实施方式的若干组件;
图5示出根据本发明的一个实施方式的元数据表;
图6A和图6B示出由工作流程管理器执行的应用逻辑的流程图7示出根据一个实施方式的实时监视显示;以及
图8示出根据一个实施方式的图表工具的样本输出。
具体实施例方式
在下文对各种实施方式的描述中,将参考附图,附图形成这里的一部分,并且在其中通过示例的方式示出可以实施本发明的各种实施方式。应该理解,在不脱离本发明的范围下,可以使用其他的实施方式并且做出结构和功能上的修改。
一个实施方式(称为DataStage (数据级)服务架构(DAS ))为涉及简单或复杂数据装栽操作的不同类型ETL应用(例如数据入库、数据整合、数据移植等)提供完整和稳健的数据装载环境。DataStage服务架构是较宽泛的资产ETL加速器套件的一部分,该资产ETL加速器套件也包括下面详细描述的ETL加速器框架。根据本发明的 一 个方面的资产E T L加速器套件旨在提供用于设计和构建ETL应用的助推启动(jumpstart),这些应用通常用于数据仓库填充、数据整合、主数据同步或其他成批数据移植。加速器设计工作在业已得到证明的策略、原理、最佳实践和已开发且在实际生产环境中使用的组件上。
ETL工程中的数据装栽涉及商业转换和对公共服务的使用。商业转换是像提取(选择)、分类/过滤(排序、分组、哪里)、转换("真业务逻辑(true business logic )")和装载(插入或更新)之类的基本任务的组合。公共服务是管理像调度、参数化、重启&SLA管理、审查日志等架构任务的操作。本发明的一个实施方式关注于提供针对这些公共服务的执行环境。
E T L软件的编程和维护可以是复杂的操作。为了支持商业组件,本发明的一个实施方式包括专用于涉及ETL安排的公共任务的一组服务组件。这些组件可以是平台相关的但商业感知的(businessaware),从而它们是高度可重用的。使用具有预构建和已测试的服务组件的已证明框架的巨大优势在于开发者可以减小设计&构建工作量,同时获得更好的软件质量。典型地可以实现节省总ETL开发工作量的大约40-50%。 一个实施方式有助于设置提升全面软件质量的标准设计指南,并且还强制产生可帮助开发者工作的技术元数据,并且减小了软件归档的工作量。
现在将提供根据一个实施方式的ETL加速器框架的概览。ETL加速器框架包括3个层商业组件、元数据/语义、和服务。服务和元数据层图表是与由Accenture公司提供的用于商业智能的Accenture递送架构商业智能应用风格和Accenture递送方法共享的基础。
在图1中示出用于ETL框架的商业组件。其包含核心业务逻辑。组件的高层视图包括提取(选择)任务20、分类/过滤(排序、分组,哪里)任务22、转换(其包括业务逻辑的使用)任务24和装载(插入或更新)任务26。
图2的元数据层可以包括一组表32-34以及用于管理软件配置和文档的主要工具,所述一组表32-34保持共同的定义、管理公共的任务。在许多情形下,由ETL工具提供元数据仓库36,并且元数据仓库36也提供例如数据谱系或影响分析的功能。元数据可以从现有环境中导入。进一步,元数据可以用于使用提供的工具来产生当前ETL应用的文档。
图3的服务组件支持与ETL安排有关的共同任务的商业层。它们通常是平台相关的但商业感知的,因此是高度可重用的。通常,在公共的ETL架构中,大多数的控制和管理逻辑与业务逻辑绑在一起并且这些都包含在^:据流组件中(在DataStage中这称为作业)。
10在用于本实施方式的方法中,业务逻辑与控制和管理逻辑分开,从
而,在DataStage作业中,通常^又i文置业务逻辑。该方法支持在多个实现之间重用控制和管理组件,而不需要重新架构这些组件。对于DataStage解决方案,例如数据填充服务37和批处理服务38的某些组件被本发明的一个实施方式的DataStage架构启用。由于它们的属性,当执行填充数据库的处理时,这些服务37和38可以被停止和重启。
拒绝数据管理服务3 9处理在装载期间的某个点需要被拒绝的无效数据,从而剩余的数据可以继续并且处理可以在某个点完成。拒绝数据管理是重要的,从而尽管存在坏的或残缺的数据,仍令处理继续运行。拒绝记录被存储在数据容器中,以支持进一步检查和解决造成拒绝的问题。
调度器42可以基于调度器、事件或改变数据捕获通知来发起ETL处理。访服务通常通过产品支持团队或通过ETL工具来提供。ETL工具具有与ETL运行时环境紧密整合的优势。
另一个批处理服务是重启/恢复40,根据一个实施方式,其允许在故障后适度的恢复,并且将为重启准备数据库和ETL服务器,如下所述。
归类为公共服务44的其他组件通常仅运行一次。此类服务可以包括日志&审查跟踪46。在整个ETL处理过程中,稳健的日志和跟踪服务是有用的,从而应用活动和数据操纵结果可以展示给用户。参数化服务48包括帮助创建稳健的ETL解决方案的参数管理服务。ETL作业可以被设计成从调度器接受参数值而不是对它们进行硬编码。异常处理服务50有助于正确的ETLl丸行和监一见。无论何时在ETL执行期间发现不期望的事件或无效数据,则通常将记录事件。其他组件44可以包括线程管理服务52,其帮助实施方式对执行进行分割以运行在多个并行的进程中。
本发明的一个实施方式帮助实现DataStage服务架构(DSA ),其为涉及简单或复杂的数据装载操作的不同类型的ETL工程提供全
ii面和稳健的数据装载环境。该DSA有助于实现如图3中所指示的部分服务组件。通过标准化ETL作业设计、处理基本的ETL功能(例如调度、参数化和重启管理)和便于对ETL流的IT操作,DSA也简化了 ETL编程和维护。
DataStage服务架构可以实施在IBM DataStage ETL工具的顶部。如图4中所示,DataStage ETL工具套件由可以被分类为服务器组件和客户端组件的若干组件构成。
DataStage服务器组件包括
a. DataStage存储库53,包含构建数据商业中心或数据仓库所需的所有信息的中央仓库。通常存储库53以私有布局进行储存,并且第三方工具不易访问。可选地,可以有用于访问特定DataStage工程的特性并提取技术元数据的DataStage基本功能。这些基本功能就是本发明使用的那些功能。
b. DataStage服务器55,其运行提取、转换和将数据装载进数据仓库的可执行作业。
DataStage客户端组件包括
a. DataStage设计器56,用于创建DataStage应用(称为作业)的设计接口。每个作业规定数据源、所需的转换和数据的目的地。编译作业以创建由控制器所调度并且由服务器运行的可执行程序(主机作业被传输并且运行在主机上)。
b. DataStage控制器57,用于验证、调度、运行和监—见DataStage服务器作业的用户接口;
c. DataStage管理器56,用于浏览和编辑存储库53的内容的用户接
口 ;
d. DataStage管理员56,用于执行管理任务的用户接口 。
对于该实施方式,工作流程管理器58是DataStage控制作业,其控制和管理大多数的架构能力。DataStage定制例程60帮助管理公共任务(例如审查、错误处理)。技术元数据表62用于配置架构。另外,审查报告64用于监视ETL执行。将在下面进一步讨论这些组件中的每一个组件。
在一个实施方式中,工作流程管理器58实现大多数的ETL服务。这些包括确定ETL过程42的执行顺序,图3;为在先前会话40中失败的ETL过程进行重启/恢复;并且审查ETL过程事件和活动(处理的消息/错误/记录)46。其他此类服务包括管理异常处理50;提取ETL过程参数48;并且跟踪工作流程执行46 (并且还有监视,但该框还未编号)。
在该实施方式中,工作流程管理器58使用一组技术元数据表62来配置上述服务的行为。根据工程的特性和大小以及根据目标环境,设定例如允许的最大的运行ETL作业的数目,最大的警告数目之类的局部和全局执行参数。将在下面进一步描述技术元数据表62。
DSA允许ETL过程开发被划分并且被分发到多个程序员,程序员仅遵从很少的设计指南。例子包括配置设计成从调度器42接收一组外部参数的ETL作业;并且也包括配置尽可能小以便允许重启&恢复过程的ETL作业。
在图5中示出技术元数据表62的逻辑数据模型的示图。如前面所指出,这些表包括用于要由工作流程管理器58执行的作业的参数和值。在该实施方式中,表62通过使用编程作业的数据(如下所描述)或通过从不使用DataStage服务架构的ETL工程导入的数据(也将在下面描述)来填充。
对于该实施方式,某些重要的表被维护并且用于每个作业。TORAFULL01 TEC作业状态表62a是作业主数据表并且对于每个作业包含关于源系统、主题区域、警告等级的信息,以及关于作业的最近运行状态的信息,包括何时执行开始以及在完成时的状态。关于上一次执行运行的信息在每次运行时被更新并且用于管理重启和恢复动作。该表也包含用于每个作业的优先级。当多个作业同时准备好运行时,该优先级用于选择关于哪个(些)作业先运行的顺序。这样的例子是当父作业完成时,取决于完成的父作业的多个子作业将变得有资格来运行。不同的子作业可能具有不同的运行要求(例如运行的时间、处理器负载等)。如果这些子作业都同时启动,或 随机选择一个子集,则处理可能不稳定或变慢。通过为一个或多个 子作业提供优先级,实施方式可以以有效的方式来选择和运行子作
业。父子关系维护在TORAFULL03TEC父作业表62c中。
TORAFULL02TEC作业参数表62b包含在执行期间由每个作业 使用的所有本地参数的列表和值。该表中的信息通常在运行时是只 读,但在异常情况下,可以使得作业能够修改某些值,然而,通常
不推荐这样的修改操作。
TORAFULL03TEC父作业表62c为每个从属作业的或子作业记 录父作业是什么。父作业是在子作业能够开始前必须完成的作业。 一个作业可以具有多个父作业,从而在启动子作业前,所有的父作 业都应该完成。每个父作业可以具有一个或多个子作业。该表在运 行时是只读的。该父-子设置定义了作业可以按什么顺序运行,其中 父作业先于子作业。当有多于一个的子作业时,包含在表 TORAFULL01 TEC作业状态表62a中的优先级将确定哪个作业将先 启动。
TORAFULL04TEC所有链接作业表62d包含每个作业中包含的 所有数据链接和转换器的名称。该表在运行时是只读的并且由DSA 审查过程来使用。根据在数据流逻辑中的位置,数据链接可以被标 记为输入/输出/错误链接。DSA审查过程提取针对每个链接处理的行 的数目,并且根据输入/输出/错误分类来聚合该数据以提供有意义的 4丸4亍统计。
在作业期间可以创建或填充其他表。例如,TORAFULL01TECH 历史作业状态表62e包含整个工作流程会话的所有作业执行统计的 历史。TORAFULL05TECH事件日志表62f包括运行时错误信息,其 允许该实施方式来处理和分析产生错误的原因并且一旦错误纠正马 上重启作业。
TORAFULL07TECKPI表62g包含用于所建议的作业和区域 KPI的阈值以支持SLA管理。该表是可选的并且对于常规操作我们不需要使用它。当用户想增强DSA的报告和监视能力,尤其当作业
从外部源系统读取数据或当作业必须在特定的时间窗内完成时,该 表是有用的。
工作流程管理器58通常使用SQL (结构化查询语言)来访问表 62。当工作流程管理器58开始处理工作流程时,产生新的会话标识 符值并且将其存储在SESSIONID字段。
工作流程管理器的一个实施方式如图6中示出的那样处理作业。 如先前所描述的,如在该实施方式中所阐述的,本发明允许ETL作 业以这样的方式来处理,即允许区分优先级、重启和恢复,以及具 有在运行期间和运行之后审查作业的能力。这样,工作流程管理器 根据图6中示出的步骤来完成作业执行和监视。
在步骤200,工作流程管理器58初始化工作流程,并且在步骤 202,确定来自先前运行挂起的作业的数目。通常挂起的作业是由于 自身作业或父作业中的错误条件而未能被执行的作业。
在步骤204处,工作流程管理器确定是否有作业要再次运行。 这些作业是先前启动但未完成的作业,通常是因为错误或优先级问 题。如果有这样的作业,工作流程管理器更新图5中元数据表62中 的SESSIONID字段,并且更新引导(pilot)数据。引导数据是由工 作流程管理器全局管理的日期时间值,在步骤208中,其可以由每 个作业使用于管理增加的负载。
如果没有要再次运行的作业,但有新的作业要开始,则在步骤 206,工作流程管理器初始化所有此类作业的状态。接着,在步骤208 处,SESSIONID字段和引导数据被更新。在步骤210,工作流程管 理器接着确定要运行的作业的数目。将在下面描述关于限制要运行 的作业的数目的信息。
在这点上,工作流程管理器开始循环以允许根据一个实施方式 来进行作业处理。在步骤212,如果没有作业要运行,则处理完成, 并且在步骤214,处理结束。然而,如果有作业要运行,则处理继续。 在步骤216,工作流程管理器基于父子关系和优先级值来确定将要执行的下一个作业。
一旦选择了下一个作业,工作流程管理器检查在 存储库中是否存在作业。这对于避免工作流程管理器故障是必要的,
不同的名字。在作业不存在的情形中,在步骤220, TORAFULLOl TEC 作业状态表上的状态字段将被更新并且处理结束。所有其他挂起的 作业将不被执行以避免处理的不 一致性。该保守行为允许操作者检 查和校正工作流程结构。
如果在步骤218确定可执行作业存在,则在步骤222确定该作 业是否具有可运行的状态(被编译)。如果没有(作业被放弃或没 被编译),则工作流程管理器停止处理执行,中止所有的运行作业。 接着在步骤224,如在先前的项目中,针对受影响的作业的 TORAFULLOl TEC作业状态表中的状态字段被更新。该更新使用预 定的报告允许操作者知道处理中正发生着什么。
在步骤226,工作流程管理器准备作业并开始执行。在该实施方 式中, 一次可以执行多达十个作业,然而,本发明不受任何此类作 业数目的限制。工作流程管理器保持跟踪运行的作业的数目,并且 更多的槽可用于运行作业,则在步骤228,处理返回到步骤212以开 始其他挂起的作业。否则在步骤230,处理继续直到运行的作业完成, 此时在步骤232工作流程管理器将进行执行后操作,包括更新 TORAFULL01 TEC作业状态表中的作业状态字段,记录 TORAFULL01TEC历史作业状态表中的作业执行信息,以及记录 TORAFULL05TEC事件日志表中的审查信息。
所述的该处理允许工作流程管理器处理具有优先级和顺序要求 的多个作业,以及在工作中作业可能被停止和因为错误和其他情况 4皮解决而多次重启。
本发明的一个实施方式包括具有GUI的用户控制台,其提供对 处理的配置和控制。通过提供用户名和口令,该控制台允许用户获 得访问。用户接着可以执行某些任务,包括 作业查找在ETL数据库中查找给定的作业名。作业管理配置、修改、删除作业和相关属性。
Kpi查找在ETL数据库中查找给定的Kpi名(KPI-密钥性能指示
々々 、付)。
Kpi管理配置、修改、删除Kpi。 添加用户添加新的用户。 口令管理管理用户的口令。
用于为元数据表62输入数据和修改元数据表62的工具。
图7示出根据本发明一个实施方式的由控制台提供的显示。该 显示示出预定报告表以允许实时监视当前会话。关于每个作业的状 态的信息被呈现,包括开始和结束时间,运行的状态、错误计数等。 其他报告的例子包括执行趋势报告和在会话级、作业级和主题区域 级的SLA监视。
在图8中示出另一个实施方式的特征。称为工作流程设计器的 该实施方式可以基于从元数据表6 2自动提取的信息来产生工作流程 图。工作流程图可视地展示一个处理的作业队列排序和依赖性,允 许用户容易地理解复杂的作业要求和排序。在该实施方式中,通过 从元数据表62提取数据创建工作流程图,并且通过使用宏在 Microsoft Visio⑧中自动i也生成。然而,可以以多种不同的方式来产 生该工作流程图,并且其可以被配置成提供或多或少的信息。工作 流程设计器使用SQL声明和临时表来产生工作流程结构的表格化呈 现。该工具使用Microsoft Visio对象模型来将每个作业画成一个框 并且根据父子关系来连接这些框。在每个框内写出关于作业的某些 有用信息,包括作业名和执行参数。因为其是基于支持DSA的相同 技术表,工作流程设计器可以被认为是DSA的扩展。
本发明的另 一 实施方式包括帮助将现有的DataStage ETL应用移 植和转换到基于DataStage服务架构的架构的工具。复杂的ETL整 合工程可以具有几百项作业,因此数据录入很不简单并且容易出现 错误。称为读取当前配置的辅助程序可以读取现有的架构,并且提 取每个作业内的关于作业名、参数名和数据链接和转换器名的某些信息。关于所述信息的细节被插入到元数据表中,例如
TORAFULL01TEC作业状态62a, TORAFULL02TEC作业参数62b, TORAFULL03TEC父作业62c,以及TORAFULL04TEC所有链接作 业62d。通常,提取的信息不是对正确的处理执行的穷举,并且应 该:帔审阅和手动地完成,如下一点中所指示。
一旦完全装载元数据表62,可以设计填充架构。这可以包括在 主题区域中对作业进行分类、基于功能的依赖性来确定父子关系, 以及根据持续时间和根据子作业的数目来确定作业的重要性。
DataStage服务架构可以应用于任何的DataStage实现并且不需 要特定的ETL作业"i殳计方法。通常作业应该纟皮设计成从调度器接收 一组外部的参数。如果现有的作业具有它们自己的参数管理,则理 解如何将此与服务架构进行整合是有益的。另一个有用的通用指南
是ETL过程应该被设计的尽可能小,以便更好地管理重启&恢复处 理。这可以在一个实施方式中通过频繁地使用分级点来完成。基于 最终的填充架构和基于服务器的大小,可以确定和设定可以并行执 行的处理的最大数目。
本发明的 一 个或多个方面可以具体实现在计算程序产品、计 算机可用数据和计算机可执行指令中,例如在由 一 个或多个计算机 或其他设备执行的一个或多个程序模块,在信号和/或数据流中。通 常地,程序模块包括例程、程序、对象、组件、数据结构等,当由 计算机或其他设备中的处理器执行时,其执行特定的任务或实现特 定的抽象数据类型。计算机可执行指令可以存储在计算机可读介质 上,例如硬盘、光盘、可移动存储介质、固态存储器、RAM等。正 如本领域技术人员所知,程序模块的功能性可以如各种实施方式中 所期望的那样合并或分布。此外,功能性可以整体或部分地体现为 固件或硬件等同物,例如集成电路、现场可编程门阵列(FPGA)等。 特定的数据结构可以用于更为有效地实施本发明的一个或多个方 面,并且此类的数据结构在这里所述的计算机可执行指令和计算机 可用数据的范围内可以预想到。
18具体地,提供一种计算机可读存储介质,包括当提供给处理器 时,使得处理器执行下面操作的指令
从作业表确定要运行的多个作业,其中作业表进一 步包括关于 在运行其他作业前要完成哪些作业的信息;
从状态表确定要运行的多个作业的状态,其中状态表包括对哪
些作业已经成功完成并且哪些作业需要被再次运行的指示;
基于来自作业表和状态表的信息确定要运行的作业的子集
开始作业子集的处理;
如果作业子集中的作业完成,则确定要运行的另一作业,其中 确定包括如果多个作业目前可以运行,则使用作业优先级信息;以 及
基于对多个作业的处理来更新状态表。
进一步具体地,计算机可读存储介质进一步包括使得处理器在 确定要运行的作业子集时,基于来自状态表的指示确定哪些作业已 经完成的指令
进一步具体地,计算机可读存储介质进一步包括使得处理器执 行下面操作的指令
在多个作业成功完成之前,停止对多个作业的处理,因此在再
次开始对该多个作业的处理时,已完成的作业将不再次运行。
进一步具体地,计算机可读存储介质进一步包括使得处理器来
生成对关于多个作业的实时信息的显示的指令,其中多个作业中的 每个作业的状态将被显示。
尽管以特定于结构特征和/或方法动作的语言描述了主题,但是 应该理解在所附权利要求书中所限定的主题不必然限于上述的特定 特征或动作。相反地,上述的特定特征和动作是作为实现权利要求 的示例形式而^^开。
19
权利要求
1. 一种用于处理多个ETL作业的系统,包括作业表,其包括多个作业标识符,每个作业标识符标识要运行的作业,其中该作业表进一步包括关于在运行其他作业之前,需要完成哪些作业的信息;优先级表,其包括作业表中至少一个作业标识符的优先级信息;其中如果一个作业完成并且多个作业目前可以运行,则系统使用优先级表中的优先级信息来确定所述多个作业中的哪个作业将运行。
2. 根据权利要求1所述的系统,进一步包括状态表,其包括关于哪些作业已经运行的信息,以及关于每个此 类作业的状态结果的信息。
3. 根据权利要求2所述的系统,其中如果一个作业已经运行并 且状态表指示该作业已经完成,则该作业将不会再次运行。
4. 根据前面权利要求的任意一项所述的系统,其中关于在运行 其他作业之前需要完成哪些作业的信息包括第一作业标识符和第二 作业标识符之间的父/子指示。
5. 根据前面权利要求的任意一项所述的系统,其中在所有作业 完成前,所述系统可能停止,于是在重启时,还没完成的作业将被 运行。
6. 根据前面权利要求的任意一项所述的系统,进一步包括显示 接口,以产生对关于多个ETL作业的实时信息的显示。
7. 根据权利要求6所述的系统,其中此类信息包括标识哪些作 业已经完成。
8. 根据前面权利要求的任意一项所述的系统,其中所述系统将 可同时运行的作业的数目限制到预定的值。
9. 根据前面权利要求的任意一项所述的系统,进一步包括整合组件,用于从应用提取关于多个ETL作业的信息,并且将 该信息插入进作业表中。
10. 根据前面权利要求的任意一项所述的系统,进一步包括示图 生成器,该示图生成器用于从作业表提取信息并且生成作业的示图, 该示图包括关于哪些作业必须在其他作业之前运行的指示。
11. 根据权利要求IO所述的系统,其中所述示图生成器使用 Visio⑧宏来生成Visio中的示图。
12. —种用于处理多个ETL作业的方法,包括 从作业表确定要运行的多个作业,其中该作业表进一步包括关于在运行其他作业前需要完成哪些作业的信息;从状态表确定要运行的多个作业的状态,其中该状态表包括哪些 作业已经成功完成以及哪些作业需要被再次运行的指示;基于来自作业表和状态表的信息确定要运行的作业的子集;开始处理该作业子集;如果该作业子集中的作业完成,则确定要运行的另一个作业,其 中该确定包括如杲多个作业目前可以运行,则使用作业优先级信息; 基于对多个作业的处理来更新状态表。
13. 根据权利要求12所述的方法,其中所述确定要运行的作业 的子集的步骤包括基于来自状态表的指示确定哪些作业已经完成。
14. 根据权利要求12或13所述的方法,进一步包括在多个作业成功完成前停止多个作业的处理,于是在再次开始对 该多个作业的处理时,已完成的作业将不被再次运行。
15. 根据权利要求12到14中的任意一项所述的方法,进一步包括生成对关于多个作业的实时信息的显示,其中所述多个作业中的 每个作业的状态被显示。
16. 根据权利要求15所述的方法,其中此类状态包括标识作业 是否已经完成。
17. 根据权利要求12到16中的任意一项所述的方法,其中要运行的作业的子集低于预定值。
18. 根据权利要求12到17中的任意一项所述的方法,进一步包括从应用提取关于多个作业的信息,所述信息包括作业名和作业参 数;以及将所述信息插入进作业表中。
19. 根据权利要求12到18中的任意一项所述的方法,进一步包括从作业表提取信息,所述信息包括作业名和在运行其他作业前需 要完成哪些作业;以及产生作业的示图,该示图包括作业名以及关于哪些作业必须在其 他作业之前运行的指示。
20. 根据权利要求19所述的方法,其中使用Visio⑧宏来生成示图。
21. —种计算机程序产品,包括计算机可读指令,当在合适的系 统上加载和执行该指令时,用于执行根据前面权利要求12到20的 任意一项所述的处理多个ETL作业的方法的步骤。
全文摘要
一种用于开发和操作用于填充数据库的ETL(提取转换装载)系统的新颖工具。一个实施方式使用元数据表来描述要运行的作业之间的关系以便处理数据。这些关系可以包括父子作业关系以及优先级。这些工具创建有助于自动化和控制ETL处理的DataStage服务架构(DSA)。其他工具允许开发者容易地看到和更新ETL处理。
文档编号G06F17/30GK101477543SQ20091000131
公开日2009年7月8日 申请日期2009年1月4日 优先权日2008年1月3日
发明者A·格拉索, P·佩莱格里尼 申请人:埃森哲环球服务有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1