跨异构系统的网络的计算数据沿袭的制作方法

文档序号:18030372发布日期:2019-06-28 22:35阅读:279来源:国知局
本领域涉及一种跨异构系统的网络的计算数据沿袭。
背景技术
::数据沿袭(lineage)信息描述数据的起源和历史。更具体地,数据沿袭信息描述了数据生命周期阶段,包括数据的创建、转换和处理。数据可以以多种方式表示,范围从文件到分析数据集、关键性能指标(kpi)和仪表板。诸如数据建模、数据管理、数据集成等的数据管理任务依赖于数据沿袭信息。随着组织机构越来越多地采用诸如或等大数据基础架构来存储各种类型的数据集(日志、收据、订阅源等),数据沿袭信息对大数据项目也很有价值。这些组织机构还利用作为构建软件信息的开发基础架构,其中原始数据集被变换并组合成聚合数据。通过或数据管道(datapipeline)提供的数据可以加载到商业智能(bi)基础架构中。但是,理解、管理和支配(govern)为大数据项目创建的大量数据变得越来越困难。例如,符合政府法规和数据政策对各个行业变得越来越重要。由于缺乏数据控制构成了多个行业数据基础设施的基础水平,因此审计和遵守数据管理法规变得更加复杂。数据沿袭的两个主要用例是影响和沿袭分析。例如,当开发人员执行维护操作时,需要跨连接系统进行影响分析。更改数据集的组织以满足应用程序的要求或更改描述数据变换的计算规范的定义可能需要了解此类更改可能对相关计算规范和数据集(可能位于所连接的系统)的影响。相反,当访问数据集时,用户可以请求从中生成数据集的原始数据集以及可能跨连接系统应用以生成数据集的连续数据变换链。在这种情况下,需要跨连接的系统的数据集的沿袭分析。因此,构成组织机构的公共数据图景的数据量不断增长,包括企业数据和大数据湖,以及诸如分析师和数据科学家等授权用户访问和准备数据的持续趋势,增加了对跨异构系统连接的网络的沿袭和影响分析的必要性。技术实现要素:根据一个或多个示范性实施例,一种计算机实现的方法包括:生成对应于多个数据对象的多个沿袭图,其中,所述多个数据对象的数据对象处的数据包括在存储在数据沿袭服务器(dls)处的多个源数据集表的源数据集表中,并且其中,所述数据对象表示存储在数据源系统(dss)处的多个数据集的数据集;从所述多个沿袭图中确定对应于数据集的沿袭图;以及基于沿袭图,提供一个或多个数据沿袭结构,其定义所述数据对象与一个或多个数据对象之间的关系,该一个或多个数据对象对应于与所述数据集相关的一个或多个数据集,其中,所述一个或多个数据沿袭结构包括来自所述数据集和来自所述一个或多个数据集的数据。附图说明权利要求具体阐述了实施例。在附图中通过示例的方式示出,而不是限制实施例,其中相同的附图标记表示相似的元件。从以下结合附图的详细描述中可以最好地理解实施例及其优点。图1是示出根据一个实施例的提供数据对象的数据沿袭信息的系统的框图。图2是示出根据一个实施例的提供数据对象的数据沿袭信息的过程的流程图。图3是示出根据一个实施例的从异构系统提取数据沿袭信息的系统的框图。图4a-图4b是示出根据一个实施例的生成属性沿袭图的过程的流程图。图5是示出根据一个实施例的数据集级别(level)沿袭模型的统一建模语言(uml)类图。图6是示出根据一个实施例的属性级别沿袭模型的uml类图。图7是示出根据一个实施例的数据集级别沿袭图的模型的uml类图。图8是示出根据一个实施例的属性级别沿袭图的模型的uml类图。图9是示出根据一个实施例的异构系统的示例性网络的框图。图10是示出根据一个实施例的互连异构沿袭数据的系统的框图。图11是示出根据一个实施例的提供数据对象的沿袭信息的数据结构的框图。图12是根据一个实施例的表示为多个表的示例性数据集。图13示出了根据一个实施例的示例性计算规范。图14示出了根据一个实施例的示例性计算节点图。图15示出了根据一个实施例的示例性数据集级别沿袭图。图16示出了根据一个实施例的示例性属性级别沿袭图。图17是示出根据一个实施例的数据集、源数据集表、中介表、合并数据集表和提取器之间的关系的uml类图。图18是根据一个实施例的示例性计算机系统的框图。具体实施方式本文描述了用于跨异构系统的网络计算数据沿袭的技术的实施例。在以下描述中,阐述了多个具体细节以提供对实施例的透彻理解。然而,相关领域的技术人员将认识到,可以在没有一个或多个具体细节的情况下或者利用其他方法、组件、材料等来实践实施例。在其他情况下,众所周知的结构、材料或操作未详细示出或描述。本说明书中对“一个实施例”、“该实施例”和类似短语的引用意味着结合该实施例描述的特定特征、结构或特性包括在一个或多个实施例中的至少一个中。因此,贯穿本说明书在各个地方出现的这些短语不一定都指同一实施例。此外,特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。数据沿袭服务提供跨异构系统的网络的数据沿袭和数据影响分析。数据沿袭服务在数据沿袭服务器(dls)上运行。数据沿袭服务创建异构数据集的基于表的表示。另外,数据沿袭服务根据定义了数据操纵的统一表示的数据沿袭元数据模型来变换沿袭信息。基于数据沿袭元数据模型,数据沿袭服务将异构计算规范翻译为数据结构。数据沿袭服务提供具有不同粒度的数据沿袭信息,包括数据集级别和属性级别沿袭信息。图1示出了根据一个实施例的提供数据沿袭信息的系统100。系统100包括用户界面(ui)115、数据源系统(dss)105和dls120。dss105是可以存储和操纵数据的系统。数据源系统(dss)的示例包括文件系统、数据库系统、数据存储库等。此外,dss可以向按需计算数据集的系统提供功能,例如经由对所存储的数据运行查询或者经由动态调用操纵数据的程序。dss还包括诸如web服务、分析应用程序、商业智能(bi)平台等的数据平台。可以在由统一资源定位符(url)定义的网络位置处访问dss105。在一个实施例中,dss105包括元数据155和诸如数据集110的多个数据集。数据集110是作为一个单元可以由计算机程序操纵的有组织的个体数据元素(或数据项)的命名集合。数据集的示例包括但不限于具有列和行的表(数据库表)、逗号分隔值(csv)文件、多变量统计中维度(dimension)为“n”乘“p”的数据矩阵,其中“n”是观察到的样本数,“p”是样本中测量的变量(特征)的数量等。此外,数据集可以是包含传感器数据、图形、时间序列、图像、如可扩展标记语言(xml)文件的具有嵌套结构的文件、多维数据立方体等。在一个实施例中,元数据155包括存储在dss105中的多个数据集的元数据。元数据155还包括数据集110的元数据。数据集的元数据包括与数据集相关联的计算规范以及对父数据集和子数据集的引用(reference)。计算规范可以包括来自dss105和/或来自其他dss的父数据集和子数据集。计算规范描述了如何从父数据集计算数据集以及如何从数据集计算子数据集。例如,计算规范可以是数据库过程或脚本程序。在一个实施例中,dls120向诸如ui115的客户端计算机程序提供数据沿袭信息。客户端计算机程序包括但不限于web浏览器、语音浏览器、应用程序客户端和可以是访问、消耗(consume)和显示内容的其他软件。在一个实施例中,ui115在ui设备(未示出)上运行。ui设备可以远程访问dls120。然而,应当理解,ui115可以是在dls120上运行的计算机程序。在一个实施例中,ui115包括一个或多个数据对象,例如数据对象132。提供数据对象132用于由dls120显示到ui115。数据对象132是存储在dls120中的数据对象130的副本。在一个实施例中,dls120包括沿袭计算器125和存储器145。通过数据沿袭计算器125和存储器145,dls120提供计算数据对象的数据沿袭信息的数据沿袭服务。存储器145包括元数据150和诸如源数据集表140的多个源数据集表。源数据集表140是dls120内的数据集110的基于表的表示。源数据集表140引用存储在dss105的数据集110。通过将数据集110翻译(translate)成一个或多个表(例如源数据集表140)来创建源数据集表。在一个实施例中,从dss105提取元数据155并将其作为元数据150存储在存储器145中。存储器145还包括诸如数据对象130的多个数据对象。数据对象130与源数据集表140相关联。数据对象130表示ui115上的源数据集表140。数据对象130可被视为存储在源数据集表140中的数据的代理。即,数据对象130可包括存储在源数据集表140中的数据的一部分。此外,存储器145包括为多个数据对象生成的多个沿袭图。例如,为数据对象130生成沿袭图135。沿袭图135描述对应于数据对象130的数据集110与数据集110的一个或多个父数据集和子数据集之间的沿袭关系。在一个实施例中,沿袭计算器125与存储器145和ui115通信。沿袭计算器125接收提供沿袭信息的请求。例如,沿袭计算器125可以接收提供在ui115上显示的数据对象132的沿袭信息的请求。数据对象132可以以数据集的粒度或者以数据集的属性粒度为单位呈现在ui115上。沿袭计算器125通过基于存储器145的内容计算沿袭信息并生成数据结构来响应请求。例如,沿袭计算器125可以接收提供数据对象132(或者数据对象132的一个或多个属性)的沿袭信息的请求并且在元数据150中搜索与数据对象132相关联的元数据。基于元数据,沿袭计算器确定数据对象132是存储在存储器145处的数据对象130的副本。数据对象132可以基于存储在存储器145处的一个或多个数据对象。可以组合一个或多个数据对象以生成在ui115上呈现的数据对象132。此外,沿袭计算器125确定数据对象130与源数据集表140以及与在dss105处存储的数据集110相关联。在一个实施例中,沿袭计算器125基于沿袭图135和源数据集表140生成数据结构160。响应于提供沿袭信息的请求,创建数据结构160。数据结构160提供数据对象130与存储器145处的一个或多个其他数据对象之间的关系的沿袭信息。数据对象与数据集110的父数据集和子数据集相关联。与数据对象130类似,数据对象可以包括存储在相应的源数据集表中的数据部分。在一个实施例中,沿袭计算器125提供数据结构160用于显示和分析。例如,沿袭计算器125可以在ui115上渲染数据结构160。或者,可以提供数据结构160以在连接到dls120的各种图形用户界面(gui)(未示出)上渲染。图2示出了根据一个实施例的提供数据对象数据的沿袭信息的过程200。在210,生成多个沿袭图。例如,沿袭图在dls处生成。dls连接到多个dss。沿袭图包括用于存储在dss中的数据集的沿袭信息。可以为数据集生成一个或多个沿袭图。例如,可以为同一数据集生成具有数据集级别粒度的沿袭图和具有属性级别粒度的沿袭图。在一个实施例中,dls经由在dls上运行的一个或多个沿袭提取器从dss提取沿袭信息。沿袭提取器配置为连续访问dss并返回数据集的数据和沿袭信息。沿袭提取器可以以拉取模式配置,因此可以访问dss以提取沿袭信息。或者,沿袭信息可以由dss推送到沿袭提取器。沿袭提取器通过与各种凭证的连接来连接到dss。沿袭提取器可以基于由连接的凭证定义的权限来访问dss处的数据和沿袭信息。在220,提供多个数据对象用于渲染。数据对象与数据集相关联。一个或多个数据对象可以与数据集相关联。在从dss提取沿袭信息期间,可以为数据集创建数据对象。在230,在dls处接收提供数据对象的沿袭信息的请求。例如,可以在从用户接收到包括数据对象的选择输入时触发请求。选择输入可以具有数据集级别粒度或具有属性级别粒度。在一个实施例中,dls存储器存储数据对象的元数据。元数据定义数据对象和数据集之间的对应关系。在240,确定数据对象的元数据。数据对象的元数据包括对应的数据集、源数据集表、沿袭图、对应数据集的父数据集和子数据集等。在250,在dls存储器内确定对应于数据对象的数据集。此外,dls存储器可以存储与数据对象相关联的多个其他源数据集表。在260,从生成的沿袭图确定对应于数据对象的沿袭图。由于为数据集生成沿袭图,因此基于与数据对象关联的数据集确定沿袭图对应于数据对象。在一个实施例中,当从dss提取的沿袭信息被加载到dls存储器中时,生成沿袭图。在270,基于数据沿袭图生成数据沿袭结构。数据沿袭结构提供数据对象与关联于父数据集和子数据集的数据对象之间关系的信息。可选地,数据沿袭结构可以用概要信息注释。对于不是表计算节点的沿袭结构的节点,概要信息可以包括节点的属性值如何影响后代节点的属性的值,节点的属性的值如何是受祖先节点的属性值的影响的描述,以及应用于祖先节点的属性和节点属性的计算类型。当计算节点图被加载到dls存储器中时,可以计算摘要信息。此外,数据沿袭结构包括来自对应于数据对象和(多个)数据对象的源数据集表的数据。下面将参照图11描述示例性数据沿袭结构。在280,将数据沿袭结构提供给用户。在一个实施例中,在创建沿袭结构时检查用户权限,并且如果确定用户未被授权从沿袭结构访问一个或多个数据对象,则在提供沿袭结构给用户之前可以模糊一个或多个数据对象。图3示出了根据一个实施例的从异构系统提取数据沿袭信息的系统300。系统300包括dls305。在一个实施例中,dls305类似于上面参照图1描述的dls120。dls305与dss335和/或元数据储存库系统(mds)345通信,并从dss335和mds345提取数据沿袭信息。mds345是提供数据计算服务以产生在另一个系统持久存储的数据集的系统。mds345的示例包括“提取、变换、加载”(etl)系统,“提取、加载、变换”(elt)系统等。mds345可以位于服务器上。mds345从一个数据源系统读取数据集,执行本地变换,在服务器上存储中间和临时计算,并创建要在另一个数据源系统中持久存储的输出数据集。mds345不提供对数据集的访问。但是,mds345包括产生数据集的数据变换规范。可以从mds345提取数据集的计算规范,同时可以从数据源系统访问数据集。在一个实施例中,dls305包括本地数据源提取器315、数据源提取器325和元数据储存库提取器330。本地数据源提取器315从dls305内部的计算规范310中提取沿袭信息。例如,本地数据源提取器315可以从在dls305处运行的互连的查询或其他计算类型中提取沿袭信息。数据源提取器325和元数据储存库提取器330分别周期性地连接到dss335和mds345。数据源提取器325从存储在dss335的数据和计算规范340中提取沿袭信息。元数据储存库提取器迭代地从存储在mds345的计算规范350中提取沿袭信息。在一个实施例中,本地数据源提取器315、数据源提取器325和元数据储存器提取器330被配置为以计算节点图320的形式提取计算规范。例如,提取器可以经由管理工具(未示出)配置。该配置可以识别要访问的数据源和元数据储存库系统以用于提取沿袭信息。另外,提取器的配置可以包括提供凭证用于创建元数据连接,指定数据类型和提取数据沿袭信息需要的计算规范,以及指定时间表以确定要执行的提取的频率。在一个实施例中,计算节点图320是描述数据集和应用于数据集以计算子数据集的变换操作之间的关系的数据结构。计算节点图320包括表示数据集或变换操作的节点,以及互相连接节点的边。提取器基于用于生成计算节点图的统一元数据模型来创建计算节点图320。下面将参照图5和图6详细描述用于创建计算节点图的元数据模型。在一个实施例中,通过数据沿袭加载器355将计算节点图320加载到数据沿袭存储器360中。数据沿袭存储器360存储与数据集相关联的多个沿袭图。另外,数据沿袭存储器360包括用于与数据集相关联的源数据集表的元数据并且存储来自数据集的数据。在一个实施例中,数据沿袭加载器355处理计算节点图320。基于计算节点图320,数据沿袭加载器355创建数据集沿袭图365和属性沿袭图370。数据集沿袭图365是描述数据集级别沿袭关系的数据结构。基于元数据模型创建数据集沿袭图365,下面将参照图7详细描述该元数据模型。属性沿袭图370是描述数据集的属性之间的沿袭关系的数据结构。基于下面参照图8详细描述的元数据模型来创建属性沿袭图370。下面将分别参照图15和图16描述生成数据集沿袭图365和属性沿袭图370的示例。图4a-图4b是示出根据一个实施例的生成属性沿袭图的过程400的流程图。在405(图4a),在dls和dss之间建立远程源连接。例如,可以在图3中的dls305和图3中的dss335之间建立远程源连接。远程源连接基于一组凭证。凭证可以由管理员在dls中预先配置(例如,通过访问dls的管理服务的管理工具)。在一个实施例中,管理员还可以将一组凭证与dls中的用户的角色相关联。该关联可以基于用户的角色和相应的凭证集来定义特定用户可访问的一个或多个连接。基于该关联,可以配置各种附加安全过滤器。管理员可以将凭证分配给建立远程源连接的数据源提取器。例如,图3的数据源提取器325可以建立远程源连接。在410,在dss处访问多个数据集。基于远程源连接的凭证访问数据集。例如,远程源连接的凭证可以限制数据源提取器访问存储在dss的数据集的子集,或者存储在dss的数据集的属性的子集。在访问数据集时,在415,创建多个源数据集表。源数据集表对应于数据集的数量。可以将数据集翻译成一个或多个源数据集表。源数据集表包括数据集的数据。在一个实施例中,dss存储与数据集相关联的计算规范。数据集的计算规范包括应用于数据集的属性的一个或多个语句,以计算子数据集的一个或多个属性。数据集可以与多个计算规范相关联。例如,数据集可以基于第一计算规范由一个或多个父数据集计算,而子数据集可以基于第二计算规范从数据集计算。在420,在dls和dss之间建立元数据连接。可以使用与远程源连接不同的凭证来创建元数据连接。在425,访问计算规范。在一个实施例中,可以通过元数据连接的凭证来限制对计算规范的访问。因此,数据源提取器可以取决于元数据连接的凭证访问一个或多个计算规范。在访问时,在430,在所访问的计算规范内识别出多个变换操作。可以在数据集的一个或多个属性上应用变换操作以生成子数据集的属性。在435(图4b),为计算规范内识别的变换操作生成变换节点。在440,在变换节点中创建属性计算节点。属性计算节点包括在变换操作内定义的至少一个语句。该语句可以应用于数据集的特定属性以生成子数据集的对应属性。在一个实施例中,变换节点包括多个属性计算节点。在445,在属性计算节点与关联于数据集的属性的源数据集表的列之间创建映射。在450,在属性计算节点与关联于子数据集的输出源数据集表的列之间创建映射。在455,生成数据集的计算节点图。在一个实施例中,计算节点图包括表示数据集的输入节点,表示子数据集的输出节点,描述应用于数据集以生成子数据集的变换操作的一个或多个变换节点,以及表示生成的映射的多条边。基于计算节点图,在460,生成属性沿袭图。例如,图3的属性沿袭图370是基于图3的计算节点图320生成的。图5是示出根据一个实施例的数据集级别沿袭模型的uml类图500。uml类图以图形方式表示系统的一个或多个方面的静态视图。例如,uml类图500是图3的系统300的数据集级别沿袭模型的静态视图的图形表示。系统300从异构系统中提取数据集级别沿袭信息。基于数据集级别沿袭模型,系统300可以以计算节点图的形式提取数据沿袭信息,例如图3的计算节点图320。数据集级别沿袭模型定义沿袭数据结构和计算节点图320内的数据结构之间的依赖性。在一个实施例中,数据集级别沿袭模型基于数据集表和计算节点。uml类图500包括数据集表546。数据集表546是与诸如属性548的一组零个或多个属性相关联的数据项的命名集合。属性548由数据集表546中的具有唯一值的属性“name(名称)”550识别。从各种系统提取的计算节点图可以包括表示不同类型的数据集表的节点。数据集表可以是远程数据集表524的类型、源数据集表528或参数538。源数据集表528是数据集520的基于表的表示。数据集520可以由一个或多个源数据集表表示。源数据集表528具有属性“name”530和“type(类型)”532。可以基于属性“name”530的值来识别源数据集表528。基于对应的数据源系统502来定义属性“type”532的值。例如,当图形被视为数据集时,数据集可以由两个表表示,一个表存储节点,而一个表存储边。对于第一个表,属性“type”532的值可以是“graph.nodes”,而对于第二个表,属性“type”532的值可以是“graph.edges”。数据集520是数据源系统502中的数据集。可以从数据源系统502外部查询或访问数据集520的数据。数据集520指定由数据集520的容器514在数据源系统502内识别的运行时对象512、容器内的数据集520的属性“name”516、以及依赖于数据源系统502的类型的属性“objecttype(对象类型)”518。远程数据集表524表示在数据源系统502处定义的远程数据源506中的源数据集表528。远程数据集表524与数据源系统502中的数据集相关联。远程数据集表和数据集之间的关联基于由连接到dss并提取沿袭数据的dls的提取器实现的映射逻辑。源数据集表528可以由零个或一个远程数据集表(例如远程数据集表524)表示。远程数据集表524也可以称为远程数据对象。远程数据集表524由属性“name”526的值、识别dls内的远程数据源506的容器以及从其获得远程数据集表524的源数据集表528的引用来识别。在一个实施例中,远程数据集表524对应于远程数据源506。远程数据源表示在dls和数据源系统502之间建立的远程源连接。远程数据源506是到数据源系统502的远程数据连接。远程数据源506由dls的提取器创建。远程数据源506具有属性“name”510和“credentials(凭证)”508。属性“credentials”508的值定义数据源系统502内dls的提取器可访问的一个或多个数据集。参数538由计算规范534定义。参数538可以是“table”或“scalar”类型。“table”参数具有多个值,并具有一组预定义的属性。“scalar”参数有一个值。“scalar”参数被建模为具有单个属性和单个行的数据集表。参数538具有属性“name”540、“type”542和“mode(模式)”544。属性“mode”544的值指示参数是输入参数还是输出参数。在一个实施例中,参数538是表示可运行对象522的输入或输出参数的数据集表。可运行对象是由运行引擎解释的运行时对象,以从一个或多个数据集产生一个或多个数据集。例如,当数据源系统502是数据库系统时,运行引擎是数据库引擎。可运行对象522由计算规范534定义。计算规范是导出数据集的计算的创作的规范(authoredspecification),其可以直接解释为可运行对象522,或者编译成一个或多个可运行对象522。计算规范534由容器描述,该容器指定数据源系统502(例如,文件夹或包路径)内的计算规范534的位置和容器内的计算规范534的名称。计算规范534具有属性“computationtype(计算类型)”536。属性“computationtype”536的值指定计算规范534的类型。例如,当计算规范534是数据库sql查询或数据库过程时,属性“computationtype”534的值可以分别设置为“数据库sql查询”或“数据库过程”。在一个实施例中,可以从计算规范534提取数据沿袭信息。提取的数据沿袭信息由计算节点552表示。计算节点552描述一组输入数据集和一组输出数据集之间的关系,当由计算规范534定义的可运行对象522运行时,数据项已插入到输出中、更新或从其删除。计算节点552引用(referto)从中提取数据沿袭信息的单个计算规范534。计算规范534可以被称为计算节点552的沿袭所有者。另外,通过编译或解释计算规范534而创建的可运行对象522表示计算节点552的运行。图6是示出根据一个实施例的属性级别沿袭模型的uml类图600。uml类图600以图形方式表示图3的系统300的一个或多个方面的静态视图。在一个实施例中,uml类图600表示系统300的属性级别沿袭模型。根据属性级别沿袭模型,系统300可以以计算节点图形的形式提取属性级别沿袭信息,例如图3的计算节点图320。uml类图600定义了数据结构的属性间的依赖性。uml类图600包括数据集表610。数据集表610可以是远程数据集表616、源数据集表614或参数612。数据集表610由内部数据集表602引用。内部数据集表表示在诸如图5的可运行对象522的可运行对象处理期间创建的中间数据集表。当完成可运行对象的处理时,删除内部数据集表。从相应的计算规范中提取内部数据集表。当从计算规范中提取内部数据集表时,计算规范是内部数据集表的沿袭所有者。例如,可以从图5的计算规范534中提取内部数据集表602。在这种情况下,计算规范534是内部数据集表602的沿袭所有者。内部数据集表602具有属性“internalreference”604。属性“internalreference”604的值识别对应于计算规范534内的内部数据集表602的变量或指令块。在一个实施例中,当图5的计算规范534指定到可运行对象522的调用时,生成绑定参数606。绑定参数606是内部数据集表类型。绑定参数表示可运行对象522的输入/输出参数(例如,参数612),其被绑定到计算规范534的内部变量。在计算节点内为计算规范中发生的调用创建绑定参数。例如,可以在计算节点642内为计算规范534中发生的调用创建绑定参数606。绑定参数具有属性“call_id”608。属性“call_id”608的值唯一地识别对计算规范534内的可运行对象522的调用。在一个实施例中,数据集表610表示图5的数据集表546。数据集表610可以具有零个或多个属性,例如属性632。属性632具有属性“name”634,并且可以经由属性“name”634的值在数据集表610内被识别。数据集表610与计算节点642相关联。计算节点642类似于上面参照图5描述的计算节点552。计算节点642描述了一组输入数据集与已插入、更新或删除数据项的一组输出数据集之间的关系。计算节点642定义一个或多个变换操作,例如变换操作644。变换操作644采用数据集表(例如数据集表610)形式的一个或多个输入数据集。输入数据集表可以包括内部数据集表,例如内部数据集表602。变换操作644具有属性“internalreference”646和“type”648。属性“internalreference”646引用计算规范534,其是变换操作644的沿袭所有者。属性“type”648的值定义由变换操作644产生的零个或多个输出数据集的一种更新模式的类型。例如,输出数据集618包括属性“updatemode(更新模式)”620。属性“updatemode”620的值定义了一种应用于输入数据集以生成输出数据集的变换的类型。在各种实施例中,属性“updatemode”620可具有值“define(定义)”、“replace(替换)”、“update(更新)”、“upsert(打乱)”、“insert(插入)”或“delete(删除)”。当由变换操作644产生的数据项专门定义输出数据集的内容时,将值“define”分配给属性“updatemode”620。当输出数据集的数据项被变换操作644产生的数据项替换时,将值“replace”分配给属性“updatemode”620。当由变换操作644产生的数据项用于更新输出数据集的一些数据项时,将值“update”分配给属性“updatemode”620。当由变换操作644产生的数据项用于更新现有数据项或在输出数据集中插入新数据项时,将值“upsert”分配给属性“updatemode”620。当由变换操作644产生的数据项用于在输出数据集中插入新数据项时,将值“insert”分配给属性“updatemode”620。当从输出数据集中移除由变换操作644产生的数据项时,将值“delete”分配给属性“updatemode”620。另外,变换操作644与诸如表计算650的一个或多个表计算相关联。表计算描述了应用于变换操作644的一个或多个输入数据集表的一组行的基本操作,以计算输出数据集618的一组或多组行。表计算650具有属性“computationformula”652、“type”654和“internalreference(内部引用)”656。属性“computationformula”652的值指定由表计算650执行的操作。例如,当表计算650执行“relationaljoin(关系联接)”操作时,“computationformula”652的值可以指定联接条件。当表计算650将绑定参数数据集与另一数据集绑定时,属性“type”654可以具有值“bind”,或者当没有为表计算650指定输入属性并且输入数据集与这种类型的表计算直接相关时,值“blackbox”。属性“internalreference”656引用在这种情况下是计算规范534的沿袭所有者。在一个实施例中,表计算650的属性“computationformula”652引用至少一个引用的属性626。引用的属性626具有属性“alias(假名)”628和“isleftside”630。属性“alias”628的值指示computationformula”652中的表示属性的变量的名称。属性“isleftside”630指示引用的属性626是“computationformula”652中的运算符的左操作数。分别地,当引用的属性626具有属性“isrightside”(未示出)时,引用的属性626将是运算符的右操作数。当表计算650的一组输入属性未知时,表计算650利用一组输入数据集,例如输入数据集622。输入数据集622包括属性“isleftside”624。在一个实施例中,变换操作644包括属性计算658。属性计算描述如何从一个或多个“inputattributes”的值计算单个属性(称为“outputattributes”)的值。属性计算可以是各种类型。属性计算658的类型由属性计算658的属性“type”662的值定义。当通过应用身份函数到单个输入属性的值生成每个输出属性值时,属性“type”662的值是“identityfunction”。当从“n-ary”标量函数计算每个输出属性值时,属性“type”662的值是“scalarfunction”,其中函数的每个参数是来自输入属性的值。当从在单个输入属性的一组值上应用的聚合函数计算每个输出属性值时,属性“type”662的值是“aggregatefunction”。在一个实施例中,属性“type”662的值进一步定义如下。如果输出属性的值是从输入属性的值的子集计算的,则属性“type”662的值是“restrictedaggregate(受限聚合)”。如果通过应用在单个输入属性的值集合上的窗口函数来计算每个输出属性值,则属性“type”662的值是“窗口函数”。当属性“type”662的值是“setoperation(集合操作)”时,输出属性值集合是根据来自一个或多个输入属性的值集合的集合操作(并集、差异、交集)计算的。当属性“type”662的值是“constant(常数)”时,输出属性被映射到常量值。另外,属性计算658具有属性“computationformula(计算公式)”660和“internalreference”664。在一个实施例中,属性计算658与属性集计算节点668相关联。属性集计算节点668描述如何根据输入数据集的一个或多个属性的值计算输出数据集的一个或多个属性的值。属性集计算节点668可以是“面向行的”计算类型,其中输出数据集的行是基于输入数据集的一组行计算的,或者是“面向集合的”计算类型,其中一行输出数据集是根据输入数据集的一组行或整个输入数据集计算的。图7是示出根据一个实施例的数据集级别沿袭图的模型的uml类图700。数据集级别沿袭图描述数据集之间的沿袭关系。uml类图700以图形方式表示数据集级别沿袭图的模型的静态视图。在一个实施例中,图3的系统300基于计算节点图320并且根据uml类图700所示的模型来构建数据集沿袭图。uml类图700包括数据集节点715和数据集沿袭边705。数据集节点715表示从计算规范中提取的数据集表。数据集沿袭图可包括如数据集节点715的多个数据集节点。多个数据集节点的节点可以是远程数据集表730、源数据集表740、参数750或内部数据集表756。远程数据集表730、源数据集表740、参数750和内部数据集表756表示数据集节点715的不同类型的数据集表。数据集节点715具有属性“id”720。数据集节点715可以基于属性“id”720的值在数据集沿袭图中唯一地识别。远程数据集表730具有属性“remotesourcename(远程源名称)”732和“name”734。在一个实施例中,属性“remotesourcename”732的值指定到数据源系统的远程连接的名称。远程数据集表730表示源数据集表740。源数据集表740可以由零个或多个远程数据集表(诸如远程数据集表730)表示。源数据集表740具有属性“type”745。参数750具有属性“parametername(参数名称)”752和“mode”754。内部数据集表756具有属性“internalreference(内部引用)”758。在一个实施例中,源数据集表740和参数750表示不同类型的运行时对象。因此,源数据集表740和参数750与uml类图700中的运行时对象770相关联。运行时对象770具有对应的容器772和属性“name”774和“type”776。在一个实施例中,从计算规范790中提取内部数据集表756。属性“internalreference”758的值识别对应于计算规范790内的内部数据集表756的变量或指令块。内部数据集表756与绑定参数760相关联。绑定参数760是内部数据集表的类型。绑定参数表示运行时对象770的输入/输出参数(例如,参数750),其被绑定到计算规范790的内部变量。为计算规范790中发生的调用创建绑定参数。绑定参数具有属性“call_id”762。属性“call_id”762的值唯一地识别对计算规范790内的运行时对象770的调用。在一个实施例中,远程数据集表730、源数据集表740、运行时对象770和计算规范790是从主机系统780中提取的。主机系统780可以是数据源系统(dss)或元数据储存库系统(mds)。可以基于属性“url”782的值来访问主机系统780。在一个实施例中,从计算规范790中提取数据集沿袭边705。数据集沿袭边705将起源数据集节点链接到目标数据集节点。基于数据集沿袭边705,可以确定起源数据集表的内容有助于产生目标数据集表的内容。数据集沿袭边705具有属性“id”710。另外,数据集沿袭边705可具有属性“lineageowner(沿袭所有者)”(未示出)以引用(referto)相应的计算规范。在一个实施例中,计算规范790由容器792描述,容器792描述主系统780内的计算规范790的位置(例如,文件夹或包路径)和容器内的计算规范790的名称794。计算规范790可以具有多个属性,包括属性“computationtype(计算类型)”796和“runtimeobjecttype(运行时对象类型)”798。图8是示出根据一个实施例的属性级别沿袭图的模型的uml类图800。属性级别沿袭图描述数据集属性之间的沿袭关系。uml类图800以图形方式表示属性级别沿袭图的模型的静态视图。在一个实施例中,基于计算节点图320并且根据uml类图800所示的模型来构建属性级别沿袭图。uml类图800包括属性沿袭节点814和属性沿袭边802。属性沿袭节点814具有属性“id”816。属性沿袭节点814与多种类型的属性沿袭节点相关联,包括远程数据集属性820、源数据集属性824、参数属性828和内部节点832。在一个实施例中,源数据集属性824是从源数据集表860中提取的。源数据集属性824表示源数据集表860内的列。源数据集属性824对应于从其提取源数据集表860的数据集的组件。例如,源数据集属性824可以具有附加属性,其具有指向数据集的组件的值。源数据集属性824具有属性“name”826。属性“name”826的值在源数据集表860内是唯一的。在一个实施例中,源数据集表860表示图7的源数据集表740。在一个实施例中,远程数据集属性820是从远程数据集表858中提取的。远程数据集属性820表示远程数据集表858中的列。远程数据集属性820具有属性“name”822。远程数据集表858表示图7的远程数据集表730。在一个实施例中,远程源属性820可以是用于多个计算节点的输入,包括属性计算840和表计算848。在一个实施例中,从参数862中提取参数属性828。参数属性828表示参数862表内的列。参数属性828包括属性“name”830。参数862可以由多个计算节点引用。例如,当计算规范指定对拥有参数862的运行时对象864的调用时,参数可以由计算规范引用。在提取的计算节点内创建例如绑定参数870的绑定参数,用于在计算规范中发生的调用。绑定参数870包括属性“call_id”872。因此,绑定参数属性856被创建用于绑定参数870的属性,并且引用绑定参数870的对应属性。在一个实施例中,从计算规范834中提取内部节点832。因此,计算规范834是内部节点832的沿袭所有者。内部节点832表示计算节点。计算节点描述输入数据集和输出数据集之间的关系,当由计算规范定义的可运行对象运行时,已插入、更新或删除数据项到输出数据集。计算节点可以是类型内部属性836、属性计算840或表计算848。根据uml类图800,计算节点可以包括一个或多个计算节点。一个或多个节点的节点可以是内部属性836、属性计算840或表计算848。在一个实施例中,内部属性836具有属性“name”838。内部属性836表示内部数据集的属性838。内部属性836可以被描述为绑定参数属性856的特定情况,其表示绑定参数870的列。在一个实施例中,属性计算840表示从计算规范834提取的内部节点832内的属性或属性集的计算。属性计算840从属性沿袭节点接收输入数据值。可以是属性计算840的输入节点的属性沿袭节点的类型包括远程数据集属性820、源数据集属性824和参数属性828。此外,属性计算节点840可以从“attributecomputation(属性计算)”类型的内部节点接收输入数据。基于所接收的输入数据值,属性计算840计算单个输出属性的标量值/一组标量值(在属性计算的情况下)或当有多个输出属性时(在属性集转换的情况下),标量值的数组/一组标量值的数组。可以通过与属性计算840相关联的一个或多个输出节点来呈现由属性计算840计算的值。可以是属性计算840的输出节点的属性沿袭节点的类型包括远程数据集属性820、源数据集属性824、参数属性828、另一个属性计算节点840和表计算848。属性计算840具有属性“formula(公式)”842、“type”844和“internalreference”846。属性“type”844的值指示如何从输入值生成输出值。除了先前介绍的属性计算的类型(参见图5和图6)之外,“面向行的”类型的属性计算(由属性计算节点计算的标量值的列表是通过来自输入节点的一个标量值获得的)和“面向集合”(由属性计算节点计算的标量值列表是通过来自输入节点的一组标量值获得的)被用于属性集合计算。在一个实施例中,表计算848具有属性“formula”850、“type”852和“internalreference”854。表计算848与从计算规范834中提取的计算节点内的表的计算相关联。用于表计算848的输入节点可以是属性节点(诸如远程数据集属性820、源数据集属性824、参数属性828等)或属性计算节点(诸如属性计算840)。在一个实施例中,表计算848不具有输出节点。在一个实施例中,属性计算840与属性计算840的输入或输出节点之间的关系由属性沿袭边(诸如属性沿袭边802)来描述。此外,属性沿袭边描述了表计算848和表计算848的输入节点之间的关系。在属性沿袭图中,属性沿袭边802将第一节点(例如,源)与第二节点(例如,目标)相连接,该属性沿袭图根据由uml类图800定义的属性沿袭数据模型来表示。属性沿袭边802的起源可以是内部数据集属性节点、远程数据集表属性节点、源数据集表属性节点、参数属性节点或属性计算节点。属性沿袭边802的目标可以是内部数据集属性节点、远程数据集表属性节点、源数据集表属性节点、参数属性节点、属性计算节点或表计算。在一个实施例中,属性沿袭边802具有属性“id”804、“origindomainusage(起源域使用)”806、“alias”808、“updatemode(更新模式)”810和“isleftside”812。属性“origindomainusage”806的值指示有助于目标节点的值域的起源节点的值域。例如,当“origindomainusage”806的值为“full(完全)”时,起源节点的整个值域有助于目标节点的值域。类似地,当“origindomainusage”806的值是“partial(部分)”时,起源节点的值域的子集有助于给目标节点的值域。属性“updatemode”810的值指示起源节点的值对目标节点的值的影响。更新模式类似于在提取的计算节点图中定义的变换操作的更新模式。因此,属性“updatemode”810的值可以是“define”、“replace”、“update”、“upsert”、“insert”和“delete”之一。属性“alias”808的值指示变量名称,其表示对应表计算848的“formula(公式)”850属性的文本内的起源节点。属性“isleftside”812的值指示起源节点所属的数据集是否是用作相应计算公式中运算符的左侧或右侧。图9是示出根据一个实施例的异构系统的示例网络900的框图。网络900包括数据源系统(dss)910、dss920、dss940和元数据储存库系统(mds)930。数据源系统(dss)910、920和940提供对数据集的编程访问和操纵能力。数据集以dss特有的异构格式存储在dss910、920和940中。例如,dss910是一个apache集群。dss910包括数据集s914和s922以及与数据集相关联的计算规范c912、c916和c918。数据集s914是具有半结构化javascript对象表示法(json)格式的hadoop分布式文件系统(hdfs)文件。数据集s922是非结构化hdfs文件的目录。计算规范c912、c916和c922是apache数据管道。dss920和dss940是数据库系统。dss920包括作为关系表的数据集s924、s926、s928、s932和s936,以及作为结构化查询语言(sql)查询的计算规范c934。dss940包括作为关系表的数据集s944、s946、s948、s952和s956,以及作为数据库过程的计算规范954。mds930是etl系统,其从一个系统中提取数据集,对数据集运行各种计算,并将计算存储在另一个系统中。mds930提供对描述计算的计算规范的访问。但是,mds930不提供对数据集的访问。例如,作为etl脚本的计算规范c938和c942存储在mds930中。在一个实施例中,s914和s922是非派生数据集。非派生数据集包括不是从其他数据集计算的“原生”数据。例如,包括传感器数据的数据集是非派生数据集。数据集s922与计算规范c918相关联。计算规范c918应用于数据集s922以生成存储在数据集s920处的数据集s926。数据集926基于计算规范c918从数据集s922导出。类似地,数据集s924基于计算规范c916从数据集s914导出,并且数据集s944基于计算规范c912从数据集s914导出。派生数据集是从一个或多个其他数据集计算的数据集。例如,通过对一个或多个数据集(例如,数据库查询)的查询生成的数据集是派生数据集。此外,读取两个数据集,应用数据变换并生成新数据集作为输出的程序生成派生数据集。可以从来自其他数据源系统的数据集生成数据源系统中的派生数据集。图10是示出根据一个实施例的互连(federate)来自异构系统的沿袭数据的系统1000的框图。系统1000包括dls1050。dls1050类似于图3的dls305。dls1050提供数据沿袭服务。dls1050互连来自异构系统网络的沿袭数据。在一个实施例中,dls1050互连来自图9的网络900的异构沿袭数据,并且dss1010、dss1020、mds1030和dss1040分别表示上面参照图9描述的dss910、dss920、mds930和dss940。在一个实施例中,在dls1050内为dss1020定义远程源rs1058,并且在dls1050内为dss1040定义两个远程源rs1068和rs1080。远程源表示dls1050和dss之间建立的远程源连接。例如,可以在dls1050和dss1020之间建立远程源连接rs1058。rs1058包括一组远程数据集表,表示为具有头部的矩形。远程数据集表与dss1020中的数据集相关联(关联显示为虚线)。远程数据集表和数据集之间的关联基于由dls1050的连接到dss并提取沿袭数据的提取器(未示出)实现的映射逻辑。对于给定的提取器和给定的数据集,此映射是确定性的。由数据集的提取器的映射逻辑返回的数据集表可以称为源数据集表。例如,对于提取器,如果提取器被授权访问数据集s1052的完整表示,则对于使用该提取器创建的远程源rs1068和rs1080两者,dss1040中的数据集s1052到一个或多个数据集表的映射将是相同的。在一个实施例中,远程源使用不同的凭证来定义(例如,由管理员配置)。因此,如果用于rs1068或rs1080的连接提供对s1052的表示的不同受限访问,则提取器可以返回不同的源数据集表。因此,映射可以返回利用rs1068一个表和利用rs1080的两个表,或者可以为rs1068和rs1080返回相同的表,但是rs1068可能缺少某些属性。例如,可以在数据集属性的级别上定义远程源中的安全性。这样,可以允许两个不同的用户访问一个数据集的不同属性。然而,由提取器的映射逻辑通过定义的连接返回的源数据集表可以在dls1050处合并,而不管提取器利用的连接的不同凭证。这样,可以在dls1050处获得s1052到一组数据集表的映射的联合(consolidating)表示。联合的表示可以被称为合并的源数据集表。在一个实施例中,对于给定连接和数据集,dls1050接收一组源数据集表和一组远程数据集表(远程数据对象)两者,远程数据对象是源数据集表的“代理”。远程数据对象可以包括存储在相应的源数据集表中的数据部分。或者,远程数据对象可以完全表示相应源数据集表中的数据。例如,对于s1052,dls1050可以从rs1068接收远程数据对象(rdo)1072和对应的源数据集表(未示出)。此外,对于s1052,dls1050可以从rs1080接收rdo1082和相应源数据集表(未示出)。源数据集表被合并而远程数据对象不合并。因此,当使用不同凭证定义rs1068和rs1080时,rdo1071和rdo1082(以及对应的源数据集表)可以包括来自s1052的数据的不同部分。当对应于rdo1072和rdo1082的源数据集表合并时,可以在dls1050处创建用于s1052的合并源数据集表。合并的源数据集表联合可通过用不同凭证定义的连接rs1068和rs1080可访问的s1052的数据。在这种情况下,rdo1072和rdo1082是对应的合并源数据集表中的数据的“代理”,因为rdo1072和rdo1082包括合并的源数据集表(未示出)内的数据的部分。在一个实施例中,数据集s1024和s1026在rs1058中不可见。即,数据集s1024和s1026的数据和计算规范不能基于rs1058的凭证来访问,因此,数据集s1024和s1026的数据和计算规范不是通过rs1058提取的。类似地,基于rs1080的凭证,s1044,s1046和s1048不可访问(因此不可见)。但是,数据集s1046和s1048都可以从rs1068访问(和可见)。在一个实施例中,dls1050的用户被授权访问rs1058和rs1080。当用户请求具有面向数据的视图的rdo1066的沿袭时,自动生成沿袭图。沿袭图依赖于两个因素:(1)用户可访问的远程数据集表,以及(2)由数据沿袭服务管理的数据沿袭存储器的内容。关于第一因素,用户可能能够看到rdo1066对rdo1062和rdo1064的依赖性,因为这些是影响rdo。关于第二因素,提取器通过元数据连接访问dss1020内的沿袭信息。基于元数据连接的凭证,提取器访问dss1020中的数据或计算规范。当提取器具有访问计算规范c1036的足够权限时,提取器可以返回(1)基于映射逻辑的数据集s1024和s1026到源数据集表的映射,以及(2)s1034相对于返回的源数据集表的数据沿袭信息。图11是示出根据一个实施例的提供数据对象的沿袭信息的数据结构1100的框图。在示例性场景中,用户具有访问rs1058和rs1068的权限。用户请求图10的rdo1074的具有面向数据的视图的数据沿袭信息。假设dls1050的数据沿袭提取器(未示出)具有访问计算图10的计算规范c1054的元数据连接,在提取期间,为数据集s1044、s1046,s1048和s1052创建源数据集表,并且在rdo1074和创建的源数据集表之间创建沿袭关系。如上所述,将通过合并从rs1068的连接获得的表示和由相同提取器创建的元数据连接来创建合并的源数据集表。类似地,假设系统mds1030的数据沿袭提取器被授权访问计算规范c1038和c1042。在提取期间,为数据集s1028、s1032、s1046和s1048以及沿袭关系创建源数据集表,并且在创建的源数据集表之间创建沿袭关系。在一个实施例中,用于mds1030的提取器的映射逻辑和用于rs1068的提取器的映射逻辑是不同的。因此,由提取器为给定数据集返回的源数据集表(例如,s1046)是不同的。基于源数据集表的属性具有的对数据集的对应组件的引用,创建提取器返回的源数据集表的属性之间的沿袭关系。在将提取的数据沿袭加载到数据沿袭存储器期间创建沿袭关系。类似地,可以在由mds1030的提取器和rs1058的提取器为数据集s1028和s1032返回的源数据集表之间创建沿袭关系。沿袭关系定义rdo1074与rdo1062和rdo1064之间的数据沿袭依赖性。数据沿袭依赖性通过源数据集表。在一个实施例中,检查授予用户的权限以确定用户是否被授权从各种远程数据源访问rdo。当确定用户被授权访问rs1058和rs1068时,rdo1074的沿袭信息将如数据结构1100所示。在一个实施例中,数据结构1100包括rdo1110和rdo1120。rdo1110表示rdo1062,rdo1120表示图10的rdo1064。rdo1110和1120分别与rdo1140和rdo1150相关联。基于该关联,用户可以确定rdo1140是从rdo1110导出的,并且rdo1150是从rdo1120导出的。在一个实施例中,rdo1140和1150与rdo1170相关联。rdo1170表示图10的rdo1074。基于这些关联,可以确定rdo1170是从rdo1140、rdo1150、rdo1160和info1130导出的。基于用户访问rs1058和rs1068的权限,包括在rs1058或rs1068中的rdo可以向用户呈现。然而,用户请求沿袭信息的rdo1074最初源自四个数据集,包括数据集s1052(图10)。rdo1082与数据集s1052相关联并且包括在rs1080中。由于用户未被授权访问rs1080,因此rdo1082从生成的数据结构1100进行模糊处理并且被节点info1130替换以指示rdo1170总共来自四个rdo。在一个实施例中,可以用概要信息来注释为rdo1170提供沿袭信息的数据沿袭结构1100。对于不是表计算节点的数据沿袭结构1100的节点,概要信息可以包括节点的属性值如何影响后代节点的属性值,节点属性值如何受祖先节点的属性值的影响的描述,以及应用于祖先节点的属性和节点属性的计算类型。例如,节点rdo1140的概要信息可以包括rdo1140的属性值如何受节点rdo1110和rdo1120的属性值影响,rdo1140的属性值如何影响节点rdo1170的属性的值的描述,以及应用在rdo1110和rdo1120的属性上以计算rdo1140的属性的计算类型,和应用在rdo1140的属性上以计算rdo1170的属性的计算类型。当对应于rdo1170的计算节点图被加载到dls存储器中时,预先计算概要信息。当沿袭数据结构1100被提供用于在诸如图1的ui115的ui处呈现时,容易地提供概要信息。在各种实施例中,摘要信息可以附加到rdo1140,当ui上的指针在rdo1140上滚动时可以是可见的,或者可以在从ui接收选择输入时显示。在一个实施例中,基于一个或多个预定义规则来计算摘要信息。一个或多个规则可以包括用于计算影响域值、计算类型和受影响的域值的规则。例如,计算影响域值的规则可以是:“如果存在从rdo1110到rdo1140的一条路径,其包括具有值为“full”的属性“origindomainusage”(即,图8的“origindomainusage”806)的边,则“impactingdomainvalues”(rdo1110,rdo1140)=“full”;否则“impactingdomainvalues”(rdo1110,rdo1140)+“partial”。此外,计算计算类型的规则的示例包括(假设从rdo1110到rdo1140的路径遍历(traverse)计算类型“setdifference(集合差)”,其是左非交换二元运算符(未示出)):规则1-“如果alg.paths(rdo1110,rdo1140)的每个路径在其右侧(resp.left)至少遍历一个左(resp.right)非交换二元属性计算操作或者类型“constant”的属性计算,则computation_type(rdo1110,rdo1140)=none”;规则2“-如果alg.inter_nodes(rdo1110,rdo1140)包括类型identity的属性计算节点,或集合操作(并、差、交),则computing_type(rdo1110,rdo1140)=identity”;规则3-“如果alg.inter_nodes(rdo1110,rdo1140)包括类型identity的属性计算节点或集合操作,并且至少一个类型为scalar的节点,则computation_type(rdo1110,rdo1140)=scalar”;规则4-“如果以下条件为真:1.“alg.inter_nodes(rdo1110,rdo1140)包括identity或集合操作或aggregate或window或restricted_aggregate或scalar类型的属性计算节点”;2.“alg.paths(rdo1110,rdo1140)的每个路径遍历至少一个类型为aggregate或window或restricted_aggregate的属性计算节点”;3.“对于alginter_nodes(rdo1110,rdo1140)中类型为aggregate或window或restricted_aggregate的每个节点,alg.inter_nodes(节点类型aggregate,rdo1140)不包含任何类型为scalar的属性计算节点,则computation_type(rdo1110,rdo1140)=scalar_agg”;规则5-“如果以下条件为真:1.“alg.inter_nodes(rdo1110,rdo1140)包括identity类型或集合操作或aggregate或window或restricted_aggregate或scalar的属性计算节点”;2.“alg.paths(rdo1110,rdo1140)的每个路径遍历至少一个类型为aggregate或window或restricted_aggregate的属性计算节点”;3.“对于alginter_nodes(rdo1110,rdo1140)中scalar类型的每个节点,alg.inter_nodes(scalar类型的节点,rdo1140)不包含任何类型为aggregate、window或restricted_aggregate的属性计算节点”,则computing_type(rdo1110,rdo1140)=agg_scalar”;第6条-“如果下列条件为真:1.“alg.inter_nodes(rdo1110,rdo1140)包括identity或集合操作或aggregate或window,或restricted_aggregate类型的属性计算节点”;2.“alg.paths(rdo1110,rdo1140)的每个路径遍历至少一个具有类型aggregate或window或restricted_aggregate的属性计算节点”,则calculation_type(rdo1110,rdo1140)=agg“;规则7:其他情况下“calculate_type(rdo1110,rdo1140)=complex”。可以按顺序应用规则(应用第一个匹配的规则)来计算计算类型。此外,用于计算受影响的域值的规则的示例可以包括:规则1-“如果在alg.paths(rdo1110,rdo1140)中存在一个路径,其包括具有值“define”的属性“updatemode”(即,图8的属性“updatemode”810,)并且对于路径的每个属性沿袭节点,以下条件之一为真:1.“alg.in_edges_notcoming(路径的沿袭节点,rdo1110)为空”;2.“路径的沿袭节点是scalar类型”;3.“路径的沿袭节点是intersect类型”;4.“路径的沿袭节点是左非交换二元运算符以及alg.in_edges_notcoming(路径的沿袭节点,rdo1110)包括具有路径的沿袭节点的右参数的边”,则impacteddomainvalues(rdo1110),rdo1140)=full”;规则2-“如果在alg.paths(rdo1110,rdo1140)中存在这样一条路径,路径包括具有('define','replace')中的updatemode的边,并且路径包括至少一条具有更新模式='replace'的边并且对于路径中的每个节点,下列条件之一为真:1.“节点是类型union的属性计算节点并且alg.in_edges_notcoming(节点,rdo1110)为空”;2.“节点是scalar类型的属性计算节点”;3.“节点是intersect类型的属性计算节点”;4.“节点是表示左非交换二元运算符的属性计算节点,并且alg.in_edges_notcoming(节点,rdo1110)包含具有节点的右参数的边”;5.“节点是属性节点,并且两个条件都为真:a.“alg.in_edges_coming(节点,rdo1110)包括具有'replace'更新模式的边”,并且,b.“以下条件之一为真:i.“alg.in_edges_notcoming(节点,rdo1110)为空”,ii.“对于alg.in_edges_notcoming(节点,rdo1110)中的每条边,updatemode='replace',并且规则1或规则2应用于rdo1110和起源边”,则impacteddomainvalues(rdo1110,rdo1140)='full_or_nothing';规则3:-“在其他情况下,impacteddomainvalues(rdo1110,rdo1140)='partial'”。在一个实施例中,可以基于传播算法利用计算的概要信息来注释属性级别分析视图。传播算法可以从属性节点开始,前向遍历数据沿袭结构1100并在后代节点和边上应用传播函数。因此,可以用包括“impactingdomainvalues”、“computationtype”和“impacteddomainvalues”的概要信息来注释不是表计算节点的数据沿袭结构1100的每个节点。传播功能可以包括映射(map)、减少(reduce)和过滤(filter)功能等。传播函数可以符合计算概要信息的规则。传播函数可以用各种编程语言并根据各种编程技术编写。可以根据各种策略来注释属性级别影响分析视图。例如,可以基于以下策略之一在属性级别影响分析视图上应用传播函数:(1)遵循拓扑顺序以将传播的数量限制为图形的大小或(2)以任何顺序应用函数直到达到一个固定点(并行运行)。在示例性实施例中,应用以下传播函数来计算概要信息以注释属性级别影响分析视图:基本功能符号:在下文中,map、reduce和filter函数定义如下。map(x,f)有两个参数:x是对象列表,f是一元函数。它返回一个如下计算的集合:varres=[];for(vari=0;i<x.length;i++){res.append(f(x[i])}returnres;reduce(x,f)有两个参数:x是对象列表,f是二元函数。它返回如下计算的单个值:varres=x[0];for(vari=0;i<x.length;i++){res=f(res,x[i])}返回res;filter(x,f)有两个参数:x是对象列表,f是布尔一元函数。它返回如下计算的集合:varres=[];for(vari=0;i<x.length;i++){if(f(x[i])thenres.append(x[i]);}returnres;lambda-符号用于传递函数作为map、reduce或filter的参数。例如,如果f是二元函数,则使用符号:(x,y)=>f(x,y)将其作为参数传递。影响域值的传播函数:令fg为完整的沿袭图,并且令g为表示属性a的影响分析视图的fg的子图。通过在a的每个后代边和节点上应用以下函数来计算影响域值的注释。注意:n.impactingdomainvalues是impactingdomainvalues(a,n)的值。初始化:a.impactingdomainvalues=full边上的传播:令“e”为g.desc_edges(a)中的属性沿袭边,其中目标节点不是表计算,则:e.impactingdomainvalues=du_edge(e.origin.impactingdomainvalues,e.origindomainusage)其中du_edge(x,y)使用下面的表1定义(x参数是垂直的):du_edgefullpartialfullfullpartialpartialpartialpartial表1节点上的传播:令n是可从a到达的表计算节点以外的节点则://如果来自a的至少一个入边为full,则impactingdomainvalues(a,n)为full。通过//影响分析视图的定义,每个n的入边是a的后代边。n.impactingdomainvalues=reduce(g.in_edges(n),(e1,e2)=>merge_ing(e1.impactingdomainvalues,e2.impactingdomainvalues))其中merge_ing(x,y)使用下面的表2定义(x参数是垂直的):du_edgefullpartialfullfullfullpartialfullpartial表2计算类型的传播函数:令g为属性a的影响分析视图的图。通过在a的每个后代边和节点上应用以下函数来获得计算类型的注释。注意:n.computationtype是computationtype(a,n)的值。初始化:a.computationtype=identity边上的传播:令“e”为g.desc_edges(a)中的属性沿袭边,其中目标节点不是表计算,则:e.computationtype=e.origin.computationtype节点上的传播:令n为左非交换二元属性计算节点,则://当e.isleftside属性为true时,函数isleftside(e)为true,否则为false。//当n的左参数不是a的后代节点时,calculatetype(a,n)为'none'。n.computationtype=casethen‘none’elsefilter(g.in_edges(n),e=>isleftside(e))[0].computationtypeend令n为union、intersection或identity类型的属性计算节点,然后:其中x和y的值不是'complex'时,merge_c(x,y)在表3中定义如下,并且当x或y具有值'complex'时等于'complex':表3令n是aggregate、window或restrictedaggregate类型的属性计算节点,然后:其中m2agg(x)在表4中定义如下:m2aggnonenoneidentityaggscalarscalar_aggaggaggagg_scalarcomplexscalar_aggscalar_aggcomplexcomplex表4令n为scalar类型的属性计算节点,则:n.computationtype=//考虑了作为a的后代边的n的入边。计算分两步完成:reduce(map(g.in_edges(n),//1.如果可能,每个入边的计算类型将映射到类似标量的类型e=>m2scalar(e.computationtype)),//2.入边的计算类型被合并(e1,e2)=>merge_c(e1.computationtype,e2.computationtype))其中m2scalar(x)在表5中定义如下,merge_c如前所述:m2scalarnonenoneidentityscalarscalarscalaraggagg_scalaragg_scalaragg_scalarscalar_aggcomplexcomplexcomplex表5令n为源数据集表、远程数据集表或参数的属性节点,则:n.computationtype=reduce(g.in_edges(n),(e1,e2)=>merge_c(e1.computationtype,e2.computationtype)对于除了属性表计算节点的其他类型的节点:n.computationtype=complex受影响的域值的传播函数令fg为完整的沿袭图,并且令g是表示属性a的影响分析视图的fg的子图。通过对每个a的后代边和节点应用以下函数来计算节点n的受影响的域值的注释impacteddomainvalues(a,n)。注意:n.impacteddomainvalues是impacteddomainvalues(a,n)的值。初始化:a.impacteddomainvalues=full边上的传播:令“e”是属性沿袭边,其中目标节点不是表计算,则://依赖于a值的e.origin值的比例传播到//具有受属性沿袭边更新模式影响的效果的e.destinatione.impacteddomainvalues=um_edge(e.origin.impacteddomainvalues,e.updatemode)其中um_edge(x,y)在表6中定义如下:um_edgedefine/replaceupdate/upsert/append/deletefullfullpartialpartialpartialpartialfull_or_nothingfull_or_nothingpartial表6节点上的传播:令n为源数据集表、远程数据集表或参数的属性节点,则:u_effect计算并发更新模式对边的impacteddomainvalues的影响。根据定义,请注意不能存在具有“define”更新模式的并发边。u_effect在表7中定义如下:um_effectdefine/replaceupdate/upsert/append/deletefullfull_or_nothingpartialpartialpartialpartialfull_or_nothingfull_or_nothingpartial表7merge_att计算两个并发边的impacteddomainvalues的合并值。merge_att在表8中定义如下:merge_attfullpartialfull_or_nothingfullfullfullfullpartialfullpartialpartialfull_or_nothingfullpartialfull_or_nothing表8令n为union类型的属性计算节点,则:其中merge_union通过两个并发运行路径计算具有有助于union的属性a的影响。merge_union在表9中定义如下:merge_unionfullpartialfull_or_nothingfullfullpartialpartialpartialpartialpartialpartialfull_or_nothingpartialpartialpartial表9令n为intersection类型的属性计算节点,则:其中merge_inter在表10中定义如下。具有值'full'的单个边足以得到结果'full'值。merge_interfullpartialfull_or_nothingfullfullfullfullpartialfullpartialpartialfull_or_nothingfullpartialfull_or_nothing表10令n为左非交换二元属性计算节点,则:令n是既不是左非交换二元属性计算节点,也不是并,也不是交叉节点的计算节点,则:其中merge_other计算两个并发输入参数的impacteddomainvalues的合并。如果某些输入参数的值依赖于a的值,则属性计算节点的结果依赖于a的值。mergeother在表11中定义如下:merge_otherfullpartialfull_or_nothingfullfullfullfullpartialfullpartialpartialfull_or_nothingfullpartialfull_or_nothing表11图12示出了根据一个实施例的表示为多个数据集表的示例性数据集。图12包括xml文件1210、数据集表store1220和数据集表sale1240。数据集表store1220和数据集表sale1240是xml文件1210的部分的表表示。在一个实施例中,数据集表引用数据集的特定组件。数据集的组件包括xml文件1210的元素集。例如,数据集表store1220引用元素“/sales/store”,数据集表sale1240引用元素“/sales/store/sales”。类似地,数据集表的列引用数据集的特定组件(例如,xml文件1210的元素的属性)。例如,数据集表store1220和sale1240的列“storeref”1222和1242分别引用xml文件1210的属性“/sales/store@storeref”。另外,数据集表store1220的列“storename”1224、“storetype”1226、“state”1228、“zip”1230、“city”1232和“country”1234引用xml文件1210的属性“/sales/store@storename”、“/sales/store@storetype”、“/sales/store@state”、“/sales/store@zip”、“/sales/store@city”,、和“/sales/store@country”。此外,数据集表“sale”1240的列“unitprice”1244、“productreference”1246、“date”1248和“quantity”1252引用xmlfile1210的属性“/sales/store/sales@unitprice”,、“/sales/store/sales@productreference”、“/sales/store/sales@date”、和“/sales/store/sales@quantity”。图13示出了根据一个实施例的示例性计算规范1300。可以由图3的数据源提取器325从dss335提取示例性计算规范1300。示例性计算规范1300是sql查询。数据源提取器325可以以计算节点图(例如,图3的计算节点图320)的形式从sql查询1300提取数据沿袭信息。为了提取计算节点图320,数据源提取器325将计算规范1300的输入和输出数据集翻译为源数据集表(例如,如上参照图12所述)。当输入和输出数据集被翻译成源数据集表时,数据源提取器325在示例性计算规范1300中为“select”语句生成变换节点。变换节点定义输入和输出源数据集表之间的映射。当生成变换节点时,分析“select”语句的内容以定义要包括在变换节点内的属性或表计算的类型。图14示出了根据一个实施例的示例性计算节点图1400。基于图13的示例性计算规范1300,并且根据图6的uml类图600所示的属性级别沿袭模型生成示例性计算节点图1400。示例性计算节点图1400是描述数据集与应用于数据集以计算子数据集的变换操作之间的关系的数据结构。示例性计算节点图1400包括表示数据集(或与数据集相关联的数据集表)和变换操作的节点,以及互相连接节点的边。可以从计算规范或数据集元数据中提取计算节点图。在一个实施例中,示例性计算节点图1400描述具有属性级别粒度的数据集之间的关系。示例性计算节点图1400包括数据集表(dt)1402、dt1404、dt1406和dt1408,它们是用于图13的计算规范1300的输入数据集表。例如,dt1402是对应于数据集“s20”的源数据集表,其在示例性计算规范1300中被指定为输入数据集。类似地,dt1404是对应于数据集“s4”的源数据集表,dt1406是对应于数据集“s10”的源数据集表,dt1408是对应于数据集“s3”的源数据集表,其在示例性计算规范1300中被指定为输入数据集。此外,示例性计算节点图包括dt1402的属性“c”1410和“fk”1412,dt1404的属性“k”1414、“b”1416和“a”1418,dt1406的属性“b”1420、“c”1422和“a”1424,以及dt1408的属性“a”1426和“b”1428。示例性计算节点图1400定义输入数据集的属性与dt1476的属性“m”1478、“b”1480和“a”1482之间的沿袭关系,dt1476是示例性计算节点图1400的输出数据集。数据集表dt1476是对应于数据集“s7”的源数据集表,其在示例性计算规范1300中指定的作为输出数据集。此外,示例性计算节点图1400包括内部数据集表(idt)1448和idt1456,其捕获输出数据集dt1476的属性的计算的中间值。在一个实施例中,示例性计算节点图1400包括变换节点t1430、t1442和t1460。为图13的示例性计算规范1300的“select”语句生成变换节点。根据上面参考图6的计算节点图元数据模型描述的变换操作644来创建变换节点。变换节点1430对应于从示例性计算规范1300的第9行开始的“select”语句。类似地,变换节点t1442对应于从示例性计算规范1300的第23行开始的“select”语句并且变换节点t1460对应于从示例性计算规范1300的第2行开始的“select”语句。当创建变换节点t1430、t1442和t1460时,分析对应的“select”语句的内容以定义要包括在变换节点t1430、t1442和t1460中的属性和/或表计算的类型。例如,基于该分析,变换节点1430包括属性计算节点“aggregate(聚合)”1432、“identity(身份)”1438和“identity”1440,以及表计算节点“innerjoin(内部联接)”1434和“groupby(由…分组)”1436。在一个实施例中,基于属性计算的类型生成属性计算节点。属性计算的类型由图6的属性计算658的属性“type”662的值定义。当通过将身份函数应用于单个输入属性的值来生成每个输出属性值时,属性“type”662的值是“identity”。因此,基于示例性计算规范1300的第10行为属性“a”1418生成属性计算节点“identity”1440,并且基于示例性计算规范1300的第11行为属性“b”1416生成属性计算节点“identity”1438。当从应用于在单个输入属性的一组值上的聚合函数计算每个输出属性值时,属性“type”662的值是“aggregate”。因此,基于示例性计算规范1300的第12行,为属性“c”1410生成属性计算节点“aggregate”1432。在一个实施例中,基于表计算的类型生成表计算节点。例如,基于示例性计算规范1300的第14行生成表计算节点“innerjoin”1434,并且基于示例性计算规范1300的第15行生成表计算节点“groupby”1436。类似地,变换节点1442包括基于示例性计算规范的第22行生成的表计算节点“filter”1444,以及基于示例性计算规范1300的第20行生成的属性计算节点“aggregate”1446。此外,变换节点t1460包括属性计算节点“aggregate”1462(基于示例性计算规范1300的第5行生成)、“identity”1472(基于示例性计算规范1300的第3行生成)和“scalar”1464(基于示例性计算规范的第4行生成)。当由“n元”标量函数计算每个输出属性值时,生成具有属性“type”662的值“scalar”的属性计算节点,其中函数的每个变量是来自输入属性的值。变换节点t1460还包括表计算节点“groupby”1468(基于示例性计算规范1300的第24行生成)、“leftouterjoin”1470(基于示例性计算规范1300的第8行和第17行生成)和“filter”1474(基于示例性计算规范1300的第18行和第19行生成)。图15示出了根据一个实施例的示例性数据集级别沿袭图1500。基于图14的示例性计算节点图1400生成数据集级别沿袭图1500。当示例性计算节点图1400被加载到图3的数据沿袭存储器360中时,数据集级别沿袭图1500由图3的数据沿袭加载器355生成。数据集级别沿袭图1500包括数据集表dt1510、dt1520、dt1530、dt1540、dt1570和中间数据集表idt1550和idt1560,其分别引用示例性计算节点图1400的dt1402、dt1404、dt1406、dt1408、dt1476和中间数据集表idt1448和idt1456。在一个实施例中,通过在图14的变换操作t1430、t1442和t1460的输入和输出数据集之间创建数据集沿袭边来生成示例性数据集沿袭图1500。图16示出了根据一个实施例的示例性属性级别沿袭图1600。基于图14的示例性计算节点图1400生成属性级别沿袭图1600。当示例性计算节点图1400被加载到数据沿袭存储器360中时,由数据沿袭加载器355生成属性级别沿袭图。通过为连接属性节点(例如,“c”1410、“fk”1412、“k”1414、“b”1416、“a”1418等)与示例性计算节点图1400的另一节点的沿袭边创建属性沿袭边来生成属性级别沿袭图。当示例性计算节点图1400的沿袭边(le)的目标是表或计算节点时,要在属性级别沿袭图1600中创建的属性沿袭边的起源节点和目标节点从le继承。例如,在属性“c”1602、“fk”1604、“k”1606、“b”1608、“a”1610、“b”1612、“c”1614、“a”1616“a”1618、“b”1620和作为属性沿袭边的目标节点的相应的计算节点“aggregate”1622、“innerjoin”1624、“groupby”1626、“identity”1628、“identity”1630、“filter”1632和“aggregate”1634之间创建属性沿袭边。类似地,在属性级别沿袭图1600的其他属性和计算节点之间创建的属性沿袭边从示例性计算节点图1400继承。另外,“updatemode”属性(图8的属性“updatemode”810)的值被设置为“define”。属性“updatemode”的值指示起源节点的值对目标节点的值的影响。属性“alias”(图8的“alias”808)和“isleftside”(图8的“isleftside”812,图8)的值也从示例性计算节点图1400继承。在一个实施例中,属性“origindomainusage”(“origindomainusage”806,图8)的值是基于域使用算法计算的,包括以下步骤:步骤1:如果变换节点包括类型'other'的表计算,则返回“partial”;步骤2:如果变换节点包括过滤起源节点的值的表计算,则返回“partial”;步骤3:如果变换节点包括类型为left(resp.right)outerjoin的单个表计算,并且属性沿袭边起源是右侧(resp.左侧)的属性节点,则返回“partial”。如果变换节点包括几个leftouterjoin表计算节点,则返回“partial”;第4步:其他情况返回“full”。在一个实施例中,当起源节点的整个值域有助于目的节点的值域时,“origindomainusage”的值是“full”。类似地,当起源节点的值域的子集有助于目标节点的值域时,“origindomainusage”的值是“partial”。作为另一示例,当le的目标是通过更新边链接到变换节点的变换节点的输出数据集节点的属性节点时,属性沿袭边的起源和目标从le的起源和目标继承。此外,“updatemode”属性的值继承自更新边的更新模式,属性“alias”和“isleftside”的值未定义,并且属性“origindomainusage”的值为“full”。图17是示出根据一个实施例的数据集1710、源数据集表1720、中介表1730、合并数据集表1740和提取器1750之间的关系的uml类图1700。不同的提取器可以根据各种已知的映射算法创建数据集1710的不同表表示。因此,由不同提取器创建作为数据集1710的基于表的表示的源数据集表可以是不同的。表示数据集的表包括对表示的数据集的相应部分的引用,以及对于属性,包括对表示的数据集的组件的引用。例如,图12的xmlfile1210,可以由提取器1750将源数据集表store1220分解为源数据集表store1220和sale1240。源数据集表store1220引用xmlfile1210的组件“/sales/store”,并且列“storeref”1222引用xmlfile1210的组件“/sales/store@storeref”。如果另一个提取器将xmlfile1210映射到单个源数据集表sales,该表使xml文件1210中的xml元素的表示变得扁平,则单个表可以引用xmlfile1210的顶部元素“/sales”,并且单个表中可能有一列引用组件“/sales/store@storeref”。在一个实施例中,计算规范“c1”产生xml文件1210并且另一系统中的计算规范“c2”消耗xml文件1210。来自“c1”的被提取的计算节点图“cn1”具有文件的sales表示用于输出,来自“c2”的被提取的计算节点图“cn2”具有文件的store表示用于输入,以及源数据集表“t”用于输出。为了提供“t”的详尽沿袭信息,store表和属性与sales表和属性相关。在一个实施例中,计算规范“c3”消耗xml文件1210。对应的提取的计算节点图“cn3”具有sales表表示用于输入以及“t”作为输出表。为了追踪“t”的沿袭,必须检测表sales和store是相关的,以确保“cn2”的输入也可以被认为是“t”的沿袭。因此,构建数据集1710的基于中介表的表示(中介表1730)以解决该问题。中介表1730是关联基于替代表的表示的“中枢(hub)”。中介表1730由单个源数据集表组成。中介表1730具有属性“name”1732。基于中介表1730,图3的数据沿袭存储355依赖于它们是否表示计算节点图的输入或输出将源数据集表关联起来。中介表存储在数据沿袭存储器355中。在一个实施例中,通过由提取器1750获取数据集1710的第一组合并源数据集表(诸如合并的数据集表1740)的表属性,以及由另一个提取器(未示出)获取数据集1710的一组合并的源数据集表(未示出)的表属性,并基于对属性的数据集组件的引用构建包含关系图(未示出),来构建中介表1730。这样,如果第一属性的引用包含在第二属性的引用中(即,第一属性引用第二属性的引用的子部分),则从一个属性到另一个属性创建弧。利用相应引用将图的源属性添加到中介表1730中。在一个实施例中,诸如源数据集表1720和中介表1730的合并的源数据集的表集合之间的沿袭关系如下表12中所示:表12描述了一种系统,其为异构系统网络上的数据集提供全面的沿袭信息。提取器以计算节点图的形式从数据源系统和元数据储存库系统中提取沿袭信息。基于系统类型,提取器专用于系统。例如,至少有一个专用于数据源系统的提取器和至少一个专用于元数据储存库系统的提取器。提取器通过数据连接和元数据连接来连接到数据源系统和元数据储存库系统。数据和元数据连接具有不同的凭证。沿袭提取器可以基于由连接的凭证定义的权限来访问dss处的数据和沿袭信息。数据集被翻译为源数据集表,用于存储数据集中的数据,该数据基于连接的凭证可访问。源数据集表存储在存储器中。源数据集表(对应于一个数据集并由一个提取器通过不同的连接提取)自动合并在一起以创建合并的数据集表。合并的数据集表包括来自相应数据集的数据,这些数据集可通过具有不同凭证的多个连接来访问。基于对数据集属性的引用,合并的数据集表与源数据集表相关,这些表引用数据集的属性但由不同的提取器提取。因此,为数据集提供了来自各种系统的详细沿袭信息。计算节点图由数据沿袭加载器加载到存储器中,该加载器基于计算节点图生成数据集级别和属性级别沿袭图。在请求提供对应于相关源数据集表的数据对象的沿袭信息时,基于数据集沿袭图、属性沿袭图和相关源数据集表生成数据结构。数据结构定义数据对象与关联于数据集的一个或多个子数据集或父数据集的一个或多个数据对象之间的关系。数据结构提供对数据集的数据和父数据集的一个或多个子数据集的数据的访问。一些实施例可以包括将上述方法编写为一个或多个软件组件。这些组件以及与每个组件相关联的功能可以由客户端、服务器、分布式或对等计算机系统使用。这些组件可以用对应于一种或多种编程语言的计算机语言编写,例如功能、声明、程序、面向对象、低级语言等。它们经由通过各种应用程序编程接口链接到其他组件,然后编译成服务器或客户端的一个完整应用程序。或者,组件可以在服务器和客户端应用程序中实现。此外,这些组件可以经由各种分布式编程协议链接在一起。一些示例实施例可以包括用于跨分布式编程环境实现这些组件中的一个或多个的远程过程调用。例如,逻辑级别可以驻留在远离包含接口级别的第二计算机系统(例如,图形用户界面)的第一计算机系统上。这些第一计算机系统和第二计算机系统可以在服务器-客户端、对等或一些其他配置中配置。客户端的复杂程度可能从移动和手持设备到瘦客户端,再到胖客户端甚至其他服务器。上述软件组件有形地存储在计算机可读存储介质上作为指令。术语“计算机可读存储介质”应被视为包括存储一组或多组指令的单个介质或多个介质。术语“计算机可读存储介质”应被视为包括能够经历一组物理改变以物理地存储、编码或以其他方式携带一组用于由计算机系统运行的指令,使得计算机系统执行本文描述、表示或说明的任何方法或过程步骤的任何物理物品。计算机可读存储介质可以是非暂时性计算机可读存储介质。非暂时性计算机可读存储介质的示例包括但不限于:磁性介质,诸如硬盘、软盘和磁带;光学介质,如cd-rom、dvd和全息设备;磁光介质;专门配置用于存储和运行的硬件设备,例如专用集成电路(“asic”)、可编程逻辑器件(“pld”)以及rom和ram器件。计算机可读指令的示例包括诸如由编译器产生的机器代码,以及包含由计算机使用解释器运行的更高级代码的文件。例如,可以使用java、c++或其他面向对象的编程语言和开发工具来实现实施例。另一实施例可以用硬连线电路代替机器可读软件指令或与机器可读软件指令组合实现。图18是示例性计算机系统1800的框图。计算机系统1800包括处理器1805,其运行存储在计算机可读存储介质1855上的软件指令或代码以执行上述方法。处理器1805可包括多个核。计算机系统1800包括介质读取器1840,用于从计算机可读存储介质1855读取指令并将指令存储在存储器1810或随机存取存储器(ram)1815中。存储器1810提供用于保持静态数据的大空间。可以存储至少一些指令以供稍后运行。根据一些实施例,诸如一些内存中计算系统实施例,ram1815可以具有足够的存储容量来在ram1815中而不是在存储器1810中存储处理所需的大部分数据。在一些实施例中,处理所需的所有的数据可以存储在ram1815中。可以进一步编译存储的指令以生成指令的其他表示并动态地存储在ram1815中。处理器1805从ram1815读取指令并按照指示执行动作。根据一个实施例,计算机系统1800还包括输出设备1825(例如,显示器),以将至少一些执行结果(包括但不限于视觉信息)作为输出提供给用户,以及输入设备1830,其向用户或另一设备提供用于输入数据和/或以其他方式与计算机系统1800交互的装置。这些输出设备1825和输入设备1830中的每一个可以通过一个或多个附加外围设备连接以进一步扩展计算机的能力。例如,可以提供网络通信器1835以将计算机系统1800连接到网络1850,并且又连接到连接到网络1850的其他设备,包括其他客户端、服务器、数据存储和接口。计算机系统1800的模块经由总线1845互相连接。计算机系统1800包括访问数据源1860的数据源接口1820。数据源1860可以经由以硬件或软件实现的一个或多个抽象层来访问。例如,数据源1860可以由网络1850访问。在一些实施例中,数据源1860可以经由抽象层(例如,语义层)来访问。数据源是信息资源。数据源包括使能数据存储和检索的数据源。数据源可以包括数据库,例如关系、事务、分层、多维(例如,olap)、面向对象的数据库等。其他数据源包括表数据(例如,电子表、分隔的文本文件)、用标记语言标记的数据(例如,xml数据)、交易数据、非结构化数据(例如,文本文件、屏幕剪贴)、分层数据(例如,数据)。在文件系统,xml数据)、文件、多个报告以及可通过已建立的协议(例如,由底层软件系统(例如,erp系统)产生的开放数据库连接(odbc),等等)访问的任何其他数据源。数据源还可以包括其中数据不是有形地存储的,或者是短暂的,例如数据流、广播数据等的数据源。这些数据源可以包括相关联的数据基础、语义层、管理系统、安全系统等。在以上描述中,阐述了多个具体细节以提供对实施例的透彻理解。然而,相关领域的技术人员将认识到,可以在没有一个或多个具体细节的情况下或者利用其他方法、组件、技术等来实践这些实施例。在其他情况下,未示出或详细地描述众所周知的操作或结构。尽管本文示出和描述的过程包括一系列步骤,但是应当理解,不同的实施例不受所示步骤顺序的限制,因为一些步骤可以以不同的顺序发生,一些步骤可以与除本文所示和所述之外的其他步骤同时发生。另外,可能不需要所有示出的步骤来实现根据一个或多个实施例的方法。此外,应当理解,这些过程可以与本文所示和所述的装置和系统以及与未示出的其他系统相关联地实现。包括摘要中所描述的实施例的以上描述和说明并非旨在穷举或将一个或多个实施例限制为所公开的精确形式。尽管出于说明性目的在本文中描述了一个或多个实施例的特定实施例和示例,但是如相关领域的技术人员将认识到的,在该范围内可以进行各种等同修改。可以根据上述详细描述进行这些修改。相反,范围由以下权利要求确定,这些权利要求将根据权利要求构造的既定原则来解释。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1