CN112654977A - 发布到数据仓库 - Google Patents
发布到数据仓库 Download PDFInfo
- Publication number
- CN112654977A CN112654977A CN201980048334.7A CN201980048334A CN112654977A CN 112654977 A CN112654977 A CN 112654977A CN 201980048334 A CN201980048334 A CN 201980048334A CN 112654977 A CN112654977 A CN 112654977A
- Authority
- CN
- China
- Prior art keywords
- data
- rules
- parameters
- structured
- values
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 55
- 230000001131 transforming effect Effects 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 72
- 238000013507 mapping Methods 0.000 claims description 35
- 238000006467 substitution reaction Methods 0.000 claims description 15
- 238000005457 optimization Methods 0.000 claims description 7
- 230000001419 dependent effect Effects 0.000 claims 5
- 238000000547 structure data Methods 0.000 abstract description 2
- 238000003860 storage Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 11
- 238000013479 data entry Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000009466 transformation Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000006399 behavior Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000037406 food intake Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000704 physical effect Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
Abstract
一种用于生成可执行应用程序的方法,该可执行应用程序用于将数据进行转换并加载到结构化数据集中,该方法包括接收元数据文件,该元数据文件指定用于将从联网数据源接收的数据馈送结构化到结构化数据库中的参数的值。该元数据文件指定用于转换这些数据馈送的逻辑规则。验证这些参数的值和用于转换该多个数据馈送的这些逻辑规则,以确保每个数据馈送的逻辑一致性。根据这些参数的经验证值和逻辑规则来生成数据规则,这些数据规则指定用于转换每个数据馈送的标准。生成可执行应用程序,该可执行应用程序被配置为:从一个或多个数据源接收包括数据馈送的源数据,并根据这些数据规则将该源数据转换为满足该结构化数据记录的该一个或多个标准的结构化数据。
Description
优先权声明
本申请根据35U.S.C.§119(e)要求于2018年7月19日提交的美国专利申请序列号62/700,684的优先权,该美国专利申请的全部内容通过引用并入本文。
技术领域
本申请描述了用于生成、更新和维护将数据进行转换并加载到数据仓库中的软件的系统和方法。
背景技术
数据仓库包括用于容纳通常来自多个不同源的数据的系统。例如,数据仓库可以存储从多个源接收的数据,并且其中一些源的类型可能与其他源不同。
发明内容
在将数据存储在数据仓库中之前,对数据进行预处理以便符合数据仓库的标准。数据可能具有标识其记录的键值;可以检查这些键值的引用完整性,或用在目标数据仓库中的引用系统内一致的替代键值来替换这些键值。可以根据常规历史化方案对数据进行转换,以便表示数据的变化历史。数据可以用与诸如其加载时间、修改时间或当前状态等属性相关的附加信息来修饰。可以将数据与数据仓库中的现有记录合并,以更新信息、提供缺失的信息和纠正错误。可以将数据加载到目标表和辅助历史表。由编译器生成、更新和维护用于实现这些预处理任务的代码,该编译器接收指定逻辑规则和参数的值的元数据文件,这些规则和参数由目标数据仓库给出并指定要在运行时执行的动作,这些动作用于对传入数据进行转换,使得以某种方式(例如,结构化数据在要存储该结构化数据的仓库中保持数据完整性和/或读优化)对该数据进行结构化。
在一方面,描述了一种用于自动生成应用程序的过程,该应用程序用于将数据进行转换并加载到结构化数据集中,该结构化数据集用于存储来自一个或多个联网数据源的数据。该过程包括接收指定参数的值以及用于转换数据馈送的逻辑规则的至少一个元数据文件,其中,将从联网数据源接收每个数据馈送,并将结果加载到结构化数据集中。该过程包括:验证这些参数的值和用于转换该多个数据馈送的这些逻辑规则对于每个数据馈送是一致的;根据这些参数的经验证值和用于将这些数据馈送中的每个数据馈送转换为结构化数据记录的经验证逻辑规则来生成数据规则,这些数据规则指定一个或多个标准。该过程包括至少生成用于运行时环境的数据处理应用程序。所生成的数据处理应用程序可被配置为:从一个或多个数据源接收包括数据馈送的源数据,并根据所生成的数据规则将该源数据转换为满足该结构化数据记录的该一个或多个标准的结构化数据。
在一些实施方式中,数据处理应用程序包括数据流图、数据流子图或多个数据流图。在一些实施方式中,该结构化数据集包括数据库。
通常,该源数据包括数据记录,并且该元数据文件中的参数指定该数据记录的、表示该源数据的该数据记录的键值的字段。在一些实施方式中,该元数据文件中的参数指定表示该源数据的键值的字段与该结构化数据记录的表示该结构化数据记录的另一键值的另一字段之间的映射。该元数据文件中的参数指定该键值的格式,并且其中,该键值被转换为具有由该参数指定的格式。
在一些实施方式中,该过程包括从数据存储中检索参数的默认值,以及基于该参数的默认值定义这些数据规则。通常,逻辑规则为该结构化数据记录的字段指定格式,该字段包括数据历史值。在一方面,该数据历史值包括指示包括该数据历史值的该结构化数据记录的更新时间的时间戳。
在一些实施方式中,接收该元数据文件包括:解析该元数据文件的标题行,以确定哪些参数具有该元数据文件中的指定值。
在一些实施方式中,将源数据转换为满足该结构化数据记录的如由这些数据规则定义的一个或多个标准的结构化数据包括:确定该源数据的至少两个不同部分指定相同的键值;以及为该源数据的这两个不同部分中的至少一个部分指定新的键值,该新的键值不同于这些相同的键值并且基于该结构化数据记录的键序列。
在一些实施方式中,该过程包括检索该至少一个元数据文件未指定的一个或多个附加参数的一个或多个默认值,其中,对这些数据规则的定义是基于该一个或多个附加参数的这些默认值进行的。通常,该元数据文件包括一个或多个语义规则,该一个或多个语义规则指定针对该结构化数据记录的数据解释。
在一些实施方式中,该元数据文件中的这些参数包括数据质量参数,该数据质量参数指定用于包括在该结构化数据记录中的可接受数据值。在一些实施方式中,该元数据文件中的这些参数包括数据完整性参数,该数据完整性参数指定用于该结构化数据记录的键映射方案。在一些实施方式中,该元数据文件中的这些参数包括数据报告参数,该数据报告参数指定将该结构化数据集的结构化数据记录配置为读优化还是写优化。
在一方面,验证这些参数的值和用于转换该多个数据馈送的这些逻辑规则对于每个数据馈送在逻辑上是一致的包括:对指定键替代规则的馈送特定元数据和指定数据历史化规则的加载特定元数据进行检查。
在一些实施方式中,该数据处理应用程序进一步被配置为将该结构化数据加载到该结构化数据集中。这些动作包括生成包括该至少一个数据流图的多个数据处理应用程序,其中,该多个数据流图形成可执行应用程序。
通过以下描述、以及通过权利要求,本发明的其他特征和优点将变得清楚。
附图说明
图1A是用于元数据驱动数据仓库应用程序的编译环境的系统图。
图1B是用于元数据驱动数据仓库应用程序的运行时环境的系统图。
图2A示出了在图1A的编译环境中编译的元数据驱动数据仓库应用程序的示例。
图2B示出了用于为元数据驱动数据仓库应用程序编译数据流图的示例环境。
图3示出了包括组件的示例数据流图。
图4示出了属于元数据驱动仓库应用程序的示例运行时系统。
图5示出了用于对用于数据仓库的数据进行转换的图的示例。
图6示出了用于对用于数据仓库的数据进行转换的示例环境。
图7包括用于为元数据驱动仓库应用程序编译数据流图的动作的流程图。
图8包括用于通过元数据驱动仓库应用程序的数据流图对数据进行运行时转换并将数据加载到数据仓库的动作的流程图。
具体实施方式
本文档描述了用于生成、更新和维护将数据进行转换并加载到数据仓库中的可执行代码的系统和方法。数据仓库是根据预定义标准(例如,格式、历史化方案等)将结构化数据存储在结构化数据记录中的数据存储设施。元数据驱动仓库(MDW)系统包括编译器,该编译器使用逻辑规则和参数(包括表示数据仓库中数据存储的预定义标准的元数据)来生成数据处理计算机程序(例如,可执行数据流图的组件以及构成元数据驱动仓库应用程序的相关联文件)以供在运行时使用。这些程序准备来自其他计算系统的数据以存储在数据仓库中。可执行数据流图是一种计算机程序,其使用数据流图中包括的组件(这些组件进而包含或表示执行数据处理功能的可执行代码)来处理数据。在本说明书中,数据流图被描述为在数据流图所表示的组件被配置为执行动作时执行这些动作。这些组件可以包括用于读取输入数据的数据源、用于输出或存储被该图处理的数据的数据接收器以及处理输入数据的数据处理组件。对数据流图进行编译包括生成执行代码并且可以在数据流图中表示的逻辑组件。组件的配置确定如何处理数据。该一个或多个可执行数据流图进而形成可执行元数据仓库应用程序。元数据仓库应用程序在运行时环境中在运行时系统上被执行。运行时系统被配置为从一个或多个数据源接收数据,并对所接收的数据进行结构化以存储在数据仓库中。
总体而言,元数据驱动仓库系统基于被提供给编译器的逻辑规则和参数(包括仓库元数据)来生成可执行数据流图。这些参数定义了特定可执行数据流图处理数据的方式。运行时应用程序执行数据流图,以准备要存储在数据仓库中的数据。
图1A示出了用于生成可执行应用程序的示例编译环境100,该可执行应用程序被配置为对数据进行转换以存储在数据仓库(也称为元数据驱动仓库)中。编译环境100包括用于生成(例如,配置)可执行应用程序118的元数据驱动仓库(MDW)编译器102,该可执行应用程序包括一个或多个可执行数据流图。(多个)数据流图通常形成可由运行时系统(诸如,图1B的元数据驱动仓库(MDW)运行时系统124)执行的应用程序118。更具体地说,对应用程序118的可执行数据流图进行配置包括编译可执行代码,该可执行代码当在运行时环境120中被执行时进行数据流图中指定的一个或多个操作。一旦由编译环境中的MDW编译器102生成,可执行应用程序118的可执行数据流图就在运行时环境120中被执行。应用程序118还可以包括在执行期间与数据流图一起使用的附加文件,诸如工作流协调器(计划)、参数集文件等,如随后关于图2A所描述的。
在图1B所示的运行时环境120中,由MDW运行时系统124执行可执行应用程序118。MDW运行时系统124被配置为:分别从一个或多个数据源104a、104b和104c接收源数据112(例如,源数据112a、112b和112c);(通过应用程序118的可执行逻辑)将数据转换为符合数据仓库106的数据规则(例如,预定义标准)的经转换数据114;并且将经转换数据发送到数据仓库106以进行存储。
应用程序118的可执行数据流图是在数据流图执行环境(例如,MDW运行时系统124)内执行的计算机程序,该计算机程序对来自一个或多个数据源(诸如,联网数据源104)的数据进行处理。来自联网数据源104的数据被根据数据流图进行操纵和处理(例如,转换),并被导出到数据仓库106。可执行数据流图被表示为有向图,这些有向图包括:表示组件(诸如,数据处理组件)的节点,每个节点包括用于对来自至少一个数据输入或数据源的数据进行处理并将数据提供给至少一个数据接收器或数据输出的代码;以及表示用于访问联网数据源104和/或数据仓库106的数据集对象的节点。这些节点通过有向链路进行连接,这些有向链路表示组件之间的数据流,始于数据源,并终止于数据接收器。上游组件的数据输出端口连接到下游组件的数据输入端口。可以将数据流图重新用于由数据集对象表示的不同数据源和不同数据接收器。用于实施数据流图的数据结构和程序代码可以通过被参数化为使不同的联网数据源104(或不同的数据仓库)易于替换来支持多种不同的配置。此外,在一些布置中,可以通过使用参数来更改数据流图的流动,使得可以绕过一个组件或一系列组件。通常,参数表示数据流图的、可以被配置或改变的属性。例如,可以在数据流图的使用之间改变属性,并且由于该改变,数据流图可以以不同的方式执行操作。在名称为“EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS[执行表示为图的计算]”的美国专利5,966,072中描述了一种用于执行数据流图的系统,该美国专利通过引用以其全文并入本文。
可以在编译时通过更改数据流图的预编译以执行特定动作、或者在运行时通过设置参数或更改由数据流图使用的配置文件来配置数据流图。在一些实施方式中,在MDW编译器102处根据从客户端设备和后端系统108(随后称为客户端设备108)接收的数据(例如,元数据文件110)对由MDW运行时系统124执行的、应用程序118的(多个)数据流图进行编译。在一些实施方式中,通过客户端设备108由MDW编译器102来编译由MDW运行时系统124的执行的(多个)数据流图中的一个或多个数据流图,并且将数据发送到MDW运行时系统124以执行(多个)数据流图。在这种情况下,经编译的应用程序118可以对源数据112的至少一部分进行操作。可以将经编译的应用程序118与由数据仓库106生成和编译的一个或多个其他数据流图集成在一起,以协作地处理源数据112。关于图3进一步详细描述了应用程序118的数据流图。在名称为“Managing Parameters for Graph-Based Applications[为基于图的应用程序管理参数]”的美国专利号7,716,630中更详细地描述了用于开发和配置数据流图的环境,该美国专利通过引用以其全文并入本文。
数据仓库106包括具有来自一个或多个联网数据源104的经转换源数据112的存储库。存储在数据仓库106中的数据(例如,经转换数据114)被配置为符合数据仓库的数据规则。数据仓库106的数据规则确定数据仓库如何加载、存储和更新数据。存储在数据仓库106中的数据符合数据规则。数据规则促进数据仓库106的一个或多个应用程序,诸如数据报告、数据分析、数据挖掘以及其他类似的应用程序。
数据仓库106的数据规则定义了如何对数据(例如,源数据112)进行转换以存储在数据仓库106中。数据规则是逻辑规则并且可以包括各种格式的多个文件。例如,数据规则可以包括指定数据质量规则的第一文件和指定键处理规则的第二文件。数据规则的文件包括元数据,该元数据可以定义用于转换源数据112的参数的一个或多个值。数据规则的参数准确地指示了数据仓库106的配置应该是什么样的。例如,数据仓库106的数据规则指定如何从数据仓库106检索数据以及如何提取数据、转换数据和将数据加载到数据仓库106。例如,数据仓库106的数据规则可以包括数据字典。数据字典包括元数据,该元数据定义了数据仓库106如何处理所存储数据。例如,数据字典可以指定所存储数据的含义、所存储数据与其他数据的关系、起源、用途和格式。
通常,数据规则是在MDW编译器102处进行编译之前由一个或多个设备定义的。例如,数据规则中包括的数据质量规则可以被事先定义并由MDW编译器102接收,以用于编译应用程序118的数据流图。在一些方面,可以在客户端设备108处定义数据规则的至少一部分。例如,可以通过与客户端设备108上的应用程序相关联的接口(例如,由用户)来定义数据规则,并且可以将所定义的数据规则发送到MDW编译器102。在另一示例中,在除客户端设备108之外的设备处定义数据规则。在又另一示例中,通过与MDW编译器102相关联的接口来定义数据规则中的至少一些数据规则。
首先,数据规则指定针对存储在数据仓库106中的数据的数据历史的标准。数据历史指定如何根据特定标准维护数据仓库106中的数据。该标准包括关于如何将数据输入到数据仓库106的数据记录中的一组规则。这些规则对于不同的数据仓库可能有所不同。通常,规则对特定数据仓库的数据加载和记录更新进行标准化。数据历史(有时称为历史化)确保数据仓库106正确地记录数据仓库106中的数据随着时间的推移的变化(例如,更新)。
数据仓库106可以存储数据仓库106的内容在不同时间点(例如,每个时间点)的记录,这使得另一个系统能够根据数据仓库106的内容在特定时刻的状态来请求这些内容的快照。可以通过标准技术来实现数据历史,该标准技术用于记录数据仓库106的数据条目是何时添加的以及所添加的数据何时是数据仓库中的最新版本数据(例如,该数据何时被更改,如果适用的话)。
例如,数据记录可以包括指示数据记录被添加到数据仓库106的时间的时间戳(例如,日期字段)。当数据记录被更新时,生成第二新记录,并且该第二记录包括将该第二记录与第一记录相关联的标识符。第二记录包括指示记录被添加的时间的时间戳(例如,日期字段)。第二记录包括指示第二记录是最新版本数据(例如,当前有效数据)的数据。然后,更新第一数据记录以包括指示第一记录不再是最新(例如,当前有效)数据的数据。更新第一记录以代替地指示第一记录包含最新数据的时间段。因此,由数据仓库106维护的数据历史使得能够报告在不同时间点(例如,随着时间推移的片段)存储在数据仓库106中的数据。虽然以上数据历史的示例是可以在数据仓库106中使用的一种特定方法,但是数据仓库106可以使用其他维护数据历史的方法。数据仓库106的数据规则指示数据仓库的数据历史应该使用哪种协定。
其次,数据规则包括指定数据仓库106的数据质量标准的规则。数据质量是指正存储在数据仓库中的数据满足存储这些数据的应用程序的一项或多项要求的可靠性。例如,应用程序的要求可以包括:用数据填充数据记录的一个或多个字段,该数据是最新的并且该数据具有特定格式。本质上,(在MDW运行时系统124的外部的)该应用程序能够从数据仓库106请求数据,并响应于该请求而以预期格式可靠地接收数据。
数据仓库106的数据质量确保存储在数据仓库中的数据满足正在使用(例如,检索和处理)存储在数据仓库106中的数据的应用程序的要求。数据质量通过一组数据处理步骤来实施,该组处理步骤确保所存储数据的完整性、有效性、准确性、一致性、可用性和及时性的标准。
例如,数据质量确保利用来自一个或多个联网数据源104的数据正确地填充每个数据记录。当MDW运行时系统124摄取数据时,检查数据的完整性、冗余度、格式设置、准确性等。可以使用数据清理过程,该过程包括识别数据的不完整、不正确、不准确或不相关的部分,并且然后替换、修改或删除所识别的数据。在一些实施方式中,如果多个联网数据源104涉及相同的数据(例如,两个源包含同一数据记录的副本),则合并数据条目。数据仓库106的数据规则指定数据仓库的数据质量要求,诸如,经转换数据114必须满足什么标准才能被存储在数据仓库中。MDW运行时系统124根据数据仓库106的数据规则将源数据112转换为经转换数据114。
再次,数据规则指定数据仓库106的数据如何满足数据完整性的标准。数据完整性是指所存储数据在其整个生命周期内准确且一致的程度。数据完整性包括从数据仓库106访问特定数据的能力。例如,数据规则指定如何索引数据条目(例如,为各个记录指配哪个(哪些)键值)。在另一示例中,数据规则指定如何将第一数据记录中的引用配置为指向第二数据记录。在另一示例中,数据完整性确保每个记录都具有可以被其他记录引用的有效索引或键值。数据完整性确保,当(例如,在MDW运行时系统124外部的)应用程序从数据仓库106中的数据记录请求数据时,从数据仓库返回正确的数据,而不包括未请求的其他数据。正确的数据可以包括来自数据记录的数据、数据记录和/或应用程序在查询中指示的数据字段。数据仓库106中指定的在数据仓库106的数据条目之间的映射必须是有效的,以便应用程序从数据仓库106可靠地访问数据。
数据仓库106的数据完整性确保存储在数据仓库106中的数据在该数据的整个生命周期内是一致且准确的,并且确保响应于针对数据仓库中的数据的查询而返回预期的数据。数据完整性确保不会由于对数据仓库106中的数据执行的存储、检索或处理操作而对数据造成意外更改。例如,数据完整性规则可以指定在数据被读取、更改等之前将该数据加载到缓冲区。数据仓库106的数据完整性确保保持实体完整性、引用完整性、域完整性或某种用户定义的完整性中的至少一项。例如,引用完整性可以指定在数据仓库106中第一键如何引用第二键。引用完整性确保引用将指向结构化数据的有效索引(例如,键值),并且确保不会在引用逻辑中发生无限循环。在另一示例中,实体完整性可以指定存储在数据仓库中的数据记录的哪个字段包含针对各个数据记录的主键以及该主键将具有的键值。例如,实体完整性数据可以指定数据仓库中的结构化数据的第一字段为键字段,并且指定该字段具有在大于1之间的十六进制键值,每个十六进制键值至少具有4个数位。数据仓库106的数据规则定义了允许哪些键映射以及这些键映射遵循哪种标准。例如,键映射可能能够引用一个不同的表或记录或者多个其他表或记录。键映射列表可以称为键映射方案。
第四,数据规则指定如何将数据仓库106配置用于数据报告。响应于请求,以不损害数据仓库106的功能的方式报告存储在数据仓库106中的数据。数据规则指定如何存储数据仓库106中的数据,以便可以在不影响数据仓库的性能的情况下从数据仓库中读取数据。例如,可以对数据仓库中的数据进行写优化,使得可以将读取线配置为访问单个记录,而不会影响对其他记录的写入访问。这种方案可能会减慢从数据库的读取速度,同时会改进将数据写入数据库的时间。相比而言,数据规则可以指定结构化数据为读优化的。这指示写入线一次只能访问单个数据记录,这避免了对一次从数据库读取大量数据的负面影响。因此,可以在不中断数据仓库106的功能的情况下将数据仓库的数据报告给请求系统。在某些示例中,请求系统是MDW运行时系统124外部的计算系统,该计算系统从数据仓库106请求数据。在一些实施方式中,数据仓库106为读优化的(例如,针对读取操作而不是写入操作或其他类型的操作进行优化)。例如,数据仓库106的数据可以包括去规范化数据。对数据仓库106的数据进行去规范化包括对相关数据进行分组(例如,在某些情况下,添加数据的冗余副本)以(例如,相对于规范化数据库)减少在读取操作期间对关系表的依赖。每个记录包括读取操作所需的所有数据,并且读取数据不需要进行联接操作(例如,联接两个条目)。这是读优化数据库的特定示例,但也可以使用其他方法来对数据仓库106进行读优化。在一些实施方式中,在计划的时间段期间更新数据仓库106,在该计划的时间段中,很少或没有(例如,突然)做出对来自数据仓库106的数据的请求。数据仓库106的数据规则反映了数据仓库106的读优化方式,并且约束了数据仓库的读取/写入计划。
返回图1A,在编译环境100中,MDW编译器102被配置为生成可执行应用程序118的一个或多个可执行数据流图,该一个或多个可执行数据流图当在运行时环境120中被执行时,准备来自一个或多个数据源104的数据以存储在数据仓库106中。由MDW编译器102生成的应用程序118的功能由元数据文件110中的元数据参数和规则集映射126中的逻辑规则定义,这些元数据参数和逻辑规则定义上述数据仓库106的数据规则。关于图2A至图2B描述了规则集映射126和元数据文件110的特定内容。
MDW编译器102以元数据文件110和规则集映射126的形式接收数据仓库106的数据规则。元数据文件110和规则集映射126包括上述用于如何配置数据仓库106的数据历史、数据质量、数据完整性和数据报告的每个参数。MDW编译器102被配置为使用数据仓库106的数据规则的参数来生成应用程序118的数据流图。应用程序118被配置为将来自联网数据源104的源数据112转换为被加载到数据仓库106中的经转换数据114。
元数据文件110包括或表示用于将数据存储在数据仓库106中的数据规则。元数据文件110的元数据包括指定存储在数据仓库106中的经转换数据114的格式的参数值。
例如,元数据文件110指定如何将联网数据源104的操作数据库104b的系统的不同键值组合成单个索引。在该示例中,系统的不同操作数据库104b可以包括相对于彼此的冗余键值。元数据文件110指定如何将这些冗余键值转换为数据仓库106中统一索引的唯一键值。该操作可以包括:例如,确定操作键值“001”尚未在数据仓库106中表示,以及因此将操作数据库104b的键值“001”转换为对于数据仓库106而言是唯一的新值。
元数据文件110中指定的参数数量可以不同。通常,元数据文件110包括确定经转换数据114的格式和处理所需的每个参数的值。在一些实施方式中,如果一个或多个参数不具有指定值,则用预定的默认值代替这些一个或多个参数。用户可以修改(多个)元数据文件110,以根据需要改变(多个)参数的(多个)值,从而指定经转换数据114的特定处理,例如,指定经转换数据114与数据仓库106的特定格式的一致性。在一些实施方式中,元数据文件110包括逗号分隔值(CSV)文件、电子表格文件(XLS)或可以由客户端设备108的用户直接编辑的其他此类文件。在一些实施方式中,元数据文件110包括具有可以由用户改变的默认值的所有参数。尽管元数据文件110可以包括数百个参数,但是用户可能只需要针对特定数据仓库106或数据仓库106的一部分调整少量参数(例如,<30个)。未编辑的参数保留为默认值。
在一些实施方式中,MDW运行时系统124在运行时检查元数据文件110以验证元数据文件是否完整(例如,验证MDW编译器102是否可以根据元数据文件来对图进行实例化)。例如,用户可以编辑少于20个参数,并将其他参数保留为默认值。在一些实施方式中,可编辑参数值的数量为几百个。各种数据流图的默认参数值可以被示出在用户正在编辑的文件中,或者可以在运行时从与MDW运行时系统124相关联的库(未示出)中检索而无需将参数值呈现给用户。在一些实施方式中,该库是MDW运行时系统124的存储的一部分。该库存储表示每个参数的默认值的数据(例如,来自表)。例如,MDW编译器102检查接收到的.csv文件的标题行以确定元数据文件110中包括哪些参数,并且从库中检索其余参数的默认值。在一些实施方式中,MDW运行时系统124尝试在运行时(例如,当对数据流图进行实例化时)验证元数据文件110。验证包括确定元数据文件110包括对用于转换源数据112的数据流图进行自动实例化所需的数据。例如,验证包括检查元数据文件110中提供的参数值,以确保不存在冲突、缺失值、无效值等。
除了或代替在运行时被验证的可编辑文件,还可以从用户界面生成元数据文件110。在例如客户端设备108上的数据摄取界面(未示出)中向用户呈现不同的参数选项。用户可以从菜单和其他控件中选择参数,并根据需要为这些参数插入值。元数据文件110可以在MDW编译器102的运行时之前由程序验证。例如,数据摄取界面包括不允许用户输入参数的无效值、冲突的值、将值留空(例如,在参数没有默认值的情况下)等的程序。
MDW编译器102使用在元数据文件110中指定的参数的值来生成应用程序118,该应用程序将源数据112转换为经转换数据114以存储在数据仓库106中。参数的值准确地指定了由MDW编译器102生成的每个数据流图所执行的操作(例如,每个图如何将源数据112转换为经转换数据114)。换句话说,元数据文件中的参数用于对数据流图进行实例化。
除了元数据文件110之外,MDW编译器102还使用来自规则集映射126的数据来编译数据流图。如前所述,规则集映射126可以由另一应用程序定义,然后再被接收并用于生成应用程序118的数据流图。规则集映射126可以包括来自单个源或来自许多源的规则集。
规则集映射126可以包括逻辑规则。逻辑规则定义基于所接收的输入确定的输出,并且通常是使用特定于特定应用程序的术语来定义的。可以通过客户端设备108的数据摄取接口来编辑这些规则。例如,可以将规则编辑器(诸如,业务规则编辑器,BRE)界面呈现给客户端设备108的用户,以用于修改规则。在美国专利号9,002,770中描述了BRE的示例,该美国专利通过引用以其全文并入本文。
在一些实施方式中,规则集映射126可以包括语义文件。语义文件指示在经转换数据114中数据表示什么(例如,指定“USD=美元”,等等)。语义文件可以用于识别在经转换数据114中数据表示什么。例如,如果数据记录的两个不同字段表示相同类型的值(例如,两个字段均表示美元),则规则集映射126可以指定这些数据字段具有彼此相同的格式。在一些实施方式中,可以使用另一接口,诸如在2018年6月4日提交的美国专利申请15/997,278中所描述的接口,该美国专利申请通过引用以其全文并入本文。规则集映射126不限于所提供的示例。而是,规则集映射126可以包括用于将源数据112转换为符合特定数据规则集的经转换数据114的其他逻辑规则。
在一些实施方式中,可以将规则集映射126披露给第一用户以进行编辑,而将元数据文件110披露给第二不同用户以进行编辑。这可以使得非技术用户能够确定数据仓库106的规则集映射126,而无需访问元数据文件110。富有经验的开发人员能够访问和操纵元数据文件110,并确定如何强制执行数据仓库106的引用完整性(例如,确保数据仓库106中的引用是正确且有效的)、键映射等。以这种方式,可以保留数据仓库106的完整性,而无需富有经验的用户或技术用户指定数据仓库106的每条规则。
元数据文件110和/或规则集映射126例如通过客户端设备108的用户界面122被提供给客户端设备108。客户端设备108包括图配置模块。客户端设备108可以包括在合适的操作系统(诸如,与POSIX兼容的操作系统(例如,UNIX、Linux等))的控制下的一个或多个通用计算机。例如,客户端设备108可以包括多节点并行计算环境,该多节点并行计算环境包括使用多个中央处理单元(CPU)的计算机系统的配置,这些中央处理单元可以是本地的(例如,诸如SMP计算机等多处理器系统)、或本地分布式的(例如,耦合为集群或MPP的多个处理器)、或远程的、或远程分布式的(例如,经由LAN或WAN网络耦合的多个处理器)、或其任意组合。尽管客户端设备108被示出为单个设备,但是客户端设备108可以表示一个或多个设备,该一个或多个设备中的各个设备将元数据文件110的一部分发送给MDW编译器102,以生成被配置为将源数据112转换为经转换数据114的应用程序118。用户界面122包括使得客户端设备的用户能够指定规则集映射126和/或元数据文件110中的参数的用户交互式界面。在一些实施方式中,针对用户界面的逻辑是在客户端设备本身上执行的,而MDW编译器102是在与客户端设备通信的后端系统(诸如服务器)上执行的。
返回图1B,示出了运行时环境120。MDW运行时系统124从一个或多个联网数据源104接收数据。联网数据源104可以包括计算系统和存储设备,这些计算系统和存储设备被配置为将数据发送到MDW运行时系统124以存储在数据仓库106中。联网数据源104包括源数据112的一个或多个源,诸如存储设备或到在线数据流的连接,这些源中的每一个可以以各种存储格式(例如,数据库表、电子表格文件、平面文本文件或主机使用的本机格式)中的任一种存储数据。在一些实施方式中,联网数据源104包括主机104a、一个或多个操作数据库104b和一个或多个客户端系统104c中的每一者中的一者。MDW运行时系统124接收源数据112,并对源数据执行一个或多个操作以生成经转换数据114。
MDW运行时系统124将源数据112配置为存储在数据仓库106中。换句话说,MDW运行时系统124将源数据112转换为经转换数据114,但是在由MDW运行时系统124对数据仓库进行配置之前,可以存在数据仓库106在其上运行的物理存储系统硬件。在一些实施方式中,元数据文件110指定对预先存在的数据仓库(可以是数据仓库106)的要求。在该示例中,MDW运行时系统124通过以下方式来维护已经初始化的数据仓库106(例如,更新该数据仓库的数据):准备要存储在该数据仓库106中的附加源数据112。在一些实施方式中,MDW运行时系统124对(例如,在现有硬件存储上的)数据仓库106进行初始化,并且随后更新和/或维护数据仓库106。MDW运行时系统124使用一个或多个数据流图将源数据112转换为准备存储在数据仓库106中的经转换数据114。
来自联网数据源104的源数据112可以包括要存储在数据仓库106中的任何数据。如前所述,源数据112可以来自许多不同种类的源,诸如操作数据库104b、主机104a和客户端系统104c,并且每个源都可以以不同的方式配置(例如,格式化)其发送给MDW运行时系统124的源数据112。源数据112可以包括平面文件和关系表中的一者或两者。数据本身可以包括联网数据源104打算存储在数据仓库106中的任何数据。
MDW运行时系统124将源数据112转换为被正确格式化的经转换数据114,以便存储在数据仓库106。MDW运行时系统124接收源数据112,并基于数据仓库106在运行时的状态将源数据转换为经转换数据114。应用程序118通常是在运行时之前被编译的,并且在从数据源104接收到源数据112时对源数据进行操作。MDW运行时系统124可以从数据仓库106接收数据,以确定如何将源数据112转换为经转换数据114。例如,MDW运行时系统124可以对数据仓库106执行检查以确定源数据112的键值是否已经存在于数据仓库106中,从而推测源数据112的键值对于用作数据仓库106中的键值亦是有效的。在该示例中,从数据仓库106接收的数据可以通知MDW运行时系统124,对于源数据112的给定数据记录,运行时系统是否应允许将该数据记录加载到数据仓库106。在另一种情况下,从数据仓库106接收的数据可以通知MDW运行时系统124,对于源数据112的给定数据记录,运行时系统应如何对该数据记录执行键替代或者究竟是否应该生成键替代。
经转换数据114满足用于对应用程序118进行编译的数据规则。例如,经转换数据114针对前述数据历史、数据质量、数据完整性和数据报告中的至少每一项满足数据规则。例如,经转换数据114的数据记录的每个字段都包括具有指定格式的针对该相应字段的正确数据,并且该记录的键值符合使用索引的协定。将正确的键值指配给数据记录可能需要在运行时由MDW运行时系统124确定该记录的替代键值(例如,键替代)。
转到图2A,示出了编译环境100。编译环境100包括MDW编译器102,该MDW编译器被配置为接收元数据文件110并生成应用程序118。元数据文件110包括元数据文件层次结构200。元数据文件层次结构包括用于生成应用程序118的元数据文件110和规则集映射126。应用程序118在应用程序目录216中包括可执行文件,这些可执行文件包括数据流图(例如,如图文件224)以及由数据流图在执行期间引用以将源数据112转换为经转换数据114的其他文件。
如前所述,元数据文件110包括参数值,MDW编译器102使用这些参数的值来确定MDW编译器102生成以用于处理源数据112的、应用程序118的数据流图的功能。参数的值确定数据流图如何执行功能,诸如键处理、数据历史化、数据质量强制执行以及将数据加载到数据仓库106中。
元数据目录200包括图1A的规则集映射126和元数据文件110。元数据目录200包括二进制文件202(例如.bin文件)、记录格式文件204(例如.dml文件)、图文件(例如.mp文件)和状态文件208。元数据目录200中示出的目录是出于说明性目的而包括的,并且也可以在元数据目录200中包括其他目录。在一些实施方式中,在元数据文件110中不包括所示的一些文件。例如,图文件(未示出)可以从元数据文件中省略并且由MDW编译器102生成,这些图文件通常包括被配置为与应用程序118中的生成的数据流图一起执行的标准数据流图。
通常,记录格式文件204包括用于定义图文件224的记录格式的.dml文件。通常,状态文件208定义用于生成数据流图的特定参数,这些数据流图将源数据112转换为数据仓库106的经转换数据114。MDW编译器102使用DML文件以及状态文件208中的参数生成应用程序的数据流图。状态文件208包括全局文件210、元数据驱动仓库(MDW)馈送文件212和MDW加载文件214。例如,全局文件210包括用于对源数据112进行转换的模式定义和键类型以及序列定义。例如,全局文件可以包括用于查询键替代的键服务。全局文件210可以包括一个或多个.CSV文件(或其他表),这些文件包括针对要由MDW编译器102编译的每个图的参数列表及这些参数的相关联值的列表。参数可以是默认值或者是已被用户更新的值。MDW馈送212包括针对数据仓库106的MDW馈送参数。具体地,MDW馈送212定义如何根据上述元数据仓库的数据规则针对所有加载来准备经转换数据114以加载到数据仓库106中。例如,MDW馈送212可以包括馈送参数,诸如要为其准备经转换数据114的数据仓库106的表,以及用于记录键处理统计信息的规则。如果定义了加载特定参数,则数据仓库加载214可以包括针对到数据仓库106中的每个特定加载的参数(例如,数据历史化规则)。
元数据文件110和规则集映射126通常不是可执行文件。而是,它们是可编辑文件,一旦应用程序被进行编译,用户或仓库就可以为这些可编辑文件指定可执行应用程序目录216的行为。用户可以通过客户端设备108的用户界面(例如,图1A的用户界面122)来设置值。用户界面122可以呈现用于更改元数据文件110中的值的引导选项,并且帮助约束改变以防止将矛盾、循环逻辑或其他潜在的错误引入元数据文件110中。例如,用户界面122可以仅呈现可编辑的参数。用户界面122可以限制用户将参数更改为无效值,诸如与一个或多个其他参数值相矛盾的值。在一些实施方式中,用户界面可以突出显示所检测到的逻辑不一致。在一些实施方式中,用户界面122可以允许更新的参数中的初始逻辑不一致,并且随后将一个或多个其他参数更新为在逻辑上一致的值。例如,可以在用户界面122上呈现警报,该警报指示改变第一参数会导致将两个附加参数改变为指定值。
继续图2A,示出了元数据驱动数据仓库应用程序文件层次结构216(在下文中称为应用程序目录216)的示例。应用程序文件层次结构216是在图1A的编译环境中编译的。应用程序目录216的应用程序文件218包括可执行代码,该可执行代码用于在MDW运行时系统124中运行,以将源数据112转换为经转换数据114以便存储在数据仓库106中。应用程序文件218包括由可执行代码在执行期间引用的元数据和规则集映射(例如,来自元数据文件110和规则集映射126)。例如,应用程序文件218包括根据由规则集映射126和元数据文件110定义的数据规则将源数据112转换为经转换数据114所需的所有数据流图(这些数据流图被存储为图文件224)。数据流图由应用程序文件218中的可执行代码(例如,图文件224)表示。通常,关于图2A所描述的元数据层次结构200的元数据文件110定义应用程序文件218的文件中的参数的值。换句话说,在应用程序文件218的编译期间使用元数据层次结构的元数据文件110来生成应用程序的一个或多个文件和/或定义数据流图在执行期间所引用的参数值。
以文件层次结构(通常是目录层次结构)的形式示出了图2A中所示出的示例应用程序文件218。规则集映射126和元数据文件110中的参数定义了文件层次结构中应用程序文件218的一个或多个路径。参数可以指示数据流图使用转换库中的第一转换而不是应用程序文件218中可用的第二替代性转换来转换源数据112。例如,第一转换可以包括针对数据质量的第一规则,而第二转换包括针对数据质量的第二不同规则。该参数可以指示在给定情况下适用的数据质量规则。
示例应用程序文件218包括目录,这些目录包括二进制文件220(例如,.bin文件)、记录格式文件222(例如,.dml文件)、图文件224(例如,.mp文件)、参数集文件226以及转换文件228(例如.xfr文件)。尽管这些目录被示出为说明性示例,但是应用程序文件218可以包括其他目录,这些目录的文件被配置为使MDW运行时系统124根据数据仓库106的数据规则将源数据112转换为经转换数据114。
图文件224形成数据流图,并且引用应用程序目录216中的其他文件,诸如二进制文件220、记录格式文件222和转换函数文件230。参数集文件228可以用于手动覆写图文件224中定义的数据流图的参数值。转换文件230可以包括为应用程序目录216定义的函数(例如,数据历史化和报告逻辑),这些函数在图文件224的数据流图的一个或多个组件中被执行。
图2B示出了用于为元数据驱动数据仓库106编译数据流图(诸如将应用程序118从元数据层次结构200的元数据文件110编译到可执行应用程序目录216)的示例环境。
元数据文件110定义MDW运行时系统124的馈送图。例如,元数据文件110定义键替代、对任何获取的数据的键处理以及数据的历史化。对馈送/加载的定义是在编译阶段期间自动执行的。在接收到规则集映射和数据质量指标后,将在编译阶段期间自动执行对馈送/加载的定义。元数据文件110包括例如加载和馈送文件238a、模式定义238b、键类型和序列定义238c以及稀疏加载映射238d。
加载和馈送文件238a各自列出了对数据仓库106的加载和馈送的定义。加载和馈送文件238a可以被包括在图2A的MDW馈送212和MDW加载214中。加载和馈送文件238a包括加载特定目标表(例如,经转换数据114将被加载到数据仓库106中的位置)。加载和馈送文件238a指定在数据仓库106中使用的数据历史的类型。加载和馈送文件238a指定目标表的哪个数据字段是键字段(例如,引用数据库的主键)。加载和馈送文件238a指定目标表的键字段的数据类型、键的格式以及作为目标表的表的类型(并且可以引用键类型文件238c)。加载和馈送文件238a指定目标表的哪个字段包括数据历史信息(例如,批量时间)。加载和馈送文件238a包括针对数据仓库106的这些方面中的每个方面的参数(例如,超过80个参数),并且这些参数由MDW编译器102用于生成可执行文件。
模式定义238b包括数据仓库106的目标表的目标模式。例如,模式定义包括字段名称(例如,字段的名称空间)和这些字段的数据条目的配置。模式定义文件238b可以指定数据仓库106是否是关系数据库、数据湖等,以及遵循什么专有(或非专有)数据标准(如果有的话)。在用于配置数据仓库106的物理属性的示例文件中,模式定义238b可以包括模式(例如,正在使用什么数据配置模式)、实体(例如,目标的名称)、属性(例如,字段名称)、数据类型(例如,数据格式,诸如字符串、十进制等)、值是否可为空以及键类型(例如,引用、主要等)。
键类型和序列定义238c包括每个目标表的键的配置。因为键是一类对象,所以键类型文件238c指定键类型、键序列以及如何执行键处理。例如,键类型文件238c可以指定键值是字符串、二进制值、数字等。键类型文件238c可以指定用于键替代的键序列(例如,针对特定序列生成顺序键值所允许的最小值和最大值是多少)。在另一示例中,键类型和序列定义238c可以指定用于目标的键是自然键还是替代键。在示例键定义文件238c中,每个键定义可以包括名称和键源(键来自其中),该键源可以指定键类型。键源指示在准备经转换数据114时是保留原始的传入键值还是(例如,通过键替代服务)提供替代值。键源的值可以示出提供了哪种的键替代。
稀疏加载映射238d包括用于将经转换数据114加载到数据仓库106中的附加规则和/或属性。例如,稀疏加载映射238d包括字段名称和这些字段中的每个字段的行为细节。在用于配置数据仓库106的物理属性的示例文件中,稀疏加载定义可以包括“忽略加载值”参数(例如,无、null或空等)和null或空处理设置(例如,是否拒绝或忽略null值或空值)。
元数据文件110由配置器244验证。配置器244包括逻辑引擎(例如,数据处理引擎)。配置器244被配置为:接收元数据文件110,并且分析所接收的元数据文件110以确定在元数据文件110中指定的、用于对应用程序118进行编译的参数的值。例如,配置器244扫描元数据文件中包括的.csv文件的标题行,以确定元数据文件中包括哪些参数。在示例中,向在元数据文件110中未指配有值的参数指配默认值(例如,来自值库)。配置器为数据仓库106建立元数据档案。
配置器244如以下验证文件层次结构200的元数据文件110。配置器244检索与数据仓库的目标位置相关联的记录格式文件。目标位置是数据仓库中的、在向数据仓库加载时要写入到的位置。记录格式文件描述了如何对目标进行格式化。配置器组装全局文件(例如,全局文件210)。
配置器244检查馈送特定元数据246b。馈送特定元数据246a包括键替代规则,诸如哪些字段受键替代影响、哪些键序列从给定字段获取键替代值等。从馈送特定元数据246a检索到的规则被传递到MDW运行时系统124以供在执行期间使用,但在该阶段被定义和验证,以确保数据仓库的引用完整性。例如,检查经转换数据114的每个键值,以确保引用了另一个现有记录(并且确保没有错误或null值被返回)。
配置器244还检查加载特定元数据246b。加载特定元数据246b可以包括用于将数据加载到数据仓库106中的历史化规则。如上所述,对于每个特定加载,针对数据历史的特定规则(例如,如何对日期字段进行格式化)可以是数据仓库所特定的。
在一方面,并非生成如上所述的将通过馈送来执行键处理的可执行图,而是将MDW编译器102配置为使用键定义特定元数据246c来生成一个或多个键查找/替代块的库。当定义通过另一计算系统(例如,通过在2018年6月4日提交的美国专利申请序列号15/997,278中描述的系统,该美国专利申请通过引用以其全文并入本文)馈送的、数据仓库一个或多个参数时,用户可以指定例如对数据仓库106的键值的处理。关于图4至图5描述了用于对数据仓库106的键值进行处理的这种配置以及用于通过使用元数据246a、246b进行的馈送来处理键值的逻辑。
图生成逻辑248生成可执行数据流图,这些可执行数据流图执行键处理、历史化以及将源数据112作为经转换数据114加载到数据仓库106中。图生成逻辑248与应用程序118的生成的数据流图是分离的。图生成逻辑248从元数据档案246接收经配置的元数据246a、246b、246c,以用于生成应用程序118的数据流图。一旦元数据已经被配置器244验证,MDW编译器102就使用图生成逻辑248来生成应用程序118的一个或多个可执行数据流图。应用程序118的生成的数据流图包括应用程序文件218中的可执行代码,该可执行代码在需要时可以引用元数据文件110中的参数。元数据文件110和图文件224的位置为使得MDW编译器102可以在编译期间访问这些文件而无需用户干预,以生成每个数据流图。应用程序118的生成的数据流图可以包括键处理图以及历史化和加载图。
数据流图包括数据处理组件的图形表示(例如,节点)。例如,参照图3,通用数据流图300包括数据源302a至302n、组件304以及数据接收器306。数据源302a至302n连接到组件304的输入端口。组件304的输出端口连接到数据接收器306。数据源、组件、和数据接收器之间的连接定义了通过数据流图的数据流。
数据源302a至302n、组件304和数据接收器306中的每一者分别与参数集308a至308n、310和312相关联。每个参数集包括一个或多个参数。参数及其值定义了数据流图的行为。例如,参数可以定义数据源或数据接收器在物理磁盘上的位置。参数还可以定义组件的行为,诸如排序组件如何对输入到组件中的数据进行排序。在一些示例中,在数据流图的运行时填充参数集中的参数的值。
在一些示例中,一个参数的值可以取决于另一参数的值。例如,数据源可以存储在特定目录中的文件中。数据源的参数集可以包括名为“DIRECTORY(目录)”的第一参数和名为“FILENAME(文件名)”的第二参数。在该示例中,FILENAME参数取决于DIRECTORY参数(例如,DIRECTORY可以是“/usr/local/”,而FILENAME可以是“input.dat”)。参数还可以取决于其他组件的参数。例如,数据流图的数据接收器的物理位置可以取决于该数据流图的数据源的物理位置。例如,数据接收器可以包括参数集,该参数集包括取决于数据源的DIRECTORY参数的FILENAME参数(例如,数据接收器的FILENAME参数可以是“/usr/local/output.dat”,其中值“/usr/local/”是从数据源的DIRECTORY参数中获得的)。
组件304可以是引用一个或多个其他数据流图320a至320n(有时称为子图)的图形界面组件。在运行时,数据流图300动态地加载并执行组件304所引用的(多个)子图,例如,使数据流图300能够灵活地访问由子图320a至320n提供的各种功能。组件304的一个或多个参数定义了组件304所引用的(多个)特定子图320a至320n。每个子图320a至320n还与包括一个或多个参数的参数集322a至322n相关联,每个参数定义对应子图的行为。
数据流图的构造本质上是高度技术性的。虽然也是为了实现特定的业务目的而编写的,但是图的基础结构和构造是基于技术考虑而确定的。例如,可以将图组件选择为最大化可重用性,或支持并行处理。另一方面,在何处使用图可能在很大程度上是业务决策。与参数化的数据流图相关联的参数中的一些参数可以用于使得业务用户能够自定义数据流图,而不需要用户理解其实施背后的技术复杂性。参数化的数据流图简化了自定义化并促进重用。
可以在客户机上呈现用于标识用于构造数据流图的参数值的界面。在一些实施方式中,客户端可能正在使用提供参数界面的客户端上的web浏览器并使用为客户端侧处理提供某些功能的脚本语言访问在服务器上运行的开发环境。脚本语言可以与服务器通信以更新参数并执行其他必要的操作。此通信可以经由网桥机发生,该网桥机转换客户端与运行开发环境的服务器之间的通信,该服务器存储用于被构造的图的对象和相关联参数值。即使用户缺乏有关数据流图和数据流图配置的技术知识,界面也允许用户配置参数化的数据流图的参数。
呈现在客户端设备108上的配置界面使得用户能够访问图配置模块(未示出)。通过配置界面,用户可以指定数据源、数据接收器的特性,以及要由数据流图执行的转换,而无需关于数据流图配置的技术知识。基于用户指定的特性,可以为参数集308a至308n、310、312、322a至322n指配参数值,从而根据用户指定的特性定义数据流图的行为。
在配置界面内,参数集308a至308n、310和312的参数可以被组合并重新组织成多个组以与用户交互,例如,这反映了业务考虑而非技术考虑。用于基于用户输入来接收参数的值的配置界面可以根据参数之间的关系以灵活的方式显示不同的参数,该方式不必受到服务器上开发环境方面的限制。在美国公开号2011/0145748中描述了配置界面的示例,该美国公开号的内容通过引用以其全文并入本文。
MDW编译器102利用参数(例如,形成图3的参数集308a至308n、310和312的参数)对包括数据流图的应用程序118进行编译,并且这些参数由元数据文件110指定。下面描述了生成的图的示例。
MDW编译器102所编译的数据流图被配置为将源数据112转换为经转换数据114。例如,数据流图可以被配置为运行已经由MDW编译器102使用元数据文件110中指定字段名称、索引值等的参数生成的SQL查询。可以生成实例化数据流图的许多不同配置。在一些实施方式中,MDW编译器102在运行时检查元数据文件110以验证元数据文件验证是否完整(例如,验证MDW编译器102是否可以根据元数据文件来对图进行编译)。
在图4至图5中示出了用于在运行时环境120中通过MDW运行时系统124将源数据112转换为经转换数据114的示例数据流图。图4示出了MDW运行时系统124的示例。图5示出了在运行时环境120的背景下的键处理。MDW运行时系统124包括多个逻辑模块502、504和506,这些逻辑模块执行图5的图404至414的逻辑并且以其他方式准备源数据112以存储在数据仓库106中。在一些实施方式中,逻辑模块502、504和506中的每个逻辑模块包括一个或多个数据流图,该一个或多个数据流图被配置为基于在客户端设备108处接收的元数据文件110和规则集映射126来执行根据数据流图编译的可执行代码。例如,关于图5所描述的块406以及图408和410的逻辑被配置为在从联网源104a至104c接收到源数据112时,对该源数据进行操作。MDW运行时系统124的逻辑模块可以执行键替代逻辑和数据历史化逻辑。
键替代逻辑模块502包括键服务,这些键服务用于生成替代键,如关于图1A至图1B和图5所描述的。在一些实施方式中,键替代逻辑模块502包括图5的键替代块406。如果由如前所述的数据规则指定,作为源数据112的一部分的每个源数据键510a、512a可以被转换为相应的键替代510b、512b。键替代510b、512b分别被指配给经转换数据114的经转换数据条目。键替代逻辑模块502从元数据档案246接收经配置的元数据和规则集映射,以确定要为经转换数据114生成哪些替代键510b、512b。在一些实施方式中,键替代逻辑模块502包括针对每个键序列的专用过程和针对数据仓库106对每个键服务的专用调用。例如,可以针对每个过程使用单独的图。在所示出的示例中,将源记录518的值为“0001”的源键512a转换为经转换数据520的记录的目标键512b。目标键512b的值为“011010001”,并且表示符合数据仓库106的要求的替代键。如关于图5所描述的,还执行引用完整性强制执行。
数据历史化和加载逻辑模块506对源数据112进行操作,以便为每个数据记录生成适当的数据历史,如以上关于图1A至图1B和图5所描述的。例如,数据历史化和加载逻辑模块506可以包括图5的数据历史化和加载器图410。
键处理逻辑模块504执行用于将源数据112中的键字段数据转换为目标数据114中的键字段数据的处理逻辑。在一些实施方式中,键处理逻辑模块504包括图5的键处理馈送图408。例如,源数据记录518具有数据历史化方案,其中当记录被更新时,在记录中包括时间戳。时间戳516a的值为“00:01”。将源数据记录518的该时间戳516a转换为与数据仓库106的历史化方案相符,这要求时间戳值具有更高的精度。将时间戳516a的值“00:01”转换为“2018:125:00:01”,这可以反映生成记录520和/或将该记录加载到数据仓库106中的时间。
图5示出了在运行时环境120的背景下的键处理。在图5中示出了由MDW编译器102自动生成的、应用程序的数据流图。MDW编译器102可以将键处理逻辑封装在生成的独立式键处理馈送图408中,或者封装在生成的键查找块406中,以供访问键替代服务的另一个计算系统使用。
在一方面,当MDW运行时系统124获取数据时(例如,在接口404处),MDW运行时系统124可以对源数据112执行操作,以将源数据转换为经转换数据114,如前所述。这些操作包括键处理、数据历史化以及将数据加载到(多个)目标(例如,数据仓库106)中。
对于键处理,MDW运行时系统124通常向一个或多个键替代服务发送请求。键替代块的每个模块被配置为根据特定规范执行键处理。例如,如果目标402被配置有第一格式的键值,则MDW运行时系统124可以调用这些模块中的第一模块来检查源数据112的键并根据需要生成替代键。如果目标402被配置有第二格式的键值,则MDW运行时系统124可以调用这些模块中的第二不同模块来执行键处理。
在一方面,MDW编译器102被配置为在键处理馈送图408中执行键处理功能。MDW运行时系统124不是经由另一计算系统使用的块来调用服务,而是直接通过独立式可执行文件来调用键服务。
在一些实施方式中,键处理馈送图408或键替代块406不需要生成键替代,而仅需要检查目标数据仓库106内的源键值的引用完整性。在该示例中,并非生成键替代,而是键替代块406或键处理馈送图408在不改变键值的情况下验证并强制执行键值的引用完整性。引用完整性检查是关于所讨论的键值是目标数据仓库106已知的有效值的验证。
在执行引用完整性检查时,键处理馈送图408可以使用一种或多种强制执行机制来处理未知键值。键处理馈送图408可以被配置为拒绝键和/或与该键相关联的数据记录。键处理馈送图408可以用可配置的标志键值代替该键,该标志键值向对与该标志键值相关联的数据记录进行操作的一个或多个系统提供表明应以特定方式处理数据记录的信号。例如,标志键值可以指示该键值在稍后的时间应被另一个键值替换。例如,标志键值可以指示包括该标志键值的数据记录中的相关联数据是无效的。其他这种信息可以通过标记键指示。键处理馈送图408可以为数据仓库106构造占位符记录(例如,一个或多个占位符数据条目)。在接收到与数据记录的键值有关的更多信息时,可以在稍后的时间更新占位符数据条目。键替代块406将向每个传入键值添加状态标志,从而指示该传入键值是否体现引用完整性违规(即,该传入键值是否是目标数据仓库106已知的),这可以通知给由使用键替代块406的源获取计算系统支持的强制执行机制。
在一方面,源数据112的数据元素的键值可以要求该数据元素的键替代符合数据仓库106的数据规则。键替代块406或键处理馈送图408执行用于确定源数据112的每个数据记录的键值的以下操作。键替代块406或键处理馈送图408被配置为当源数据112中的键的值不符合数据仓库106的键方案时,生成键替代。键替代是替换键,这些替换键对在每个单独的联网数据源104a至104c中使用的键进行替换。键替代用于确保数据仓库106中的每个记录具有唯一的键值和/或与数据仓库106中的其余数据一致的键值。用数据仓库106的单个统一索引来替换这些联网数据源104中的每一个中使用的索引系统。例如,联网数据源104a的键可以包括整数值,而联网数据源104c的键包括字母数字字符串。键替代块406或键处理馈送图408执行键普查和查找功能,以确定来自每个联网数据源104a至104c的源数据112在数据仓库106中的键值应该是什么。例如,键处理馈送图408识别联网数据源104c的数据记录的键值。键替代块406或键处理馈送图408使MDW运行时系统124向键服务发送确定由键普查功能识别的键是否已经被替代的请求。如果所识别的键在数据仓库106中没有键替代,并且经配置的规则指定在此背景下允许生成新替代,则键替代服务将新键值确定为所识别的键的替代键。在将数据加载到数据仓库106中之前,键替代块406或键处理馈送图408将替代键应用于数据条目。在一些实施方式中,件替代是批量计算的。在一些实施方式中,为源数据112的每个键序列生成专用图。键集合由在源中使用的键值到属于经配置的键序列的替代键值的映射组成。
生成的数据历史化和加载器图410根据数据仓库106的要求为源数据112中描述的每个实体计算数据历史,并准备数据以加载到数据仓库106中。对于源数据112中描述的每个实体的数据历史的改变被包括在经转换数据114中。例如,数据历史化和加载器图410可以包括数据流图。数据历史化和加载器图410可以被配置为针对经转换数据114中的每个记录生成时间戳、针对该数据记录生成更新日期范围等,并且在必要时更新存储在数据仓库中的数据历史。在一些实施方式中,当从数据源104接收到更新的数据记录以替换数据仓库106中的存储数据时,数据历史化和加载器图410可以将该存储数据标记为过时的。当从数据源104接收到源数据112时,在运行时执行数据历史化和键替代两者。
数据历史化和加载器图410被配置用于准备源数据112,以将其作为经转换数据114加载到数据仓库106中。数据历史化和加载器图410支持不同历史范围的加载。数据历史化和加载器图410正确地将已建立的历史与迟来的数据加载和纠错加载进行协调。
图6示出了用于从源数据生成用于数据仓库(例如,图1B的数据仓库106)的示例经转换数据610的示例运行时环境620。源数据608和经转换数据610包括示例数据条目616以及包括键值字段618、数据字段612和数据历史字段614的多个字段。
MDW运行时系统124接收源数据608。在该示例中,源数据608的每个数据记录(例如,记录616a)包括三个字段:索引618a、数据612a和时间戳614a。源数据608在MDW运行时系统124的逻辑模块502、504和508中被转换。在该示例中,为源数据608的每个数据记录指配了符合数据仓库106的标准的新键。在该示例中,指配了新的键,但这并不总是需要的。在一些实施方式中,对于一些或所有记录,键值可以保持不变。准备经转换数据610以存储在数据仓库106中。经转换数据610的每个记录(例如,记录616b)包括三个字段,这三个字段包括分别与源数据608的字段618a、612a和614a相对应的键字段618b、数据612b和时间戳614b。源数据608的记录616a对应于经转换数据610的记录616b。源数据608的记录616a的索引为“0001”,其例如是存储源数据的操作数据库的第一记录。经转换数据610的记录616b的索引为“011010001”,该索引对应于数据仓库106的索引方案。记录616a的为“alpha(α)”的数据在记录616b中保持不变。记录616a的时间戳为“00:01”,该时间戳可以表示记录616a的数据最后被更新的时间。经转换数据610的记录616b的经转换时间戳为“2018:125:00:01”,该经转换时间戳表示呈针对数据仓库106指定的格式的经转换时间戳。尽管源数据608的数据记录616a到经转换数据610的数据记录616b的转换是一个示例,但是根据先前和随后的描述,许多其他转换也是可能的。
图7包括用于为元数据驱动仓库应用程序编译数据流图的动作的流程图。计算系统(例如,图1A的MDW编译器102)接收(702)至少一个元数据文件,该至少一个元数据文件为用于将数据结构化到结构化数据库中的一个或多个参数中的每一个参数指定值。这些参数可以包括针对数据质量、数据完整性、数据报告、键替代、数据历史等的参数。MDW编译器102分析(例如,通过图2B的配置器244)所接收的元数据文件110以确定在元数据文件110中指定的、用于对数据流图进行编译的参数的值。MDW编译器102验证(704)参数的值和用于转换多个数据馈送的逻辑规则对于多个元数据中的每个数据馈送在逻辑上是一致的。通过以下方式来执行验证:确定所有加载/馈送均已被完全定义并且全局文件与每个加载或馈送完全一致,使得这些加载/馈送在逻辑上是一致的。为此,在一方面,MDW编译器102检查元数据档案的馈送特定元数据和加载特定元数据。MDW编译器102检查馈送特定元数据,该馈送特定元数据可以包括键替代规则(诸如受键替代影响的字段,这些字段从其获得键替代值的键序列等),这些键替代规则将在运行时使用,以确保每个键是有效的并且在数据仓库中具有有意义的值。在一方面,MDW编译器102检查加载特定元数据,该加载特定元数据可以包括用于将数据加载到数据仓库中的历史化规则。MDW编译器102生成(706)用于运行时环境(例如,图1B的运行时环境120)的至少一个数据流图。(多个)数据流图可以被配置为在运行时执行键替代操作、历史化操作、数据质量操作和数据加载操作。每个数据流图被配置为:从一个或多个数据源接收源数据(例如,图1B的源数据112),并将源数据转换为满足该结构化数据记录的如由元数据的参数定义的一个或多个标准的结构化数据。
转到图8,用于通过元数据驱动仓库应用程序的数据流图对数据进行运行时转换并将数据加载到数据仓库的动作的流程图。在运行时系统(例如,图1B的MDW运行时系统124)接收到源数据(例如,源数据112)时,MDW运行时系统124的数据流图处理该源数据。对于每个记录,MDW运行时系统124的数据流图处理(802)源数据以将数据转换为满足结构化数据的如由数据规则定义的一个或多个标准的经转换数据(例如,图1B的经转换数据114)。MDW运行时系统124确定(804)是否存在更多的源数据。如果存在更多源数据,则数据流图进一步处理源数据并将其转换为满足数据规则的结构化数据的一个或多个标准的经转换数据。MDW运行时系统124可以与处理其他源数据112并行地处理经转换数据112。MDW运行时系统124确定(806)是期望立即加载经转换数据114,还是优选稍后加载经转换数据。当数据仓库106尚未准备好接受新数据时,稍后加载经转换数据可能是优选的。例如,另一系统可能正在从数据仓库106读取数据。如果期望立即加载,则MDW运行时系统124将经转换数据存储(810)在数据仓库(例如,图1B的数据仓库106)中。如果优选稍后加载,则MDW运行时系统124暂存(812)源数据112以在稍后的时间加载。
当MDW运行时系统124暂存源数据112以在稍后的时间加载时,键处理仍在运行时完成。这是因为,当调用键服务时(如前所述),键服务在将其他键值指配给其他加载时会考虑暂存的数据。
可以使用用于在计算机上执行的软件来实施上述图配置方法。例如,软件形成一个或多个计算机程序中的在一个或多个编程或可编程计算机系统(其可以是诸如分布式、客户端/服务器或网格等各种架构)上执行的规程,这些计算机系统各自包括至少一个处理器、至少一个数据存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备或端口以及至少一个输出设备或端口。软件可以形成较大程序(例如,提供与计算图的设计和配置相关的其他服务)的一个或多个模块。图的节点和元素可以实施为存储在计算机可读介质中的数据结构或者符合存储在数据存储库中的数据模型的其他有组织的数据。
上述技术可以使用软件来实施以便在计算机上执行。例如,软件形成一个或多个计算机程序中的在一个或多个编程或可编程计算机系统(可以是诸如分布式、客户端/服务器或网格等各种架构)上执行的规程,这些计算机系统各自包括至少一个处理器、至少一个数据存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备或端口以及至少一个输出设备或端口。软件可以形成较大程序(例如,提供与图表和流程图的设计和配置相关的其他服务)的一个或多个模块。图表的节点、链路和元素可以实施为存储在计算机可读介质中的数据结构或者符合存储在数据存储库中的数据模型的其他有组织的数据。
本文描述的技术可以在数字电子电路系统中实施,或者在计算机硬件、固件、软件或其组合中实施。装置可以在有形地体现或存储在机器可读存储设备(例如,非暂态机器可读存储设备、机器可读硬件存储设备等)中的计算机程序产品中实施,以供可编程处理器执行;并且方法动作可以由执行指令程序的可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行功能。本文所描述的实施例和权利要求的其他实施例以及本文所描述的技术可以有利地在可编程系统上可执行的一个或多个计算机程序中实施,该可编程系统包括至少一个可编程处理器,该可编程处理器被耦合以从数据存储系统、至少一个输入设备以及至少一个输出设备中接收数据和指令并向数据存储系统、至少一个输入设备以及至少一个输出设备传输数据和指令。每个计算机程序可以用高级程序或面向对象的编程语言来实施,或者如果需要的话用汇编语言或机器语言来实施;并且在任何情况下,语言可以是编译语言或解释语言。
适合于执行计算机程序的处理器举例来讲包括通用微处理器和专用微处理器两者、以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机必不可少的元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或者光盘),或者被可操作地耦合以从用于存储数据的一个或多个大容量存储设备接收数据或者向其传送数据,或者既接收又传送数据。用于体现计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器,举例来说,包括半导体存储器设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD ROM盘。处理器和存储器可以由专用逻辑电路系统来补充或并入专用逻辑电路系统。上述任何一项都可以由ASIC(专用集成电路)补充或并入ASIC。
为了提供与用户的交互,实施例可以在具有用于向用户显示信息的显示设备(例如,LCD(液晶显示器)监视器)和用户可以通过其向计算机提供输入的键盘和指点设备(例如,鼠标或轨迹球)的计算机上实施。其他种类的设备也可以用于提供与用户的交互;举例来说,提供给用户的反馈可以是任何形式的传感反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以用任何形式接收来自用户的输入,包括声音输入、语音输入、或触觉输入。
实施例可以在计算系统中实施,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面或Web浏览器的客户端计算机,用户可以通过该图形用户界面或Web浏览器与实施例的实施进行交互),或者这些后端组件、中间件组件或前端组件的任何组合。系统的组件可以通过数字数据通信(例如,通信网络)的任何形式或介质来进行互连。通信网络的示例包括局域网(LAN)和广域网(WAN)(例如,互联网)。
该系统和方法或其部分可以使用互联网上利用超文本传输协议(HTTP)的服务器集合——“万维网”(Web或WWW)。HTTP是已知的应用协议,其为用户提供对资源的访问权,资源可以是不同格式的信息,诸如文本、图形、图像、声音、视频、超文本标记语言(HTML)以及程序。在用户指定链路后,客户端计算机向Web服务器发出TCP/IP请求并接收信息,该信息可以是根据HTML格式化的另一个Web页。用户也可以通过遵循屏幕上的指令、输入特定数据或点击所选图标来访问相同或其他服务器上的其他页。还应当注意,本领域技术人员已知的任何类型的选择设备,诸如复选框、下拉框等,可以用于使用web页来允许用户为给定组件选择选项的实施例。服务器在各种平台上运行,包括UNIX机器,但也可以使用其他平台,诸如Windows 2000/2003、Windows NT、Sun、Linux和Macintosh。计算机用户可以通过使用浏览软件(诸如Firefox、Netscape Navigator、Microsoft Internet Explorer或Mosaic浏览器)在Web上查看服务器或网络上可用的信息。计算系统可以包括客户端和服务器。客户端和服务器通常远离彼此并且通常通过通信网络交互。客户端与服务器的关系借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序产生。
其他实施例在说明书和权利要求的范围和精神内。例如,由于软件的性质,上文描述的功能可以使用软件、硬件、固件、硬连线或任何这些的组合来实施。实施功能的特征也可以物理地位于各种位置,包括被分布使得功能的各部分在不同的物理位置处实施。术语“a(一个)”在本文和整个申请中的使用不是以限制的方式使用的,并且因此不意味着排除术语“a(一个)”的多个含义或“一个或多个”含义。另外,就要求对临时专利申请的优先权而言,应当理解,临时专利申请不是限制性的,而是包括可以如何实施本文描述的技术的示例。
已经描述了本发明的多个实施例。然而,本领域普通技术人员将会理解,在不脱离权利要求和本文描述的技术的精神和范围的情况下,可以进行各种修改。
Claims (38)
1.一种用于自动生成可执行应用程序的方法,该可执行应用程序用于将数据进行转换并加载到结构化数据集中,该结构化数据集用于存储来自一个或多个联网数据源的数据,该方法包括:
接收指定参数的值的至少一个元数据文件以及指定用于转换数据馈送的逻辑规则的规则集映射,其中,将从联网数据源接收每个数据馈送,并将结果加载到结构化数据集中;
验证这些参数的值和用于转换这些数据馈送的这些逻辑规则对于每个数据馈送是一致的;
根据这些参数的经验证值和用于将每个数据馈送转换为经转换的记录以便加载到该结构化数据集中的经验证逻辑规则来生成数据规则,这些数据规则指定一个或多个标准;以及
生成用于运行时环境的可执行数据处理应用程序,该可执行数据处理应用程序能配置为:
从一个或多个数据源接收包括数据馈送的源数据;并且
根据所生成的数据规则,将该源数据转换为满足该结构化数据集的该一个或多个标准的经转换数据。
2.如权利要求1所述的方法,其中,该可执行数据处理应用程序包括数据流图、数据流子图或多个数据流图。
3.如权利要求1或2所述的方法,其中,该结构化数据集包括数据库。
4.如前述权利要求中任一项所述的方法,其中,该源数据包括数据记录,并且其中,该元数据文件中的参数指定该数据记录的、表示该源数据的该数据记录的键值的字段。
5.在从属于权利要求4时如权利要求1至3中任一项所述的方法,其中,该元数据文件中的参数指定表示该源数据的键值的字段与该结构化数据集的表示该结构化数据集的另一键值的另一字段之间的映射。
6.在从属于权利要求4时如权利要求1至3中任一项所述的方法,其中,该元数据文件中的参数指定该键值的格式,并且其中,该可执行数据处理应用程序被配置为将该键值转换为具有由该参数指定的格式。
7.如前述权利要求中任一项所述的方法,进一步包括:
从数据存储中检索参数的默认值;以及
基于该参数的默认值定义这些数据规则。
8.如前述权利要求中任一项所述的方法,其中,逻辑规则为该结构化数据集的字段指定格式,该字段包括数据历史值。
9.在从属于权利要求8时如前述权利要求中任一项所述的方法,其中,该数据历史值包括指示包括该数据历史值的该结构化数据集的更新时间的时间戳。
10.如前述权利要求中任一项所述的方法,其中,接收该元数据文件包括:解析该元数据文件的标题行,以确定哪些参数具有该元数据文件中的指定值。
11.如前述权利要求中任一项所述的方法,其中,将该源数据转换为满足该结构化数据集的如由这些数据规则定义的该一个或多个标准的结构化数据包括:
确定该源数据的至少两个不同部分指定相同的键值;以及
为该源数据的这两个不同部分中的至少一个部分指定新的键值,该新的键值不同于这些相同的键值并且基于该结构化数据集的键序列。
12.如前述权利要求中任一项所述的方法,包括检索该至少一个元数据文件未指定的一个或多个附加参数的一个或多个默认值,其中,对这些数据规则的定义是基于该一个或多个附加参数的这些默认值进行的。
13.如前述权利要求中任一项所述的方法,其中,该元数据文件包括一个或多个语义规则,该一个或多个语义规则指定用于解释该经转换的记录的值的标签。
14.如前述权利要求中任一项所述的方法,其中,该元数据文件中的这些参数包括数据质量参数,该数据质量参数指定用于包括在该经转换的记录中的可接受数据值。
15.如前述权利要求中任一项所述的方法,其中,该元数据文件中的这些参数包括数据完整性参数,该数据完整性参数指定用于该经转换的记录的键映射方案。
16.如前述权利要求中任一项所述的方法,其中,该元数据文件中的这些参数包括数据报告参数,该数据报告参数指定将该结构化数据集的该经转换的记录配置为读优化还是写优化。
17.如前述权利要求中任一项所述的方法,其中,验证这些参数的值和用于转换该多个数据馈送的这些逻辑规则对于每个数据馈送是一致的包括:对指定键替代规则的馈送特定元数据和指定数据历史化规则的加载特定元数据进行检查。
18.如前述权利要求中任一项所述的方法,其中,该可执行数据处理应用程序进一步被配置为将该经转换数据加载到该结构化数据集中。
19.如前述权利要求中任一项所述的方法,进一步包括:
由该运行时环境执行该可执行应用程序,该执行包括:
从一个或多个数据源接收包括数据馈送的该源数据;以及
将该源数据转换为满足该一个或多个标准的该经转换数据;
将符合该数据规则的该经转换数据加载到该结构化数据库中。
20.一种用于生成可执行数据处理应用程序的系统,该可执行数据处理应用程序用于将数据进行转换并加载到结构化数据集中,该结构化数据集用于存储来自一个或多个联网数据源的数据,该系统包括:
接口,该接口被配置为接收指定参数的值以及用于转换数据馈送的逻辑规则的至少一个元数据文件,其中,将从联网数据源接收每个数据馈送,并将结果加载到结构化数据集中;
配置器,该配置器被配置为:
验证这些参数的值和用于转换该多个数据馈送的这些逻辑规则对于每个数据馈送是一致的;并且
根据这些参数的经验证值和用于将这些数据馈送中的每个数据馈送转换为经转换的记录以便加载到该结构化数据集中的经验证逻辑规则来生成数据规则,这些数据规则指定一个或多个标准;以及
应用程序生成引擎,该应用程序生成引擎被配置为生成用于运行时环境的可执行数据处理应用程序,该可执行数据处理应用程序能配置为:
从一个或多个数据源接收包括数据馈送的源数据;并且
根据所生成的数据规则,将该源数据转换为满足该结构化数据集的该一个或多个标准的经转换数据。
21.如权利要求20所述的系统,其中,该可执行数据处理应用程序包括数据流图、数据流子图或多个数据流图。
22.如权利要求20或21所述的系统,其中,该结构化数据集包括数据库。
23.如权利要求20至22中任一项所述的系统,其中,该源数据包括数据记录,并且其中,该元数据文件中的参数指定该数据记录的、表示该源数据的该数据记录的键值的字段。
24.在从属于权利要求23时如权利要求20至22中任一项所述的系统,其中,该元数据文件中的这些参数中的参数指定该源数据的表示键值的字段与该结构化数据集的表示该结构化数据集的另一键值的另一字段之间的映射。
25.在从属于权利要求23时如权利要求20至22中任一项所述的系统,其中,该元数据文件中的这些参数中的参数指定该结构化数据集的结构化数据集的该键值的格式,并且其中,该可执行数据处理应用程序被配置为将该键值转换为具有由该参数指定的格式。
26.如权利要求20至25中任一项所述的系统,其中,该配置器进一步被配置为:
从数据存储中检索参数的默认值;并且
基于该参数的默认值定义这些数据规则。
27.如权利要求20至26中任一项所述的系统,其中,逻辑规则为该结构化数据集的字段指定格式,该字段包括历史数据。
28.如权利要求20至27中任一项所述的系统,其中,接收该元数据文件包括:解析该元数据文件的标题行,以确定哪些参数具有该元数据文件中的指定值。
29.如权利要求20至28中任一项所述的系统,其中,将该源数据转换为满足该结构化数据集的如由这些数据规则定义的该一个或多个标准的经转换数据包括:
确定该源数据的至少两个不同部分指定相同的键值;以及
为该源数据的这两个不同部分中的至少一个部分指定新的键值,该新的键值不同于这些相同的键值并且基于该结构化数据集的键序列。
30.如权利要求20至29中任一项所述的系统,包括检索该至少一个元数据文件未指定的一个或多个附加参数的一个或多个默认值,其中,对这些数据规则的定义是基于该一个或多个附加参数的这些默认值进行的。
31.如权利要求20至30中任一项所述的系统,其中,该元数据文件包括一个或多个语义规则,该一个或多个语义规则指定针对该结构化数据集的数据解释。
32.如权利要求20至31中任一项所述的系统,其中,该元数据文件中的这些参数包括数据质量参数,该数据质量参数指定用于包括在该结构化数据集中的可接受数据值。
33.如权利要求20至32中任一项所述的系统,其中,该元数据文件中的这些参数包括数据完整性参数,该数据完整性参数指定用于该结构化数据集的键映射方案。
34.如权利要求20至33中任一项所述的系统,其中,该元数据文件中的这些参数包括数据报告参数,该数据报告参数指定将该结构化数据集的该结构化数据集配置为读优化还是写优化。
35.如权利要求20至34中任一项所述的系统,其中,验证这些参数的值和用于转换该多个数据馈送的这些逻辑规则对于每个数据馈送是一致的包括:对指定键替代规则的馈送特定元数据和指定数据历史化规则的加载特定元数据进行检查。
36.如权利要求20至35中任一项所述的系统,其中,该可执行数据处理应用程序进一步被配置为将该经转换数据加载到该结构化数据集中。
37.如权利要求20至36中任一项所述的系统,进一步包括运行时系统,该运行时系统能配置用于:
由该运行时环境执行该可执行应用程序,该执行包括:
从一个或多个数据源接收包括数据馈送的该源数据;以及
将该源数据转换为满足该一个或多个标准的该经转换数据;
将符合该数据规则的该经转换数据加载到该结构化数据库中。
38.一种或多种存储有可由一个或多个处理器执行的指令的非暂态计算机可读介质,该一个或多个处理器被配置为执行用于生成可执行数据处理应用程序的操作,该可执行数据处理应用程序用于将数据进行转换并加载到结构化数据集中,该结构化数据集用于存储来自一个或多个联网数据源的数据,这些操作包括:
接收指定参数的值以及用于转换数据馈送的逻辑规则的至少一个元数据文件,其中,将从联网数据源接收每个数据馈送,并将结果加载到结构化数据集中;
验证这些参数的值和用于转换该多个数据馈送的这些逻辑规则对于每个数据馈送是一致的;
根据这些参数的经验证值和用于将这些数据馈送中的每个数据馈送转换到结构化数据集中的经验证逻辑规则来生成数据规则,这些数据规则指定一个或多个标准;以及
生成用于运行时环境的可执行数据处理应用程序,该可执行数据处理应用程序能配置为:
从一个或多个数据源接收包括数据馈送的源数据;并且
根据所生成的数据规则,将该源数据转换为满足该结构化数据集的该一个或多个标准的经转换数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862700684P | 2018-07-19 | 2018-07-19 | |
US62/700,684 | 2018-07-19 | ||
PCT/US2019/042669 WO2020018948A1 (en) | 2018-07-19 | 2019-07-19 | Publishing to a data warehouse |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112654977A true CN112654977A (zh) | 2021-04-13 |
Family
ID=67539615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980048334.7A Pending CN112654977A (zh) | 2018-07-19 | 2019-07-19 | 发布到数据仓库 |
Country Status (8)
Country | Link |
---|---|
US (2) | US11893036B2 (zh) |
EP (1) | EP3824398A1 (zh) |
JP (1) | JP7464543B2 (zh) |
CN (1) | CN112654977A (zh) |
AU (1) | AU2019307745B2 (zh) |
CA (1) | CA3106682A1 (zh) |
SG (1) | SG11202012622WA (zh) |
WO (1) | WO2020018948A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114048260A (zh) * | 2022-01-12 | 2022-02-15 | 南湖实验室 | 一种数据湖与关系型数据库互联的方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10878493B2 (en) * | 2016-06-21 | 2020-12-29 | Erland Wittkotter | Sample data extraction |
US10867343B1 (en) * | 2018-08-30 | 2020-12-15 | Morgan Stanley Services Group Inc. | Metadata driven orchestration engine |
US10915302B2 (en) * | 2018-12-11 | 2021-02-09 | The Mathworks, Inc. | Identification and visualization of associations among code generated from a model and sources that affect code generation |
US11061856B2 (en) * | 2019-07-03 | 2021-07-13 | Bank Of America Corporation | Data ingestion system |
US11113254B1 (en) * | 2019-09-30 | 2021-09-07 | Amazon Technologies, Inc. | Scaling record linkage via elimination of highly overlapped blocks |
US11928400B2 (en) * | 2020-05-14 | 2024-03-12 | The Boeing Company | Information management in MBSE modeling tools |
US11620305B2 (en) * | 2021-03-25 | 2023-04-04 | Salesforce.Com, Inc | Ruleset engine for generating homogeneous data sets |
CN114731340A (zh) * | 2021-04-30 | 2022-07-08 | 商汤国际私人有限公司 | 交互信息的处理方法、装置、设备及存储介质 |
US20230039999A1 (en) * | 2021-08-06 | 2023-02-09 | Bank Of America Corporation | System and method for data warehouse storage capacity optimization based on usage frequency of data objects |
US11947559B1 (en) | 2022-10-10 | 2024-04-02 | Bank Of America Corporation | Dynamic schema identification to process incoming data feeds in a database system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000298583A (ja) * | 1999-04-15 | 2000-10-24 | Nec Corp | データ変換処理システム |
WO2006076520A2 (en) * | 2005-01-14 | 2006-07-20 | International Business Machines Corporation | Sharable multi-tenant reference data utility and repository, including value enhancement and on-demand data delivery and methods of operation |
US20080256014A1 (en) * | 2007-04-10 | 2008-10-16 | Joel Gould | Editing and Compiling Business Rules |
CN102902750A (zh) * | 2012-09-20 | 2013-01-30 | 浪潮齐鲁软件产业有限公司 | 一种通用的数据抽取转换方法 |
CN104737163A (zh) * | 2012-10-17 | 2015-06-24 | 起元科技有限公司 | 指定规则并将规则应用于数据 |
US20170006135A1 (en) * | 2015-01-23 | 2017-01-05 | C3, Inc. | Systems, methods, and devices for an enterprise internet-of-things application development platform |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06290100A (ja) | 1993-03-31 | 1994-10-18 | Hitachi Ltd | データベースシステム |
JPH07175791A (ja) | 1993-12-17 | 1995-07-14 | Ricoh Co Ltd | 文書変換装置 |
US5966072A (en) | 1996-07-02 | 1999-10-12 | Ab Initio Software Corporation | Executing computations expressed as graphs |
US6748583B2 (en) | 2000-12-27 | 2004-06-08 | International Business Machines Corporation | Monitoring execution of an hierarchical visual program such as for debugging a message flow |
ATE515746T1 (de) * | 2003-09-15 | 2011-07-15 | Ab Initio Technology Llc | Datenprofilierung |
US20060235714A1 (en) * | 2005-01-14 | 2006-10-19 | Adinolfi Ronald E | Enabling flexible scalable delivery of on demand datasets |
US7716630B2 (en) | 2005-06-27 | 2010-05-11 | Ab Initio Technology Llc | Managing parameters for graph-based computations |
AU2010295547B2 (en) | 2009-09-16 | 2015-05-07 | Ab Initio Technology Llc | Mapping dataset elements |
US10845962B2 (en) | 2009-12-14 | 2020-11-24 | Ab Initio Technology Llc | Specifying user interface elements |
US10671628B2 (en) * | 2010-07-09 | 2020-06-02 | State Street Bank And Trust Company | Systems and methods for data warehousing |
US9400639B2 (en) | 2012-06-22 | 2016-07-26 | Microsoft Technology Licensing, Llc | Generating programs using context-free compositions and probability of determined transformation rules |
US10176234B2 (en) | 2014-11-05 | 2019-01-08 | Ab Initio Technology Llc | Impact analysis |
JP6604086B2 (ja) | 2015-08-18 | 2019-11-13 | 富士通株式会社 | 項目値対応づけ処理方法、項目値対応づけ処理プログラムおよび情報処理装置 |
WO2017189533A1 (en) * | 2016-04-25 | 2017-11-02 | Convida Wireless, Llc | Data stream analytics at service layer |
US11409757B2 (en) * | 2016-08-02 | 2022-08-09 | Hexanika | System and method for collecting, consolidating and processing data |
US11521112B2 (en) * | 2018-03-15 | 2022-12-06 | Georgia Tech Research Corporation | Methods and systems for integrating machine learning/analytics accelerators and relational database systems |
US11003429B1 (en) * | 2019-02-04 | 2021-05-11 | Amazon Technologies, Inc. | Compile-time scheduling |
-
2019
- 2019-07-19 SG SG11202012622WA patent/SG11202012622WA/en unknown
- 2019-07-19 EP EP19749519.5A patent/EP3824398A1/en active Pending
- 2019-07-19 WO PCT/US2019/042669 patent/WO2020018948A1/en active Application Filing
- 2019-07-19 AU AU2019307745A patent/AU2019307745B2/en active Active
- 2019-07-19 US US16/517,320 patent/US11893036B2/en active Active
- 2019-07-19 JP JP2020572555A patent/JP7464543B2/ja active Active
- 2019-07-19 CN CN201980048334.7A patent/CN112654977A/zh active Pending
- 2019-07-19 CA CA3106682A patent/CA3106682A1/en active Pending
-
2023
- 2023-10-23 US US18/492,425 patent/US20240104113A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000298583A (ja) * | 1999-04-15 | 2000-10-24 | Nec Corp | データ変換処理システム |
WO2006076520A2 (en) * | 2005-01-14 | 2006-07-20 | International Business Machines Corporation | Sharable multi-tenant reference data utility and repository, including value enhancement and on-demand data delivery and methods of operation |
US20080256014A1 (en) * | 2007-04-10 | 2008-10-16 | Joel Gould | Editing and Compiling Business Rules |
CN102902750A (zh) * | 2012-09-20 | 2013-01-30 | 浪潮齐鲁软件产业有限公司 | 一种通用的数据抽取转换方法 |
CN104737163A (zh) * | 2012-10-17 | 2015-06-24 | 起元科技有限公司 | 指定规则并将规则应用于数据 |
US20170006135A1 (en) * | 2015-01-23 | 2017-01-05 | C3, Inc. | Systems, methods, and devices for an enterprise internet-of-things application development platform |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114048260A (zh) * | 2022-01-12 | 2022-02-15 | 南湖实验室 | 一种数据湖与关系型数据库互联的方法 |
Also Published As
Publication number | Publication date |
---|---|
CA3106682A1 (en) | 2020-01-23 |
US11893036B2 (en) | 2024-02-06 |
AU2019307745A1 (en) | 2021-01-14 |
SG11202012622WA (en) | 2021-01-28 |
JP7464543B2 (ja) | 2024-04-09 |
JP2021530766A (ja) | 2021-11-11 |
AU2019307745B2 (en) | 2024-04-04 |
US20200026711A1 (en) | 2020-01-23 |
US20240104113A1 (en) | 2024-03-28 |
WO2020018948A1 (en) | 2020-01-23 |
EP3824398A1 (en) | 2021-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11893036B2 (en) | Publishing to a data warehouse | |
AU2023200421B2 (en) | Dataflow graph configuration | |
US10127250B2 (en) | Data transformation system, graphical mapping tool and method for creating a schema map | |
US5418957A (en) | Network data dictionary | |
AU2010337218B2 (en) | Specifying user interface elements | |
US9201558B1 (en) | Data transformation system, graphical mapping tool, and method for creating a schema map | |
US8712965B2 (en) | Dynamic report mapping apparatus to physical data source when creating report definitions for information technology service management reporting for peruse of report definition transparency and reuse | |
US11726969B2 (en) | Matching metastructure for data modeling | |
US9218137B2 (en) | System and method for providing data migration services | |
US20070255751A1 (en) | Method to transform meta object facility specifications into relational data definition language structures and JAVA classes | |
US20080016086A1 (en) | Abstracted dynamic report definition generation for use within information technology infrastructure | |
JP2006244478A (ja) | 構成可能なクエリを形成するapiおよびクエリ言語 | |
US20200311095A1 (en) | System and method for automated source code generation for database conversion | |
US7840603B2 (en) | Method and apparatus for database change management | |
US20190370014A1 (en) | Cloning for object-oriented environment | |
Sachdeva | Practical ELK Stack | |
US20230004477A1 (en) | Providing a pseudo language for manipulating complex variables of an orchestration flow | |
US20220075778A1 (en) | Transforming operations of a computer program for execution at a database |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |