Chimera: A Virtual Data System for Representing, Querying, and Automating Data Derivation(论文阅读)

奇美拉:一个用于表示、查询和自动数据导出的虚拟数据系统。

论文背景

更一般地说,我们希望能够跟踪数据产品是如何派生出来的,并且要有足够的精确度,以便人们可以根据这些知识来创建和/或重新创建数据产品。人们可以明确地解释数据产品是如何产生的,即使在精心策划的数据库中,这也是不可行的。还可以实现一类新的“虚拟数据管理”操作,例如,“重新具体化”已删除的数据产品,生成已定义但从未创建的数据产品,当数据依赖性或转换程序发生变化时重新生成数据,和/或当重新创建比数据传输更有效时在远程位置创建数据产品的副本。为了探索数据派生跟踪和虚拟数据管理的好处,我们设计、原型化并实验了一个名为Chimera的虚拟数据系统。虚拟数据目录(基于关系虚拟数据模式)提供了用于导出数据的计算过程以及这些过程的调用和由这些调用产生的数据集的紧凑和表达性表示。虚拟数据语言解释器执行构建和查询数据库条目的请求
在这里插入图片描述

方法

通过执行从数据库查询中获得的计算时间表来创建新数据,并对结果数据进行分布式管理。我们已经成功地将奇美拉系统应用到两个具有挑战性的物理数据分析计算中。

奇美拉建筑

奇美拉虚拟数据系统的架构。简而言之,它包括两个主要组件:虚**拟数据目录(VDC这实现了奇美拉虚拟数据模式(Chimera virtual data schema)和虚拟数据语言解释器,该解释器根据对虚拟数据目录操作的调用来实现各种任务。应用程序通过标准虚拟数据语言(VDL)**访问奇美拉函数,该语言支持用于填充奇美拉数据库(以及删除和更新虚拟数据定义)的数据定义语句和用于从数据库中检索信息的查询语句。查询返回的一种重要形式(作为有向无环图,或DAG)是任务的表示,当在数据网格上执行时,创建指定的数据产品。因此,VDL充当了奇美拉虚拟数据网格的通用语言,允许组件确定虚拟数据关系,将此知识传递给其他组件,并填充和查询虚拟数据目录,而不必依赖于(潜在的)目录模式。Chimera函数可用于实现多种应用。例如,虚拟数据浏览器可能支持对虚拟数据中心内容的交互式探索,而虚拟数据规划器可能结合虚拟数据中心和其他信息来制定实现缺失数据所需的计算计划(第5节)。奇美拉虚拟数据模式定义了一组关系,用于捕获和形式化描述如何调用程序,并记录其潜在和/或实际调用。感兴趣的实体——转换、派生和数据对象——如下;我们将在下面更详细地描述这个模式。
在这里插入图片描述

转换

转换是一个可执行程序。与转换相关联的是可能用于表征和定位它的信息(例如,作者、版本、成本)和调用它所需的信息(例如,可执行文件名称、位置、参数、环境)。

派生

表示转换的执行。与派生相关联的是关联转换的名称、应用转换的数据对象的名称以及其他派生特定的信息(例如,参数值、执行时间、执行时间)。虽然转换参数是形式参数,但**派生的参数是实际参数。**数据对象是一个命名实体,可以通过派生来消费或生成。在迄今为止考虑的应用中,数据对象始终是一个逻辑文件,由一个逻辑文件名命名(LFN);单独的副本目录或副本位置服务用于从逻辑文件名映射到副本的物理位置[2,11]。然而,数据对象也可以是关系或对象。与数据对象相关联的是关于该对象的信息:通常称为元数据。我们不在这里解决

数据对象

据对象是一个命名实体,可以通过派生来使用或生成。在迄今为止考虑的应用中,数据对象始终是一个逻辑文件,由一个逻辑文件名命名(LFN);单独的副本目录或副本位置服务用于从逻辑文件名映射到副本的物理位置[2,11]。然而,数据对象也可以是关系或对象。与数据对象相关联的是关于该对象的信息:通常称为元数据。

信息可以在不同的时间记录在虚拟数据系统中,用于不同的目的。调用前生成的转换条目可用于定位转换并指导执行。在执行作业之前生成的派生条目可以提供生成文件所需的信息。作业执行后生成的条目记录了如何重新生成文件。例如,考虑定义模拟管道的四个阶段的转换条目。对该管道输出的初始查询返回一个DAG,当执行该DAG时,生成名为f 1 - f 4的文件。S u b s e q u e n删除文件f3,然后对该文件进行检索请求,只会导致重新执行管道的第3阶段。

嵌合虚拟数据模式

我们在这里描述了奇美拉虚拟数据模式,它是由3个部分组成的。逻辑转换的特征在于它的识别名称,即名称所在的命名空间唯一和版本号。**转换的签名包括输入和输出参数,它们不必是文件。转换可以有任意数量的形式参数。因此,转换和形式之间的关系是1:N。一个转换可以有多个派生,每个派生为参数提供不同的值。****一个派生可能适用于多个转换。**因此,版本控制允许应用一系列有效的转换,增加了调度器选择最适用的转换的自由度。实际参数与派生相关。它的值捕获LFN值或非文件参数的值。FORMALARG可能包含一个可选的默认值,由同一个value类以类似的方式捕获。VALUE类是一个抽象基类,用于单个值(标量)或一系列相似的值(列表),它们以联合的方式折叠成一个表。一方面,变换及其形式参数之间的关系,另一方面,依赖派生及其实际参数之间的关系,并不是相互独立的。实际参数的每个实例化都恰好映射到一个描述条目的形式参数。绑定是使用参数名创建的,而不是它在参数列表中的位置。
在这里插入图片描述
转换命令行上的参数被捕获在多个片段中,每个片段要么是对形式参数的引用,要么是文本字符串。调度器和运行时环境特定的数据在PROFILE表中抽象出来。例如,在Unix环境变量的情况下,命名空间是“env”,这个命名空间中的键是环境变量名,值是一个片段列表,要么是对绑定变量的引用,要么是文本字符串。FRAGMENT表捕获三个子类,一个文本字符串,一个LFN或者一个绑定变量的引用。三个子类被折叠成一个表。图表的下半部分涉及任何给定变换的物理位置[16]。最后,我们注意到Chimera应用程序通常还需要一个METADATA表,它将(键、值)属性对映射到LFNs,以及一个REPLICA表,它将LFNs映射到物理文件位置。然而,这些关系通常是通过单独的元数据目录[7]和/或副本目录[11]来实现的。

奇美拉虚拟数据语言

如上所述,奇美拉虚拟数据语言(VDL)包括数据定义和查询语句。我们先介绍两个数据推导语句,TR和DV,然后讨论查询。虽然我们的实现在内部使用了XML,但我们在这里使用了更易读的语法。

TR数据定义声明

数据定义语句TR语句定义一个转换。当VDL解释器处理这样的语句时,它会在虚拟数据目录中创建一个转换对象。例如,以下定义提供了提供执行程序所需的信息
在这里插入图片描述
他的定义如下。第一行为转换指定一个名称(t1),供派生定义使用,并声明t1读取一个输入文件(形式参数名a1)并生成一个输出文件(形式参数名a2)。中声明的参数标题行是转换参数,只能是文件名或文本参数。应用程序语句指定(可能作为LFN)实现执行的可执行文件。**前三个ARG语句描述了app3的命令行参数(与t1的转换参数相反)是如何构造的。**每个ARG语句都包含一个名称(这里是parg、farg、a n d xarg),后面跟一个默认值,这个默认值可能是指在调用时要用它们的值替换的转换参数(例如a1)。特殊参数stdout(示例中的第四个ARG语句)用于指定一个文件名,应用程序的标准输出将被重定向到该文件名中。参数字符串按照它们在TR语句中出现的顺序连接在一起,形成命令行。引入参数名称的原因是,这些名称可以在DV语句中使用,以覆盖TR语句指定的默认参数值。最后,PROFILE语句为Unix环境变量(MAXMEM)指定了一个默认值

数字视频数据定义声明

DV语句定义了一个派生。当VDL解释器处理这样的语句时,它会在虚拟数据目录中记录一个转换调用。DV语句为转换中声明的正式文件名参数提供LFN,从而指定由该调用读取和生成的实际逻辑文件。例如,下面的语句记录了上面定义的转换t1的调用。
在这里插入图片描述
紧接在DV关键字之后的字符串命名由派生调用的转换。与转换相反,派生不需要通过VDL语句显式命名。它们可以通过在它们的输入和输出声明中命名的逻辑文件名以及其他属性进行搜索来定位到目录中,如下所述。派生中的实际参数和转换中的形式参数通过名称关联。例如,上面的语句导致t1的参数a1接收值run1.exp15.T1932.raw,a2接收值run1.exp15.T1932.summary。

跟踪派生依赖关系

奇美拉的VDL支持追踪衍生产品之间的数据依赖链。例如,下面的语句定义了两个派生(以及两个转换),这样第一个的输出就是第二个的输入。因此,我们可以得出结论(除非文件2或文件3存在),要生成文件3,我们必须在trans2之前运行trans1,并使用其输出文件(文件2)作为trans2的输入文件。
在这里插入图片描述
因此,我们可以自动构造任意复杂的有向无环执行图。例如,考虑图4所示的转换。四个逻辑文件,作为这一计算结果,产生了。第一个节点生成的输出被存储到文件f.a中。两个进程findrange分别对输入f.a的不相交子集进行操作,并分别在f.b和f.c中发布它们的结果。最后一个节点“分析”将这两部分结合在一起。以下语句定义了生成、查找范围和分析的转换,以及生成文件f.a、f.b、f.c、a . n . d . f . d的派生。
在这里插入图片描述

请注意,转换findrange被调用了两次,命令行参数的值不同-i指定了不同的搜索范围。

复合转换

复合转换描述了多个程序的协调(可能是并发的)执行以及它们之间的文件传递。它的描述方式与简单转换相同,只有一个派生语句。复合转换中的所有内部转换调用以及内部转换步骤读取和生成的所有文件都会在目录中进行跟踪。因此,系统可以完全识别所有的数据依赖关系,并且这些依赖关系链中的任意文件可以被删除,然后基于存储的知识重新导出。
在这里插入图片描述
转换可以是简单转换,**也可以是复合转换。**复合转换本身由对一个或多个转换的引用组成,每个转换又是简单的或复合的。在所有其他方面,特别是从其外部接口和语义的角度来看,复合转换和简单转换是无法区分的。因此,复合转换本身可以包含复合转换。

Query

VDL提供了各种提取派生和转换定义的命令。因为VDL是用SQL实现的,所以这个查询集很容易扩展。查询输出可以(可选地)以与用于重新创建匹配条目的命令相同的格式返回。最终用户查询系统(如虚拟数据浏览器)和自动网格组件(如数据分析系统)都可以使用查询命令。简而言之,VDL查询命令允许用户通过指定转换名称、应用程序名称、输入LFN、输出LFN、参数匹配和/或其他转换元数据来搜索转换。可以通过指定关联的转换名称、应用程序名称、输入LFN和/或输出LFN来搜索派生。一个重要的搜索标准是是否存在调用带有特定参数的给定转换的派生定义。根据这种查询的结果,用户可以确定所需的数据产品是否已经存在于数据网格中,如果存在,则可以检索它们,如果不存在,则可以创建它们。查询输出选项首先指定输出应该是递归的还是非递归的(递归显示提供输入文件所必需的所有相关派生,假设不存在文件),其次指定是以列摘要、VDL格式(用于重新执行)还是以XML显示输出。

作为数据网格组件的奇美拉

我们讨论了当奇美拉系统作为一个组件合并到一个更大的数据网格系统中时出现的一些问题。如图2所示,虚拟数据“应用程序”在处理用户对虚拟数据的请求时,可以结合来自奇美拉和其他数据网格组件的信息。例如,应用程序可以将关于所请求的派生的具体化状态的信息与关于副本的物理位置和计算资源的可用性的信息相结合,以确定是访问远程副本还是(重新)生成数据值

奇美拉系统的经验

]我们用我们的奇美拉原型描述应用实验,在图5所示的小规模数据网格上进行。(后续实验将使用更大的国际虚拟数据网格实验室[6]。)这个网格使用Globus Toolkit资源管理和数据传输组件[17],Condor调度器和代理[19,24],以及DAGman作业提交代理来协调四个站点的资源。
在这里插入图片描述
在我们的实验中,我们没有考虑数据复制。所有数据产品的永久位置是VDL解释器所在的地点。可执行文件所需的所有数据文件都被拉到执行站点,成功执行的所有数据文件在数据派生完成后都被返回到提交站点。所有数据传输都使用启用网格的数据传输工具GridTP[2]。
正如我们所解释的,结果表明奇美拉可以管理实践中发生的应用程序调用之间复杂的相互依赖关系。我们还验证了嵌合体系统在各种更大、更复杂的人工DAG上的能力。

内容管理系统数据重建

在这里插入图片描述

结论

我们已经描述了Chimera,这是一个虚拟数据跟踪和生成系统,可以用来审**计和跟踪由计算产生的派生数据的谱系,还可以管理这种数据的自动、按需(重新)派生。该系统包括用于表示数据派生中涉及的各种实体的关系数据库模式、用于表示派生和管理虚拟数据数据库的虚拟数据语言、以及用于管理大型分布式数据网格系统中的虚拟数据派生过程的虚拟数据系统。尽管按需数据导出的价值在一般情况下仍有待证明,但在大型协作中审计和跟踪科学数据谱系的价值似乎是显而易见的,网格物理网络的四个开创性科学实验的承诺就是证明。总的来说,我们认为虚拟数据技术可以显著提高科学数据管理系统的可用性,**允许科学用户基于应用程序级特征搜索数据,并自动请求从预存的算法描述和派生“配方”中派生数据。我们在奇美拉系统的首次测试中取得了积极的成果。这些测试包括在一项与中国载人航天工程高能物理实验有关的应用中自动导出对撞机事件模拟数据,以及自动调用SDSS数据上的银河星团发现算法。我们还使用了各种人工问题来展示我们管理更复杂的数据派生关系的能力。这些初步结果鼓励我们,奇美拉的设计是可行的,它不仅可以表示复杂的数据推导关系,还可以将虚拟数据概念集成到大型科学合作的操作程序中。进一步的研究将为我们技术的实用性提供更多的见解。我们还计划研究关系和对象数据的派生,以及表示本体的高级技术的集成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nefelibat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值