支持基于流的etl和基于实体关系的etl的组合的制作方法
【专利说明】支持基于流的ETL和基于实体关系的ETL的组合
【背景技术】
[0001] 在如今日益快节奏的商业环境中,机构需要使用更专门的软件应用。此外,机构需 要确保这些应用在异质硬件平台和系统上的共存并且保证在应用和系统之间共享数据的 能力。
[0002] 因此,期望解决与开发数据集成场景相关的问题,其中一些场景可以在本文进行 讨论。此外,期望减少与开发数据集成场景相关的缺陷,其中一些场景可以在本文进行讨 论。
【发明内容】
[0003] 至少为了提供对主题的基本理解,本公开内容的以下部分给出对在本公开内容中 找到的一个或多个创新、实施例和/或例子的简化综述。该综述不是要提供对任何特定实 施例或例子的排它概述。此外,该综述不是要识别实施例或例子的关键/重要元素或者勾 勒本公开内容的主题的范围。因此,该综述的一个目的可以是要以简化的形式给出在本公 开内容中找到的一些创新、实施例和/或例子,作为对随后给出的更详细描述的序言。
[0004] 在各种实施例中,数据集成系统使用户能够创建独立于平台和技术的逻辑设计。 用户可以创建在高级别定义用户想让数据如何在源和目标之间流动的逻辑设计。鉴于用户 的基础设施,工具可以分析逻辑设计,并且创建物理设计。逻辑设计可以包括对应于设计中 每个源和目标的多个组件,以及诸如连接或过滤的操作,以及访问点。当被转移到物理设计 时,每个组件生成对数据执行操作的代码。依赖于底层技术(例如,SQL Server、Oracle、 Hadoop,等等)和所使用的语言(SQL、pig,等等),由每个组件生成的代码可以不同。
[0005] 在一方面,数据集成系统的用户不需要从开始到结束在逻辑设计中的每个组件指 定所有数据属性。数据集成系统提供避免需要完全声明流经逻辑设计的信息的多个组件类 型,诸如投影器和选择器类型。数据集成系统能够在由预定组件类型表示的操作决定需要 什么属性。这简化了设计和维护。在各个方面,提供了充分利用现有RDBMS资源和能力来 避免对单独的专用ETL服务器的需求的数据变换和迀移,以实现改进的性能。
[0006] 在一种实施例中,促进数据映射的生成的方法包括接收指定实体关系集合的信息 作为逻辑设计的组件。等效数据流模型是基于该实体关系集合确定的。然后,在逻辑流设 计中生成指示该等效数据流模型的信息。表示该实体关系集合的数据集的一个或多个属性 可以基于声明数据源的属性之间的关系的信息被得出。
[0007] 在更多实施例中,可以接收指定逻辑设计的一个或多个组件的信息,所述信息包 括指示改变流经该逻辑设计的信息的形状的操作的信息。可以接收指定逻辑设计的一个或 多个组件的信息,所述信息包括指示控制流经该逻辑设计的信息流但是不改变流经该逻辑 设计的信息的形状的操作的信息。可以接收指定逻辑设计的一个或多个组件的信息,所述 信息包括指示具有要存储在目标数据存储(target datastore)中的数据的一个或多个属 性的目标组件的信息。
[0008] 在一方面,在逻辑流设计中生成指示等效数据流模型的信息可以包括将属性列表 导出到下游组件。在另一方面,逻辑设计中的改变可以通过一个或多个关系的引入来接收。 然后,可以确定更新的等效数据流模型。
[0009] 在一种实施例中,存储用于促进数据映射的生成的计算机可执行代码的非临时性 计算机可读介质包括用于接收指定实体关系集合的信息作为逻辑设计的组件的代码,用于 基于该实体关系集合确定等效数据流模型的代码,以及用于在逻辑流设计中生成指示该等 效数据流模型的信息的代码。
[0010] 在另一实施例中,促进数据映射的生成的系统包括处理器和存储指令的存储器, 当指令被处理器执行时,将处理器配置为接收指定实体关系集合的信息作为逻辑设计的组 件、基于该实体关系集合确定等效数据流模型、以及在逻辑流设计中生成指示该等效数据 流模型的信息。
[0011] 在一种实施例中,促进数据映射的生成的系统包括被配置为接收指定实体关系集 合的信息作为逻辑设计的组件的接收单元;被配置为基于该实体关系集合确定等效数据流 模型的确定单元;以及被配置为在逻辑流设计中生成指示该等效数据流模型的信息的生成 单元。
[0012] 在一方面,该系统还可以包括被配置为基于声明数据源的属性之间的关系的信息 得出代表该实体关系集合的数据集的一个或多个属性的得出单元。在一方面,接收单元还 被配置为接收指定逻辑设计的一个或多个组件的信息,所述信息包括指示改变流经该逻辑 设计的信息的形状的操作的信息。在一方面,接收单元还被配置为接收指定逻辑设计的一 个或多个组件的信息,所述信息包括指示控制流经该逻辑设计的信息流但是不改变流经该 逻辑设计的信息的形状的操作的信息。
[0013] 在一方面,接收单元还被配置为接收指定逻辑设计的一个或多个组件的信息,所 述信息包括指示具有要存储在目标数据存储中的数据的一个或多个属性的目标组件的信 息。在一方面,生成单元包括被配置为将属性列表导出到下游组件的导出单元。在一方面, 接收单元还被配置为通过一个或多个关系的引入来接收逻辑设计的改变;并且确定单元还 被配置为确定更新的等效数据流模型。
[0014] 在一种实施例中,促进数据映射的生成的系统包括用于接收指定实体关系集合的 信息作为逻辑设计的组件的装置;用于基于该实体关系集合确定等效数据流模型的装置; 以及用于在逻辑流设计中生成指示该等效数据流模型的信息的装置。在另一方面,该系统 还包括用于基于声明数据源的属性之间的关系的信息得出代表该实体关系集合的数据集 的一个或多个属性的装置。
[0015] 在另一方面,该系统还包括用于接收指定逻辑设计的一个或多个组件的信息的装 置,所述信息包括指示改变流经该逻辑设计的信息的形状的操作的信息。在另一方面,该系 统还包括用于接收指定逻辑设计的一个或多个组件的信息的装置,所述信息包括指示控制 流经该逻辑设计的信息流但是不改变流经该逻辑设计的信息的形状的操作的信息。
[0016] 在另一方面,该系统还包括用于接收指定逻辑设计的一个或多个组件的信息的装 置,所述信息包括指示具有要存储在目标数据存储中的数据的一个或多个属性的目标组件 的信息。在另一方面,用于生成指示逻辑流设计中的等效数据流模型的信息的装置包括用 于将属性列表导出到下游组件的装置。在另一方面,该系统还包括用于通过一个或多个关 系的引入来接收逻辑设计的改变的装置;以及用于确定更新的等效数据流模型的装置。
[0017] 通过参考本公开内容的剩余部分、任何附图以及权利要求,除以上部分之外,还应 当认识到对本公开内容主题的本质及其等同物(以及所提供的任何固有的或明确的优点 和改进)的进一步理解。
【附图说明】
[0018] 为了合理地描述和说明在本公开内容中找到的那些创新、实施例和/或例子,可 以参考一个或多个附图。被用来描述一个或多个附图的附加细节或例子不应当被认为是对 任何要求保护的发明的范围、任何目前描述的实施例和/或例子、或者目前被理解为本公 开内容中给出的任何创新的最佳模式的限制。
[0019] 图1是可以结合本发明实施例的系统的简化说明。
[0020] 图2是根据本发明实施例的数据集成系统的框图。
[0021] 图3是可以被用来实现根据本发明实施例的数据集成系统的硬件/软件栈的简化 框图。
[0022] 图4是在本发明各种实施例中具有可以为其创建数据集成场景的各种异质数据 源的环境的框图。
[0023] 图5A和5B绘出了可以由数据集成系统执行的常规数据集成处理中的简化数据 流。
[0024] 图6A和6B绘出了根据本发明实施例、在可以由数据集成系统执行的下一代数据 集成处理中的简化数据流。
[0025] 图7是在根据本发明的一种实施例中数据集成系统的0DI工作室与储存库之间交 互的简化框图。
[0026] 图8绘出了根据本发明实施例用于创建数据集成场景的方法的流程图。
[0027] 图9是根据本发明实施例用于创建数据集成场景的用户界面的屏幕截图。
[0028] 图10绘出了根据本发明实施例用于创建映射的方法的流程图。
[0029] 图11是根据本发明实施例用于在数据集成场景中提供映射信息的用户界面的屏 幕截图。
[0030] 图12是根据本发明实施例用于在数据集成场景中提供流信息的用户界面的屏幕 截图。
[0031] 图13绘出了根据本发明实施例用于创建包的方法的流程图。
[0032] 图14是根据本发明实施例用于在数据集成场景中提供包序列信息的用户界面的 屏幕截图。
[0033] 图15绘出了根据本发明实施例用于部署数据集成场景的方法的流程图。
[0034] 图16是在根据本发明的一种实施例中组合的基于流且基于实体的映射的简化框 图。
[0035] 图17绘出了根据本发明实施例用于生成组合的基于流且基于实体的映射的方法 的流程图。
[0036] 图18是在根据本发明的一种实施例中具有数据集视图的图16的映射的简化框 图。
[0037] 图19A和19B是在根据本发明的一种实施例中用于组合的基于流且基于实体的映 射的逻辑和物理设计的简化框图。
[0038] 图20绘出了根据本发明实施例用于生成组合的基于流且基于实体的映射的物理 设计的方法的流程图。
[0039] 图21是绘出静态E-R和动态ETL模型之间的关系的说明。
[0040] 图22是在一种实施例中提供自动转换系统的顶层设计图的说明。
[0041] 图23A和23B以两种流行的E-R记号示出了三路关系。
[0042] 图24A和24B以两种流行的E-R记号示出了三路关系的等同物。
[0043] 图25利用一系列二进制关系示出了三路关系的等同物。
[0044] 图26利用标准的E-R记号示出了三路关系。
[0045] 图27绘出了为图26中的实体创建的每个表中的行。
[0046] 图28A和28B示出了一种实施例中利用E-R记号的三路关系以及具有源自三个实 体的数据的数据流。
[0047] 图29绘出了展开各种数据库建模方法及其语义内容之间的关系的图。
[0048] 图30是可以被用来实践本发明实施例的计算机系统的简化框图。
[0049] 图31是根据本发明实施例用于促进数据映射的生成的系统的简化框图。
【具体实施方式】
[0050] 介绍
[0051] 在各种实施例中,数据集成系统使用户能够创建独立于平台和技术的逻辑设计。 用户可以创建在高级别定义用户想让数据如何在源和目标之间流动的逻辑设计。鉴于用户 的基础设施,工具可以分析逻辑设计,并且创建物理设计。逻辑设计可以包括对应于设计中 每个源和目标的多个组件,以及诸如连接或过滤的操作,以及访问点。当被转移到物理设计 时,每个组件生成对数据执行操作的代码。依赖于底层技术(例如,SQL Server、Oracle、 Hadoop,等等)和所使用的语言(SQL、pig,等等),由每个组件生成的代码可以不同。
[0052] 在一方面,数据集成系统的用户不需要从开始到结束在逻辑设计中的每个组件指 定所有数据属性。数据集成系统提供避免需要完全声明流经逻辑设计的信息的多个组件类 型,诸如投影器和选择器类型。数据集成系统能够在由预定组件类型表示的操作决定需要 什么属性。这简化了设计和维护。
[0053] 图1是可以结合在本公开内容中发现的任何创新、实施例和/或例子的实施例或 者结合到其中的系统1〇〇的简化说明。图1仅仅是说明结合本发明的实施例并且不限制如 权利要求中所述的本发明的范围。本领域普通技术人员将认识到其它变体、修改和备选方 案。
[0054] 在一种实施例中,系统100包括一个或多个用户计算机110 (例如,计算机110A、 110B和110C)。用户计算机110可以是通用个人计算机(仅仅作为例子,包括运行任何适当 特色(flavor)的微软公司的Windows?和/或Apple公司的Macintosh ?操作系统的个人 计算机和/或膝上型计算机)和/或运行各种市售UNIX?或类UNIX操作系统当中任何一 种的工作站计算机。这些用户计算机110还可以具有各种应用当中任何一种,包括被配置 为执行本发明方法的一个或多个应用,以及一个或多个办公室应用、数据库客户端和/或 服务器应用,及web浏览器应用。
[0055] 作为替代,用户计算机110可以是能够经由网络(例如,以下描述的通信网络120) 通信和/或显示和导航网页或者其它类型的电子文档的任何其它电子设备,诸如瘦客户端 计算机、启用互联网的移动电话,和/或个人数字助理。虽然示例性系统1〇〇被示为具有三 个用户计算机,但是任何数量的用户计算机或设备都可以被支持。
[0056] 本发明的某些实施例在联网环境中操作,这可以包括通信网络120。通信网络120 可以是本领域技术人员熟悉的任何类型的网络,这些网络可以利用任何各种商用协议,包 括但不限于TCP/IP、SNA、IPX、AppleTalk等,支持数据通信。仅仅作为例子,通信网络120 可以是局域网("LAN"),包括但不限于以太网、令牌环网等;广域网;虚拟网络,包括但不限 于虚拟专用网("VPN");互联网;内联网;外联网;公共交换电话网("PSTN");红外线网 络;无线网络,包括但不限于依据IEEE 802. 11协议套件、本领域中已知的Bluetooth?协议 和/或任何其它无线协议中任一种操作的网络;和/或这些和/或其它网络的任意组合。
[0057] 本发明的实施例可以包括一个或多个服务器计算机130 (例如,计算机130A和 130B)。每个服务器计算机130可以被配置为具有包括但不限于以上讨论的任何一种操作 系统,以及任何市售服务器操作系统。每个服务器计算机130还可以运行一个或多个应用, 这些应用可以被配置为向一个或多个客户端(例如,用户计算机110)和/或其它服务器 (例如,服务器计算机130)提供服务。
[0058] 仅仅作为例子,其中一个服务器计算机130可以是web服务器,仅仅作为例子,web 服务器可以被用来处理来自用户计算机110的对网页或其它电子文档的请求。Web服务器 还可以运行各种服务器应用,包括HTTP服务器、FTP服务器、CGI服务器、数据库服务器、 Java服务器,等等。在本发明的一些实施例中,web服务器可以被配置为提供可以在用户计 算机110当中一个或多个上的web浏览器中操作的网页,以执行本发明的方法。
[0059] 在一些实施例中,服务器计算机130可以包括一个或多个文件和/或应用服务器, 这可以包括一个或多个可被在用户计算机110和/或其它服务器计算机130当中一个或多 个上运行的客户端访问的一个或多个应用。仅仅作为例子,服务器计算机130当中一个或 多个可以是能够响应于用户计算机110和/或其它服务器计算机130而执行程序或脚本的 一个或多个通用计算机,包括但不限于web应用(在一些情况下,这可以被配置为执行本发 明的方法)。
[0060] 仅仅作为例子,web应用可以被实现为以任何编程语言,诸如Java、C或C++,和/ 或任何脚本语言,诸如Perl、Python或TCL,以及任何编程/脚本语言的组合所写的一个或 多个脚本或程序。(一个或多个)应用服务器还可以包括数据库服务器,包括但不限于可从 Oracle,Microsoft、IBM等商购的那些,数据库服务器可以处理来自在用户计算机110和/