元数据自动化系统的制作方法_4

文档序号:9925317阅读:来源:国知局
模型表500—起被完成,则ETL工具216就可以基于模式定义模型表500和模式定义语言126而被自动地生成。将在下文中关于图8更详细地描述ETL工具216的生成。
[0135]生成ETL步骤710被耦合到填充ODS步骤712。一旦根据模式定义模型表500和模式定义语言126自动地生成了ETL工具216,并且一旦物理表218被创建,则在填充ODS步骤712中利用ETL工具216以从图2的外部源204中提取数据203,将图2的数据203转换为与数据类型410、选择类型508、或者模式定义模型表500的其它列兼容的格式。一旦数据203与模式定义模型表500和模式定义语言126的要求相兼容,则数据203就被加载到运营数据存储206的物理表218中。
[0136]应当理解的是,当在图8、图9、图11、图13、和图15的流程图中引用或使用包括模式定义语言126、模式定义模型400、或者模式定义模型表500在内的元素时,可以预期,其中的一个或者某种组合可以代替或者与命名的元素一起被引用或使用。为了便于描述,模式定义模型表500—般被用作流程图的参照示例。
[0137]现在参照图8,其中示出了根据本发明的实施例的用于生成提取转换加载功能的示例性控制流程800。控制流程800示出了通过引用图1的模式定义语言126来自动地生成图2的ETL工具216的示例性方法。模式定义语言126可以关于包含在图3的元数据表300内的元数据302、图4的模式定义模型400、图5的模式定义模型表500、或者其组合而被引用。如将在下文中被描述的,图2的物理表218可以通过根据元数据302自动地生成的ETL工具216而用图2的数据203来填充。
[0138]一般地,来自图2的外部源204的数据203在最终到达图2的运营数据存储206之前流经非统一的阶段表802以及统一的阶段表804。图2的管理引擎208可以根据模式定义语言126自动地生成非非统一的阶段表802和统一的阶段表804。
[0139]作为不洁的源数据的数据203,在移动到统一的阶段表804中之前必须首先在非统一的阶段表802中被解析和净化。可以提供适配器和API以解析数据203并且踢出未通过语法验证的记录。洁净的数据203可以直接流到统一的阶段表804中。可以在统一的阶段表804中执行表和数据库级的验证。
[0140]将数据从非统一的阶段表802和统一的阶段表804移动至运营数据存储206中的ETL工具216例程可以是自动地生成的。下文中关于步骤806-824更加详细地描述了该过程。
[0141]首先,取回步骤806可以取回作为非统一源数据的数据203。这可以是以平面文件的形式的;然而可以预期,数据可以是任何可用的形式。作为平面文件,数据203可以是文本字符串类型的数据203。源数据可以包括与图4的实体404和模块406相对应的数据203。作为示例,非统一阶段表802中的源数据可以包括病人信息平面文件,其可以与保存实体404和图2的实体类型220的非长度数据的特殊的模块类型相对应。
[0?42] 非统一阶段表802还可以包括与模块406和图2的模块类型224相对应的模块表。作为示例性的示例,非统一的阶段表802可以包括与诊断模块类型224和癌症诊断模块406相对应的癌症诊断平面文件。
[0143]与模块406相对应的非统一阶段表802中的数据203可以包括指向与其关联的实体404的外键。另一方面,与实体404相对应的非统一阶段表802中的数据203可以包括主键(例如,病人ID),作为针对实体404以及特别地创建的模块406的主键,所述模块406仅仅是为了保持针对实体404的非长度数据。
[0144]耦合到取回步骤806的是处理步骤808。处理步骤808可以收集模式定义语言126的元数据302和或将其组织成选择类型统一的阶段表810和选择统一的阶段表812。根据模式定义语言126可用的每个观察到的选择都可以被置于选择类型统一的阶段表810中,并且可以被分配有主键、以及选择类型ID,例如,性别、种族、ICD9等。
[0145]选择一致的阶段表812可以包括选择类型一致的阶段表810的外键以及针对每个可用的选择的主键。选择可以包括男性、女性、高加索人、西班牙裔、亚裔、173.0恶性的…、174.4佩吉特氏…、或者174.6肿瘤。修改的最后日期也可以被包括在选择类型一致的阶段表810和选择一致的阶段表812中。当执行增量加载时,可用的选择可以来自运营数据存储206。
[OH6] 親合到过程步骤808的是一致的加载步骤814。一致的加载步骤814可以包括一致的阶段表804。包含在针对图4的模块406和特性观察408模式定义语言126的元数据302(其被存储在元数据表300、模式定义模型表500、或者模式定义模型400内)内的定义可以用于确定数据应该如何被加载到统一的阶段表804中。例如,元数据302可以要求图4的数据类型410是日期。在这种情况下,当被加载到统一的阶段表804中时,从非统一的阶段表802中所提取的数据203应该是日期格式的。
[0147]包含在非统一阶段表802中的实体404可以被加载到统一的阶段表804中。统一的阶段表804的每一行都可以包括实体404的单个实例。实体404中的每个都被分配了统一的阶段表主键。作为实体的子实体的实体404,将被加载并且被给予到父实体的指针。例如,已经从病人身上取样。样本将被认为是子实体并且具有回到病人的指针。指针可以是病人的统一的阶段表主键。实体404本身而不是非长度数据203,被首先加载到统一的阶段表804中。
[0148]一旦实体404被加载到统一的阶段表804中,与模块406相关联的数据203可以被加载到统一阶段表804中。在统一的加载步骤814中,非统一的阶段表802被打开并被解析。
[0149]当非统一阶段表802的每一行被处理时,统一的加载步骤814将数据203的值转换成目标数据类型410,确保了非空的特性观察408具有特性值,并且验证了对特性观察408的有效约束。当针对特性408的约束被验证时,针对日期和数值的特性观察408的取值范围的约束被验证,针对文本特性观察408的有效的特征和有效的长度被验证,并且对实体404的有效引用被验证。验证对其它模块406的引用的有效性是在第二遍(a second pass)期间执行的。
[0150]在统一的加载步骤814期间的任何错误都使得与模块406中的一个相关联的记录被置于错误表816中。成功被处理的每行将被分配唯一的统一的阶段表主键。统一的阶段表804可以包括指示主键和外键的第一行、指示列的数据类型410的第二行、以及可以指示统一的阶段表804的列名称的第三行。统一的阶段表804对运营数据存储206模式进行镜像,除了引用其它模块406的特性观察408之外。
[0151]继续上文中所描述的平面文件示例,平面文件文本值可以被转换成合适的数据类型410。并且利用统一阶段表主键来代替对实体404的引用。
[0152]当记录未能通过统一的加载步骤814的有效性检查时,记录可以被置于错误表816中。例如,如果包含针对实体404的非长度数据203的记录包括不合适的出生日期,则记录可以被置于错误表816中。此外,当数据与引用错误表816中的实体404的模块相对应时,模块406记录也被置于错误表816内。
[0153]一旦模块406在统一的加载步骤814中被加载到统一的阶段表804中,则可以在更新步骤818中更新模块406之间的引用。耦合到统一的加载步骤814的更新步骤818,通过只包括在所有的模块406被载入加载到统一的阶段表804之后的引用,来确保对模块406的合适的依赖。
[0154]更新步骤818可以在阶段表804内创建针对引用另一个模块406的特性观察408中的每个的两个额外的列。两个额外的列可以包括所引用的模块名称以及所引用的模块外键。作为示例,治疗是指诊断,治疗特性观察408将包括处理诊断和处理诊断外键的额外的列。
[0155]包括所引用的模块外键的列可以包括所引用的模块406的统一的阶段表主键。在该点,引用无效的、丢失的、或者错误表816中的模块406的特性观察408中的任何一个都被删除并且被置于错误表816内。更新步骤818可以包括适配器,以使得安装可以在过程中在该点插入其本身的、定制的验证。
[0156]耦合到更新步骤818的是运营数据存储加载步骤820。在更新步骤818之后,统一的阶段表804包括经验证的数据。运营数据存储加载步骤820针对统一的阶段表804中的每个来生成SQL服务合并声明。运营数据存储加载步骤820可以针对选择类型统一的阶段表810、接着是选择统一的阶段表812、接着是包括实体404的统一的阶段表804、接着是包括实体404非长度数据203的统一的阶段表804、并且最后是针对其它模块406的统一的阶段表804而生成SQL服务合并声明。
[0157]由于统一的阶段表804内的数据203全都被验证,因此只有环境问题可以导致合并失败。环境问题可以包括诸如没有足够的磁盘空间的问题。如果合并失败,则运营数据存储加载步骤820记录错误并且停止。
[0158]耦合到运营数据存储加载步骤820的是删除步骤822。删除步骤822在到运营数据存储206中的增量加载期间应用。在增量加载期间,删除标记被加载到统一的阶段表804和ODS中。删除步骤822验证要删除的记录在运营数据存储206中是否存在。如果要删除的记录在运营数据存储206中不存在,则将记录路由到错误表816。一旦加载完成,则删除步骤822就利用级联来删除具有删除标记的记录以确保引用完整性。
[0159]耦合到删除步骤822的是截断步骤824。如果加载成功,则截断步骤824可以截断所有统一的阶段表804以为后续的增量加载做准备。一旦数据203已经被加载到运营数据存储206中,用户可以使用在下文中关于图9-图15更加详细地描述的图1的商业智能工具134来充分利用和访问数据203。
[0160]现在参考图9,其中示出了根据本发明的实施例的用于过滤队列的示例性控制流900。示例性控制流900可以是关于图1的过滤器128如何对图1的模式定义语言126进行操作的示例性说明。模式定义语言126的元数据302可以从图3的元数据表300、图5的模式定义模型表500、图4的模式定义模型400、或其组合中引用。
[0161]一旦图2的运营数据存储206被填充,在填充ODS步骤712中,图1的商业智能工具134是完全功能的,因为其对模式定义语言126进行操作。当运营数据存储206被填充时,总队列902将是可用的。总队列902可以包括在运营数据存储206内表示的图4的实体404的全部。
[0162]总队列902可以是用于过滤运行数据存储206的开始点。总队列902的实体404可以使用模式定义语言126内的图4的特性观察408中的任何一个而被过滤。模式定义语言126内的特性观察408可以由与特性观察408相关联的图3的元数据302来标识。
[0163]在耦合到填充ODS步骤712的选择特性步骤904中,用户可以选择所选择的特性905 ο所选择的特性905可以是特性观察408中的一个。作为在上文中所使用的健康保健示例的扩展,用户可能想要利用针对乳腺癌的ICD9诊断来确定实体404的病人类别。
[0164]商业智能工具134从模式定义语言126中返回所有特性观察408,例如,有效的ICD9选择。用户可以选择特性观察408中的一个作为所选择的特性905,并且进一步过滤所选择的特性905,例如,选择ICD9特性并且仅针对对应于乳腺癌的ICD9码来对其进行过滤。
[0165]在用户选择了利用其来过滤总队列902的所选择的特性905之后,在查询步骤906中,商业智能工具134可以针对与所选择的实体905相关联的图4的模块406和实体404来查询模式定义语言126。模式定义语言126查询可以返回与模块406、实体404、以及涉及所选择的特性905的其它特性观察408相关的元数据302。此外,与所选择的特性905相关联的模块406和实体404可以在图2的物理数据表218内被标识。商业智能工具134还可以返回与所选择的特性905相关联的图2的实体类型220和模块类型224。
[0166]在模式定义语言126被查询之后,耦合到查询元数据步骤906的关联特性步骤908可以根据模式定义语言126返回与所选择的特性905相关联的模块406和实体404。如果所选择的特性905仅与实体404相关联,则没有模块406与所选择的特性905相关联并且只有实体404被返回。
[0167]利用与所选择的特性905相关联的实体404和模块406的返回,耦合到关联特性步骤908的运算步骤910可以运算当前的队列912以及所有的单跳链接914。当运算步骤910运算当前的队列912时,模式定义语言126可以用于定位与具有所选择的特性905的病人相对应的运营数据存储206的物理表218。
[0168]可以基于模式定义语言126的元数据302来生成查询,以提取与所选择的特性905相关联的实体404的图2的数据203。运算步骤910可以自动地生成SQL指令915以通过对特性观察408、模块406、以及实体404的图6的链接608和物理表602进行定位来查询物理表218并且返回与所选择的特性905相关联的当前队列912。模式定义语言126可以作为可以用于找到针对物理数据表218中的每个的列的元数据表300而被引用,其中,数据203是物理地定位的。
[0169]商业智能工具134可以将当前的队列912返回为与所选择的特性905相关联的多个实体404。运算步骤910还可以运算单跳链接914并且将其作为选择项呈现给用户以用于进一步细化过滤器128。
[0170]单跳链接914可以与所选择的特性905所对应的实体404和模块406相对应的其它未经选择的特性观察408。即,单跳链接914是来自与所选择的特性观察408相关联的相同的模块406和实体404的未经选择的特性。与运算未选择的特性一起,运算步骤910还可以将模块406和实体404返回作为单跳链接914。当与所选择的特性905相关联的模块406和实体404由其它不相关联的模块406或实体404所指向时,这些不相关联的模块406或者实体404可以被返回作为单跳链接914。也就是说,当针对任何特性观察408的图5的目标实体类型512或者图5的目标模块类型514包括指向与所选择的特性905相关联的模块406或者实体404的数据指针时,与具有数据指针的特性观察408相关联的模块406和实体404将被返回作为单跳链接914。
[0171]为了利用基于乳腺癌的过滤的示例来说明单跳链接914的运算,运算步骤910可以运算针对与所选择的特性905(例如,年龄、性别、体重、以及对应于实体404的其他非长度特性观察408)相关联的实体404的单跳链接914。运算步骤910还可以针对与所选择的特性905(例如,诊断的日期、诊断的年龄、基本位点、或者对应于模块406的其它长度特性观察408)相关联的模块406来运算单跳链接。
[0172]运算步骤910还可以返回与所选择的特性905不相关联的其它模块406或实体404的单跳链接914。例如,如果由用户选择的特性观察408包括针对乳
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1