在多个运行时产物中搜索至少一个关系模式的方法和系统的制作方法

文档序号:10655108阅读:235来源:国知局
在多个运行时产物中搜索至少一个关系模式的方法和系统的制作方法
【专利摘要】本发明公开涉及在多个运行时产物中搜索至少一个关系模式的方法和系统。具体地,提供了一种在多个运行时产物中搜索至少一个关系模式的方法。该方法可以包括在多个运行时产物中检测至少一个数据操纵语句。该方法还可以包括从检测到的至少一个数据操纵语句中提取至少一个关系子句。该方法还可以包括解析提取出的至少一个关系子句。该方法可以包括基于解析出的至少一个关系子句生成至少一个规格化的语法树。该方法还可以包括对生成的至少一个规格化的语法树执行分类和片段发现。
【专利说明】
在多个运行时产物中搜索至少一个关系模式的方法和系统
技术领域
[0001]本发明一般而言涉及计算机领域,并且更具体而言涉及大数据平台。
【背景技术】
[0002]大数据描述如此大或者复杂以至于难以利用传统数据处理应用处理的数据集。挑战包括分析、捕获、综合处理(curat1n)、搜索、共享、存储、传送、可视化和信息保密。数据湖是能够存储大数据的并行系统和能够在不移动数据的情况下对数据执行计算的系统。数据湖、数据储存库或企业数据Hub背后的理论是大数据平台将接收、集成或联合源自源的多个数据集,其中的源诸如关系数据库管理系统(RDBMS)、提取-转移-加载(ETL)、数据仓库、记录系统、平面文件(例如,CSV、XML,等等)以及主数据库管理(MDM)。此外,多得多的数据集可以来自多个数据通道,诸如社会媒体、点击流和传感器数据。数据湖不需要位于一个大数据群集上,而是可以跨多个机器和域,只要它作为一个单一的实体被管理就可以。但是,仅仅为了举例,本实施例可以在本文中关于单个大数据平台进行讨论。当数据被定位在那一个平台上时,并且无需将它移动到那个群集之外,可以以许多方式访问和切片所有的数据集。因而,最终用户可以跨这些不同的数据集创建新的分析和查询能力以便获得在原始数据被保存在单独的孤岛中时无法达到的新见解。

【发明内容】

[0003]根据一种实施例,提供了一种在多个运行时产物(runtime artifact)中搜索至少一个关系模式的方法。该方法可以包括在多个运行时产物中检测至少一个数据操纵语句。该方法还可以包括从检测到的至少一个数据操纵语句中提取至少一个关系子句。该方法还可以包括解析提取出的至少一个关系子句。该方法可以包括基于解析出的至少一个关系子句生成至少一个规格化的语法树。该方法还可以包括对生成的至少一个规格化的语法树执行分类和片段发现。
[0004]根据另一实施例中,提供了一种在多个运行时产物中搜索至少一个关系模式的计算机系统。该计算机系统可以包括一个或多个处理器、一个或多个计算机可读存储器、一个或多个计算机可读有形存储设备,以及存储在一个或多个存储设备当中至少一个中的、供一个或多个处理器当中至少一个经由一个或多个存储器当中至少一个执行的程序指令,由此,计算机系统能够执行一种方法。该方法可以包括在多个运行时产物中检测至少一个数据操纵语句。该方法还可以包括从检测到的至少一个数据操纵语句中提取至少一个关系子句。该方法还可以包括解析提取出的至少一个关系子句。该方法可以包括基于解析出的至少一个关系子句生成至少一个规格化的语法树。该方法还可以包括对生成的至少一个规格化的语法树执行分类和片段发现。
[0005]根据还有另一实施例,提供了一种在多个运行时产物中搜索至少一个关系模式的计算机程序产品。该计算机程序产品可以包括一个或多个计算机可读存储设备和存储在一个或多个有形存储设备当中至少一个上的程序指令,程序指令可由处理器执行。该计算机程序产品可以包括在多个运行时产物中检测至少一个数据操纵语句的程序指令。该计算机程序产品还可以包括从检测到的至少一个数据操纵语句中提取至少一个关系子句的程序指令。该计算机程序产品还可以包括解析提取出的至少一个关系子句的程序指令。该计算机程序产品可以包括基于解析出的至少一个关系子句生成至少一个规格化的语法树的程序指令。该计算机程序产品还可以包括对生成的至少一个规格化的语法树执行分类和片段发现的程序指令。
【附图说明】
[0006]本发明的这些和其它目的、特征及优点将从以下对其说明性实施例的详细描述变得显然,实施例要结合附图来阅读。由于图示是为了清晰以便帮助本领域技术人员结合详细描述理解本发明,所以附图的各种特征不是按比例的。在附图中:
[0007]图1示出了根据一种实施例的联网计算机环境;
[0008]图2是根据至少一种实施例、示出由程序执行的步骤的操作流程图,该程序用于利用来自现有应用模式的“数据集连接(dataset join)”元数据自举(bootstrap)数据湖和词汇表;
[0009]图3是根据至少一种实施例、用于利用来自现有应用模式的“数据集连接”元数据自举数据湖和词汇表的系统流程图的示例性图示;
[0010]图4是根据至少一种实施例、将3个SQL查询分解成包括准备用于下游分析的使用情况统计信息的表格格式的示例性图示;及
[0011 ]图5是根据至少一种实施例、图1中所绘出的计算机和服务器的内部和外部组件的框图。
【具体实施方式】
[0012]本文公开了要求保护的结构和方法的详细实施例;但是,可以理解的是,所公开的实施例仅仅是说明可以以各种形式体现的所要求保护的结构和方法。但是,本发明可以体现为许多不同形式并且不应当被认为局限于本文所阐述的示例性实施例。更确切地说,提供这些示例性实施例使得本公开内容将透彻并完整并且将全面地向本领域技术人员传达本发明的范围。在描述当中,众所周知的特征和技术的细节可以被省略,以避免不必要地模糊所给出的实施例。
[0013]本发明的实施例一般而言涉及计算机领域,并且更具体而言涉及大数据平台。除其它的之外,下面描述的示例性实施例提供了利用来自现有应用模式的“数据集连接”元数据自举数据湖和词汇表的系统、方法和程序产品。因此,本实施例有能力通过提供从不同的运行时产物(例如,在2个系统之间发送的SQL报文、包括SQL语句的MQ消息,等等)挖掘关系模式的框架来改进大数据平台的技术领域。更具体而言,本实施例可以通过提供随后可被数据湖或发现工具充分利用的有用关系的自举分类来改进大数据平台。此外,本实施例可以在商业词汇表等同物或元数据储存库中存储结果,在那里用户可以将关系链接到商业级别实体。
[0014]如前所述,大数据平台将接收源自各种源的多个数据集。数据位于那一个平台上,并且无需将其移动到那个群集之外,就可以以许多方式访问并切片所有的数据集。因此,最终用户可以跨这些不同的数据集创建新的分析和查询能力以便获得在原始数据被保存在单独的孤岛中时无法达到的新见解。目前的方法是使用搜索机制通过连接或聚集来找出用户可能想包括在他们的分析中的数据元素(例如,RDBMS列或表、XML元素和属性,或CSV字段,等等)。但是,目前的方法的缺点是它并没有考虑到嵌在许多数据运行时(例如结构化查询语言(SQL)、XQuery、包含在ETL中的SPARQL查询语句、批处理、报告、RDBMS视图、Java或C应用,等等)中的已知的应用模式。这些应用模式(例如SQL谓词或XPath表达式或者ETL存储器内连接结构)作为自举机制来帮助最终用户理解如何准确地连接不同的数据源(并利用现有的应用来证明)将是非常有用的。
[0015]在RDBMS域中已经存在一些发现引用完整性或一些相当复杂的连接变换的工具,诸如IBM InfoSphere Discovery。但是,IBM InfoSphere Discovery主要涵盖通过查看两个表之间的数据分布的(一个或多个)简单键发现,其不关于跨在应用中并且在不同运行时内实现的多个表的复杂连接。这种技术的另一个例子是来自Cisco的Comp ositeDiscovery。但是,Composite Discovery也是基于数据目录和数据分布技术。即使具有Discovery Transformat1n Analyzer(发现变换分析器),这种自动发现的基线也是通过执行列中和跨列的值分析并生成额外的DataMapper表实现的。但是,这没有解决其中值被动态创建的问题,这是由于在数据未被存储在表中时软件不能仅从该数据真正推断变换规贝Ij(例如SUBSTR(X,1,6) I |81*8壮((30&16806(7),5,8),用于创建英国银行帐号)。
[0016]此外,因为变换的原始语义通常不能在最终的数据中被捕获(S卩,非同态关系),常常不可能从最终结果集得出变换规则。但是,来自不同源的数据之间的这些复杂关系(例如,用于RDBMS的JOIN模式(可能需要多于2个表))常常已经被编码在应用、ETL、批处理和报告运行时中。因此,如果如所应当的那样在数据湖中要被连接的数据集需要新的连接,则仍然可以充分利用对数据集之间的关系的现有知识,这是由于这可以利用众所周知的数据集内连接增强数据集间连接。因而,除其它的之外,提供从不同运行时挖掘关系模式并且提供随后可被数据湖或发现工具充分利用的有用关系的自举分类的新框架可能是有利的。
[0017]根据至少一种实现,本实施例可以从应用和运行时挖掘现有的关系模式(或者通过对实时(I i ve)连接的SQL捕获,诸如IBM的Opt im数据库关系分析器,查看脚本、SQL视图或源代码文件),以自举数据湖过程。此外,本实施例可以在商业词汇表等同物中存储结果,在该词汇表等同物中可以将关系链接到商业级别实体(例如,为了从BRANCHES到达CUSTOMER,需要与TRANSACT1NS表连接)。
[0018]因而,本实施例可以通过利用工具作业(tooling)对实时JDBC/0DBC连接使用SQL捕获或直接查看文件或数据库元数据目录中的源代码来从不同的运行时收集所有源数据操纵语句。
[0019]此外,本实施例可以从这些数据操纵语句提取关系子句。然后,该方法可以解析这些子句并建立规格化的语法树(例如去除重复的变量,即,custOmerID = 25005应当被变换为customerID =〈value〉)。接下来,该方法可以执行分类和片断发现;将所有关系归类;提取将多个数据源链接在一起的公共关系部分并利用分析算法群集它们;当没有与此关联的明确术语时,则向信息技术(IT)或商业用户提议关系列表以供在需要时进行验证,因此它们可以被存储在商业或IT词汇表中(商业术语常常可以通过在SQL之前和之后查看评论和批注并且做一些文字分析提取以找出在元数据中存在的记号(表名、概念、商业术语..来找出);以及提供搜索能力来检索数据元素或商业术语或二者之间更有可能的关系以供IT人员或商业用户使用。
[0020]根据本实施例,通过这种能力得出的数据是从实际应用模式得出的,它会比基于来自最终数据集的结果更准确。此外,本实施例可以通过预先提供更加坚实的关系规则集合来补充现有的发现解决方案。
[0021]本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
[0022]计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
[0023]这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0024]用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言-诸如Sma Iltalk、C++等,以及常规的过程式编程语言-诸如“(Γ语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络-包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
[0025]这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0026]这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0027]也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0028]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0029]下面描述的示例性实施例提供了利用来自现有应用模式的“数据集连接”元数据自举数据湖和词汇表的系统、方法和程序产品。因而,本实施例可以从应用和运行时挖掘现有的关系模式,以自举数据湖过程。此外,本实施例可以将结果存储在商业词汇表或元数据存储等同物中,在那里可以将关系链接到商业级别实体。
[0030]根据至少一种实现,本实施例可以从数据源捕获必要的SQL源语句;通过解析该源以提取SQL片段(snippet)来准备数据;提取WHERE和FROM子句;聚集PARSE树并规格化它们(即,变量或常量消除);将树的部分分类并以一种应用这种分析将关系和集合群集到一起的方式发现公共片段。
[0031]参考图1,绘出了根据一种实施例的示例性联网计算机环境100。联网计算机环境100可以包括具有处理器104和数据存储设备106的计算机102,使其能够运行软件程序108以及自举数据湖和词汇表程序116A。联网计算机环境100还可以包括服务器114,使其能够运行可以与数据库112和通信网络110交互的自举数据湖和词汇表程序116B。联网计算机环境100可以包括多个计算机102和服务器114,每种都只示出了一个。通信网络可以包括各种类型的通信网络,诸如广域网(WAN)、局域网(LAN)、电信网络、无线网络、公共交换网络和/或卫星网络。应当认识到的是,图1只提供了一种实现的说明并且不暗示关于不同实施例可以在其中实现的环境的任何限制。基于设计和实现需求,可以对所绘出的环境进行许多修改。
[0032]客户端计算机102可以经由通信网络110与在服务器计算机114上运行的自举数据湖和词汇表程序116B通信。通信网络110可以包括连接,诸如电线、无线通信链路或光纤电缆。如将参考图5讨论的,服务器计算机114可以分别包括内部组件502a和外部组件504a,并且客户端计算机102可以分别包括内部组件502b和外部组件504b。客户计算机102可以是,例如,移动设备、电话、个人数字助理、上网本、膝上型计算机、平板计算机、台式计算机,或者能够运行程序、访问网络和访问数据库112的任何类型的计算设备。根据本实施例的各种实现,自举数据湖和词汇表程序116A、116B可以与可被嵌在各种不同存储设备中的数据库112交互,其中存储设备诸如,但不限于,移动设备102、联网服务器114或云存储服务。
[0033]如前所述,客户端计算机102可以经由通信网络110访问在服务器计算机114上运行的自举数据湖和词汇表程序116B。例如,使用客户端计算机102的用户可以利用自举数据湖和词汇表程序116A、116B来利用来自现有应用模式的“数据集连接”元数据自举数据湖和词汇表。因而,自举数据湖和词汇表程序116A、116B可以从应用和运行时挖掘现有的关系模式,以自举数据湖过程。此外,自举数据湖和词汇表程序116A、116B可以将结果存储在商业词汇表等同物中,诸如数据库112,在那里用户可以将关系链接到商业级别实体。自举数据湖和词汇表方法在下面关于图2-4更详细地解释。
[0034]现在参考图2,绘出了根据至少一种实施例、示出由程序执行的步骤的操作流程图200,该程序用于利用来自现有应用模式的“数据集连接”元数据自举数据湖和词汇表。如前所述,使用客户端计算机102(图1)的用户可以利用自举数据湖和词汇表程序116A、116B(图1)来利用来自现有应用模式的“数据集连接”元数据自举数据湖和词汇表。
[0035]因此,关于图2在202,自举数据湖和词汇表程序116A、116B(图1)将从不同运行时收集所有源数据操纵语句。因而,根据至少一种实现,通过使用利用工具作业,诸如Optim(或等同物),对实时JDBC/0DBC连接的SQL捕获、或者直接查看文件中的源代码或数据库元数据目录,所有源数据操纵,诸如SQL语句,将从不同的运行时(例如,ETL、数据库视图、数据库SQL过程、批处理文件、报告工具元数据、元数据服务器、程序和脚本)被检测和收集。
[0036]然后,在204,自举数据湖和词汇表程序116A、116B(图1)将从操纵语句(S卩,从每个检测到的数据操纵语句)提取关系子句。例如,对于SQL谓词子句,关系子句,诸如(WHERE...)和FROM子句(FROM Tablel ,TABLE2...)可以从数据操纵语句中提取。
[0037]接下来,在206,自举数据湖和词汇表程序116A、116B(图1)将解析提取出的关系子句并建立规格化的语法树。然后,在208,自举数据湖和词汇表程序116A、116B(图1)将进行分类和片段发现。因此,根据至少一种实现,自举数据湖和词汇表程序116A、116B(图1)可以将全部关系进行分类(例如,单向或双向,或映射)、提取将多个数据源链接到一起的公共关系部分,以及利用分析算法,诸如KMeans或其它分析算法,群集提取出的公共关系部分。
[0038]接下来,在210,自举数据湖和词汇表程序116A、116B(图1)将向信息技术(I T)或商业用户提议关系列表以供在需要时(即,低于某个确定性阈值)进行验证,使得它们可以存储在商业或IT词汇表中。根据至少一种实现,关系子句和链接可以被存储在储存库112(图1)中,从而通过类、群集和树链接关系子句。
[0039]然后,在212,自举数据湖和词汇表程序116A、116B(图1)将提供搜索能力来检索数据元素、商业术语或两者之间更有可能的关系。例如,这种搜索可以是,“示出商业术语⑶STOMER和AC⑶UNTS之间的连接谓词”。因此,结果可以是最常用的谓词的排序列表,包括在必要的时候链接这2个表所需的最常见的中间表。如前所述,本实施例可以从实际应用模式得出结果,这会比基于来自最终数据集的结果更准确。此外,本实施例可以通过预先提供更加坚实的关系规则集合来补充现有的发现解决方案。
[0040]可以认识到的是,图2只提供了一种实现的说明并且不暗示关于不同实施例可以如何实现的任何限制。基于设计和实施需求,可以对所绘出的环境作出许多修改。例如,自举数据湖和词汇表程序116A、116B(图1)还可以添加从运行时捕获的SQL语句,诸如Optim,因为这种工具通过监视它们之间的交互捕获从应用传送到数据库服务器的SQL。虽然使用这种能力用于捕获SQL工作负荷并随后对测试数据库重放其可能是常见的,但是根据至少一种实现,本实施例可以在系统运行时充分利用这种SQL工作负荷监视来从运行时捕获需要的所有信息,而没有任何影响并且不需要对源代码或应用的访问。因为许多应用仅仅被部署为二进制文件(例如,第三方,C0TS...),可能并不总是可能通过目前技术来访问所有应用的源代码。但是,根据至少一种实现,本实施例可以捕获源代码对这种信息的访问。
[0041]现在参考图3,绘出了根据至少一种实施例、用于利用来自现有应用模式的“数据集连接”元数据自举数据湖和词汇表的系统流程图的示例性说明300。仅仅为了举例,关于图3使用RDMS ο根据至少一种实现,本实施例可以捕获正确的SQL源语句,从而以一种使得树的部分被分类并且公共的片段被发现的方式准备数据。因而,分析可以被用于将关系和集合群集在一起。
[0042]如前面关于图2详细解释的,在202,数据从源被检测和收集,并且源数据被解析,以提取SQL片段。因而,根据至少一种实现,所有的源数据操纵,诸如SQL语句,可以收集自不同的运行时,诸如批处理脚本302、Java/C程序304、ETL作业306、SQL视图308、报告工具元数据310和元数据服务器312。完成存储器内连接能力的ETL作业(没有任何SQL语句)也可以以同样的方式被提取和使用。
[0043]然后,在204,该方法将从每个检测到的数据操纵语句提取关系子句。例如,该方法可以解析SQL语句并提取WHERE和FROM子句。
[0044]接下来,在206,该方法将聚集PARSE树并规格化它们(即,替换变量和常量以一般化子句)。因此,提取出的关系子句可以被解析,以生成规格化的语法树。
[0045]然后,在208,该方法将对树执行分类并且执行片断发现。因而,提取出的关系子句可以被分组成不同的类并且公共关系子句可以将数据源的组链接在一起。
[0046]然后,在210,该方法将向信息技术(IT)或商业用户316提议关系列表以供在需要时进行验证,使得它们可以存储在商业或IT词汇表314中。
[0047]接下来,在212,该方法将向用户318提供专用于找出连接和匹配表的搜索工具。因此,该方法可以提供搜索能力来检索数据元素、商业术语或两者之间更有可能的关系。
[0048]现在参考图4,绘出了根据一种实施例、将3个SQL查询分解成包括准备用于下游分析的使用情况统计信息的表格格式的示例性说明400。基于先前关于图2和图3所描述的算法,图4示出了用于谓词分类的算法的描述。因而,表400示出了一个(或多个)SQL语句如何可以在分析谓词时被分解成表格格式。因而,SQL语句可以被分解成第一个表+别名列402;第二个表+别名列404;谓词列408;关系类型列406;以及源代码中的出现列410。最后一列410( S卩,源代码中的出现列410)指示特定关系412-416跨源代码出现的频率。按最后一列410排序这个表可以示出在用于2个表之间的连接的被分析代码库中发现的最频繁使用的SQL关系。应用模式的频率表400也可以被突出,在那里查询被重复并且有可能产生数据库视图的好的候选。
[0049]根据本实施例,除了简单的频率分析(基本计数,至多包括tf-1df或等同物的修改后的版本),也可以采用更先进的分析技术来群集或分类在源代码中发现的应用模式。例如,诸如k-means的群集算法可以被用来将类似的应用模式分组在一起。此外,另一个选项可以是向一些现有的应用模式添加标签,诸如“FINANCIAL_EVENTS”、“EMPLOYEE_EVENTS”、“⑶STOMER”,并采用机器学习方法来向看不到的应用模式分配标签。一旦一些手动标签在适当的位置,出现在源代码中的之前看不到的应用模式就可以由机器学习算法(例如,朴素贝叶斯分类器)进行评分并由算法自动分配标签。其它目前的技术,诸如IBM的Informat1nDiscovery(信息发现)和Informat1n Analyzer(信息分析器)只查看数据以及数据的分布如何匹配。这种工具可以推断几个附加谓词,但是,本实施例可以挖掘应用代码来找出相关的谓词。
[0050]图5是根据本发明说明性实施例、图1中所绘出的计算机的内部和外部组件的框图500。应当认识到的是,图5只提供了一种实现的说明并且不暗示关于不同实施例可以在其中实现的环境的任何限制。基于设计和实现需求,可以对所绘出的环境进行许多修改。
[0051]数据处理系统502、504代表能够执行机器可读程序指令的任何电子设备。数据处理系统502、504可以代表智能电话、计算机系统、PDA或其它电子设备。可以由数据处理系统502、504表示的计算系统、环境和/或配置的例子包括,但不限于,个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、网络PC、小型计算机系统,以及包括任何以上系统或设备的分布式云计算环境。
[0052]用户客户端计算机102(图1)和网络服务器114(图1)可以包括图5中所示的内部组件502a、b和外部组件504a、b的各自的集合。内部组件502的每一个集合包括一条或多条总线526上的一个或多个处理器520、一个或多个计算机可读RAM 522和一个或多个计算机可读ROM 524,以及一个或多个操作系统528和一个或多个计算机可读有形存储设备530。一个或多个操作系统528以及软件程序108(图1)和客户端计算机102(图1)中的自举数据湖和词汇表程序116A(图1)和网络服务器114(图1)中的自举数据湖和词汇表程序116B(图1)存储在一个或多个相应的计算机可读有形存储设备530上,用于由一个或多个相应的处理器520经由一个或多个相应的RAM 522(其通常包括高速缓存存储器)执行。在图5所示的实施例中,每个计算机可读有形存储设备530是内部硬盘驱动器的磁盘存储设备。作为替代,每个计算机可读有形存储设备530是半导体存储设备,诸如ROM 524、EPR0M、闪存或者能够存储计算机程序和数字信息的任何其它计算机可读有形存储设备。
[0053]内部组件502a、b的每个集合还包括R/W驱动器或接口532,以便从一个或多个便携式计算机可读有形存储设备538,诸如⑶-R0M、DVD、记忆棒、磁带、磁盘、光盘或半导体存储设备,读或向其写。软件程序,诸如软件程序108(图1)和自举数据湖和词汇表程序116A、116B(图1),可以存储在一个或多个相应的便携式计算机可读有形存储设备538上,经由相应的R/W驱动器或接口 532被读取并加载到相应的硬盘驱动器530。
[0054]内部组件502a、b的每个集合还包括网络适配器或接口536,诸如TCP/IP适配器卡、无线W1-Fi接口卡或者3G或4G无线接口卡或者其它有线或无线通信链路。软件程序108(图1)和客户端计算机102(图1)中的自举数据湖和词汇表程序116A(图1)和网络服务器114(图1)中的自举数据湖和词汇表程序116B(图1)可以经由网络(例如,因特网、局域网或其它、广域网)和相应的网络适配器或接口 536从外部计算机被下载到客户端计算机102(图1)和网络服务器114(图1)。从网络适配器或接口 536,软件程序108(图1)和客户端计算机102(图1)中的自举数据湖和词汇表程序116A(图1)和网络服务器114(图1)中的自举数据湖和词汇表程序116B(图1)被加载到相应的硬盘驱动器530中。网络可以包括铜线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。
[0055]外部组件504a、b的每个集合可以包括计算机显示监视器544、键盘542和计算机鼠标534。外部组件504a、b还可以包括触摸屏、虚拟键盘、触摸垫、定点设备,以及其它人类接口设备。内部组件502a、b的每个集合还包括设备驱动程序540,以便接口到计算机显示监视器544、键盘542和计算机鼠标534。设备驱动器540、R/W驱动器或接口 532以及网络适配器或接口 536包括(存储在存储设备530和/SROM 524中的)硬件和软件。
[0056]本发明各种实施例的描述已经为了说明的目的而给出,但并非是详尽的或者要被限定到所公开的实施例。在不背离所述实施例的范围的情况下,许多修改和变化将对本领域普通技术人员显而易见。本文所使用的术语被选择为能够最好地解释实施例的原理、实践应用或优于市场上发现的技术的技术改进,或者使本领域其他普通技术人员能够理解本文所公开的实施例。
【主权项】
1.一种在多个运行时产物中搜索至少一个关系模式的方法,所述方法包括: 在所述多个运行时产物中检测至少一个数据操纵语句; 从检测到的至少一个数据操纵语句中提取至少一个关系子句; 解析提取出的至少一个关系子句; 基于解析出的至少一个关系子句生成至少一个规格化的语法树;及 对生成的至少一个规格化的语法树执行分类和片段发现。2.如权利要求1所述的方法,还包括: 根据将多个数据源链接到一起的多个链接群集多个公共关系子句;及 存储所述多个公共关系子句和所述多个链接。3.如权利要求2所述的方法,其中所述多个公共关系子句和所述多个链接是根据类、群集或语法树中的至少一个存储的。4.如权利要求2所述的方法,还包括: 向用户提议包括群集的公共关系子句的列表以供验证;及 提供搜索能力以便在多个数据元素、多个商业术语以及多个数据元素和多个商业术语中的至少一个之间检索至少一个可能的关系。5.如权利要求1所述的方法,其中所述多个运行时产物与数据源关联,所述数据源包括ETL、数据库视图、数据库SQL过程、批处理文件、多个报告工具元数据、元数据服务器、程序和脚本中的至少一个。6.如权利要求1所述的方法,其中执行分类包括根据单向分类、双向分类和映射分类中的至少一个将多个公共关系子句分类。7.如权利要求2所述的方法,其中群集多个公共关系子句是利用多种分析算法执行的。8.—种在多个运行时产物中搜索至少一个关系模式的计算机系统,所述计算机系统包括: 一个或多个处理器、一个或多个计算机可读存储器、一个或多个计算机可读有形存储设备,以及存储在所述一个或多个存储设备中的至少一个中以供所述一个或多个处理器中的至少一个经由所述一个或多个存储器中的至少一个执行的程序指令,其中所述计算机系统能够执行包括以下的方法: 在所述多个运行时产物中检测至少一个数据操纵语句; 从检测到的至少一个数据操纵语句中提取至少一个关系子句; 解析提取出的至少一个关系子句; 基于解析出的至少一个关系子句生成至少一个规格化的语法树;及 对生成的至少一个规格化的语法树执行分类和片段发现。9.如权利要求8所述的计算机系统,还包括: 根据将多个数据源链接到一起的多个链接群集多个公共关系子句;及 存储所述多个公共关系子句和所述多个链接。10.如权利要求9所述的计算机系统,其中所述多个公共关系子句和所述多个链接是根据类、群集或语法树中的至少一个存储的。11.如权利要求9所述的计算机系统,还包括: 向用户提议包括群集的公共关系子句的列表以供验证;及 提供搜索能力以便在多个数据元素、多个商业术语以及多个数据元素和多个商业术语中的至少一个之间检索至少一个可能的关系。12.如权利要求8所述的计算机系统,其中所述多个运行时产物与数据源关联,所述数据源包括ETL、数据库视图、数据库SQL过程、批处理文件、多个报告工具元数据、元数据服务器、程序和脚本中的至少一个。13.如权利要求8所述的计算机系统,其中执行分类包括根据单向分类、双向分类和映射分类中的至少一个将多个公共关系子句分类。14.如权利要求9所述的计算机系统,其中群集多个公共关系子句是利用多种分析算法执行的。
【文档编号】G06F17/30GK106021260SQ201610156490
【公开日】2016年10月12日
【申请日】2016年3月18日
【发明人】P·丹特瑞桑格, S·劳斯, A·C·F·李, P·伍德瑞奇
【申请人】国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1