首页 / 使用数据源的元数据的数据库操作

使用数据源的元数据的数据库操作有效专利 发明

技术内容

使用数据源的元数据的数据库操作 [0001] 背景 [0002] 数据库越来越多地用于复杂分析或数据挖掘任务,诸如模式提取和聚集 (clustering)。许多类型的数据库正在使用中,包括关系型数据库管理系统(RDBMS)(诸如可使用结构化查询语言(SQL)访问的那些数据库管理系统)以及以非关系形式(例如分层地)存储数据的非RDBMS或“NoSQL”数据库。此外,许多类型的查询接口正在使用中,包括SQL数据库客户端、统计编程语言(诸如R)和联机分析处理(OLAP)客户端应用。此外,现在可以以许多形式提供数据,包括经由SQL INSERT语句、超文本传输协议(HTTP)(或全程安全的HTTP、HTTPS以及类似者)POST请求以及富文本摘要(Rich Site Summary;RSS)或Atom格式的联合报告。 [0003] 概述 [0004] 本公开描述了用于将数据加载到数据库、搜索数据库及管理数据库的系统、方法、保存处理器可执行指令的计算机可读介质以及用户界面。在一些示例中,计算设备至少部分地基于作业规范来确定数据操纵,其中(诸)数据源中的至少一个数据源与作业规范相关联。计算设备至少部分地基于数据操纵和(诸)数据源中的该至少一个数据源的至少一些元数据来确定数据处理指令。计算设备至少部分地基于作业规范来确定来自数据处理指令的查询。计算设备通过至少部分地基于查询来访问来自(诸)数据源的至少一个数据源的数据而执行查询以提供查询结果。 [0005] 在其他示例中,计算设备接收包括一个或多个搜索关键字并指示多个数据源的搜索请求。计算设备至少部分地基于多个数据源中的至少两个数据源之间的生产者-消费者关系来确定多个数据源中的第一数据源的权重。计算设备使用搜索关键字来搜索与多个数据源中的至少一个数据源相关联的元数据以标识多个数据源中的匹配数据源,其中匹配数据源对应于搜索请求。计算设备至少部分地基于所确定的权重来确定多个数据源中的至少该第一数据源和第二数据源的排名信息。 [0006] 在又一些其他示例中,计算设备从数据流接收数据记录。计算设备确定数据记录的结构信息和数据记录的内容信息。计算设备至少部分地基于结构信息来确定数据源标识符。计算设备将内容信息与数据源标识符相关联地存储到数据库中。 [0007] 在另一些其他示例中,计算设备呈现包括至少一个查询准则控件和至少一个结果字段控件的用户界面。计算设备经由用户界面接收作业规范的信息。作业规范包括查询准则和结果字段规范。计算设备在用户界面中呈现注释控件。计算设备经由用户界面接收注释数据。计算设备在元数据储存库中与注释数据相关联地存储作业规范的信息。 [0008] 提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述不旨在标识所要求保护的主题的关键或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。例如术语“技术”可指代上述上下文和通篇文档中所准许的(诸)系统、(诸)方法、计算机可读指令、(诸)引擎、(诸)模块、算法、硬件逻辑和/或(诸)操作。 [0009] 附图简述 [0010] 结合附图来描述具体实施方式。在附图中,附图标记最左边的数字标识该附图标记首次出现的附图。不同附图中的相同参考标记指示相似或相同的项。 [0011] 图1是描绘了用于实现如本文描述的数据库的操作的示例环境的框图。 [0012] 图2是描绘了根据本文描述的各示例的被配置成参与数据库的操作的示例计算设备的框图。 [0013] 图3是描绘了在数据库的操作期间的示例模块交互的数据流图。 [0014] 图4示出了数据库操作的示例数据流图。 [0015] 图5示出了与图4所示的示例数据流图对应的模板树。 [0016] 图6是示例数据库用户界面的图形表示。 [0017] 图7是示出根据本文描述的各示例的用于操作数据库的示例过程的流程图。 [0018] 图8是示出根据本文描述的各示例的用于搜索数据库的示例过程的流程图。 [0019] 图9是示出根据本文描述的各示例的用于搜索数据库的示例过程的流程图。 [0020] 图10是示出根据本文描述的各示例的用于搜索数据库的示例过程的流程图。 [0021] 图11是示出根据本文描述的各示例的用于更新数据库的示例过程的流程图。 [0022] 图12是示出根据本文描述的各示例的用于更新数据库的示例过程的流程图。 [0023] 图13是示出根据本文描述的各示例的用于更新元数据储存库的示例过程的流程图。 [0024] 图14是示出根据本文描述的各示例的用于搜索元数据储存库的示例过程的流程图。 [0025] 图15是示例数据摄取用户界面的图形表示。 [0026] 图16是示例报告或数据导出用户界面的图形表示。 [0027] 详细描述 [0028] 概览 [0029] 本文描述的示例提供用于改善数据库操作(例如针对聚集来自多个数据源的数据的数据库的查询)的准备和执行的技术和构造。数据库操作可以包括例如至少摄取、存储、索引、搜索、变换、聚集、分析或导出数据,或者导出对数据的搜索、变换、聚集或分析的结果。一些示例例如从用户接收作业规范,并确定对应于作业规范的查询。至少部分基于作业规范提供的查询可以抽象指定作业使用的(诸)个体数据源的细节。一些示例在搜索中加权数据源,使得例如用户可以容易地定位要并入到查询中的相关数据源。一些示例处理传入数据记录(例如,流传输数据)以不仅存储数据,而且存储数据记录的结构信息或其他元数据。 [0030] 作业规范可以描述或以其他方式指示要执行的数据库操作,并且可以附加地指示该数据库操作的至少一些参数。示例作业规范可以指定从数据源检索数据的摄取作业。摄取作业可以例如将检索到的数据存储到数据库中。摄取作业可以附加地或替代地对数据进行索引并将索引存储在数据库中,或将数据存储在文档存储中,诸如执行所存储数据的索引的NoSQL数据存储。索引所存储数据可以准许容易地执行对所存储数据的搜索。另一示例作业规范可以指定检索作业,该检索作业从数据库检索匹配所选准则的数据记录。另一示例作业规范可以指定处理数据库中的数据的分析作业,例如通过摘要或聚集数据或对数据执行数学运算。又一示例作业规范可以指定将数据从数据库导出到另一数据库或另一数据阱(例如MICROSOFT EXCEL电子表格)的导出作业。在一些示例中,作业规范可以指定多于一个数据库操作。 [0031] 准备对应于作业规范的查询的各种示例可以允许用户与直接将复杂的数据库操作制定为查询相比更快地将这样的操作制定为作业规范。准备查询的各种示例可以允许应用查询计划优化技术来减少作业规范的运行时、内存要求、磁盘要求或网络要求。准备查询的各种示例可以允许使用存储的模板跨多个作业应用高效查询技术。 [0032] 加权数据源的各种示例可以允许响应于用户查询来定位相关数据源。这些示例中的一些示例可以减少用户花费在定位特定作业的数据源上的时间量。加权数据源的一些示例可以减少用户在制定作业时必须咨询的匹配数据源的数量,从而允许减少在用户制定作业时检索有关数据源的信息所消耗的网络带宽量。 [0033] 处理传入数据记录的各种示例可以有效地分离具有不同字段或结构的传入记录。 处理传入数据记录的各种示例可以减少将数据摄取到数据库中并将数据更快地提供给相关作业所需的时间。处理传入数据记录的各种示例可以将记录与元数据相关联地存储在数据库中,所述元数据将作业容易访问的不同类型的记录作为独立数据源呈现。 [0034] 一些示例使用作为集群计算系统(“计算集群”或“集群”)的一部分提供的处理单元,其具有若干离散计算节点,这些节点一起工作以完成分配给作为整体的集群的计算任务。一些此类系统可使集群的全部或一部分部署在云中。云计算允许将计算资源作为服务而非可递送产品来提供。例如,在云计算环境中,通过诸如因特网等网络来提供(例如,通过租赁协议)诸如计算能力、软件、信息、存储和/或网络连通性等资源。如本文所使用的,参考计算集群、节点和作业使用的术语“计算”一般而言指计算、数据存储或检索、数据操纵或其他程序控制的操作。参考集群、节点和作业使用的术语“资源”一般而言指集群提供的供作业使用的任何商品或服务。资源可以包括处理器周期、磁盘或其他非易失性存储上的空间、随机存取存储器(RAM)或其他易失性存储中的空间、网络带宽(上行链路、下行链路或两者)、优先化网络通道,诸如用于带服务质量(QoS)保证的通信的那些网络通道、备份磁带空间或安装/卸载服务、电力等。 [0035] 如本文所使用的,术语“数据库”一般而言指被配置成保留数据并允许或执行针对保留数据的查询的数据存储。数据库可以存储在易失性或非易失性存储或其组合中。数据库至少可以包括例如数据仓库、RDBMS、NoSQL数据库、诸如WINDOWS注册表的键值存储、平面文件或者平面文件集合、或者结构化或非结构化的其他数据存储。在一些示例中,数据库可包括一个或多个表、阵列、索引、存储的过程等以实现数据访问。可用于各个方面的示例数据库包括MICROSOFT  AZURE存储、MICROSOFT AZURE  SQL服务、APACHE LUCENE、ELASTICSEARCH和MICROSOFT SQL SERVER。 [0036] 在一些示例中,数据库可以包括例如数据或数据库结构、数据库模式或其任何组合的元数据或与其关联。数据源的元数据或从数据源抽取的数据库的元数据可以描述例如数据源的位置,诸如网络地址;用于连接到该数据源的连接细节;或安全信息,诸如连接到数据源所需的访问权限或组成员资格。数据库结构或模式的元数据可以描述例如数据库中的字段、那些字段的数据类型或那些字段之间的关系,诸如SQL数据库中的外键关系。 [0037] 参考图1-14进一步描述了用于准备和执行数据库查询的各种环境、电子设备的配置以及方法,例如以用于数据挖掘应用。尽管本文描述的许多示例涉及服务器和其他非消费者电子设备,但是可以使用其他类型的电子设备,例如,如参考图1所讨论的。 [0038] 说明性环境 [0039] 图1示出了数据库系统的各示例可在其中操作的或诸如以下描述的数据库操作可在其中被执行的示例环境100。在所解说示例中,环境100的各种设备和/或组件包括计算设备102(1)-102(N)(本文中单独地或共同地用参考标号102来指代),其中N是大于或等于1的任何整数;例如,分布式计算资源,以及计算设备104(1)-104(K)(本文中单独地或共同地用参考标号104来指代),其中K是大于或等于1的任何整数。在一些示例中,N=K;在其它示例中,N>K或Nlink text’中的“#target”)。两个字段之间的示例字段关系可以包括父(例如,一个字段是层次结构中的另一字段的父)、子、兄弟、祖父、孙、后代、祖先、第n子(对于非负整数n)或第n兄弟。元数据模块242然后可组装字段名称和字段关系以提供结构信息,例如通过以由字段关系确定的公认次序列出字段名称,或者通过以完全合格的形式表达字段名称(例如“专辑[0].名称”而不仅仅是“名称”)。 [0100] 在一些示例中,元数据模块242可以至少部分地基于结构信息来确定数据源标识符。例如,数据源标识符可以按预定格式排列结构信息,并散列化所排列的结构信息(例如,使用MD-或SHA-系列散列函数),或以其他方式提供与结构信息相关联的标识符。 [0101] 在一些示例中,一些数据记录可以具有一些公共字段和一些不同的字段。例如,来自特定计算设备104的遥测数据记录可以具有一些公共字段,诸如特定计算设备104的时间戳和标识符,以及一些非公共字段,诸如改进项目数据记录的使用统计以及崩溃报告的堆栈跟踪数据。在另一示例中,XBOX朋友添加的数据记录和XBOX简档更新数据记录可以共享指示数据记录是XBOX记录的公共字段,并且可以具有各自的不同的字段,例如分别具有“哪个朋友”字段和“哪个内容”字段。元数据模块242可以至少基于公共字段或非公共字段来确定数据源标识符。在一些示例中,元数据模块242可以确定特定数据记录的多个数据源标识符,例如,至少部分基于公共字段的一个数据源标识符和至少部分基于非公共字段的另一数据源标识符。 [0102] 在一些示例中,元数据模块242可以确定结构信息是否在元数据储存库234中被表示。例如,元数据模块242可以查询元数据储存库234以寻找对应于结构信息的数据源标识符。在一些示例中,与结构信息相关联的标识符可以用作查询的搜索关键字。如果结构信息从元数据储存库丢失,例如如由缺少搜索关键字所指示的,则元数据模块242可以将结构信息添加到元数据储存库并且从元数据储存库234接收对应于结构信息的数据源标识符。在一些示例中,确定表示、添加结构信息和接收数据源标识符可以例如响应于来自数据库客户端302的“条件添加”或类似API调用来执行。 [0103] 在一些示例中,存储模块244可以将元数据存储在与各数据源中的所选一个数据源相关联的元数据储存库234中。在一些示例中,存储模块244可以将对应于数据记录的元数据与对应于该数据记录的数据源的数据源标识符相关联地存储在元数据储存库234中。 例如,存储模块244可以将结构信息和数据源标识符存储在元数据储存库234中的记录中。 将元数据存储在元数据储存库234中可以允许基于记录类型、数据源或其他元数据值来更容易地搜索和过滤数据记录。在一些示例中,存储模块244可以将内容信息与数据源标识符相关联地存储到数据库232中。这可以准许容易地按数据源进行过滤,并且可以允许容易地定位与存储的内容信息相对应的元数据。 [0104] 在所解说示例中,元数据储存库234存储描述306。描述306可以包括一个或多个数据源或作业规范的元数据,如本文所述。例如,描述306可以包括存储在诸如ELASTICSEARCH数据存储的索引数据存储中的JSON记录。JSON(或其他格式)记录可以包括例如关于数据源的信息,诸如名称、区域、类型、源组件、描述、属性、谱系、与其他数据源的关系、或者分类或本体信息,诸如类别或子类别。本文描述了元数据字段的示例。 [0105] 上面描述的用于检索模块240、元数据模块242或存储模块244的处理可针对多个数据记录执行。在一些示例中,检索模块240可以从数据流接收多个数据记录。元数据模块 242可以为多个数据记录中的个体数据记录确定相应的结构信息记录,各个结构信息记录中的一个结构信息记录包括结构信息。元数据模块242还可以确定各个结构信息记录的一个或多个代表性结构信息记录,每个代表性结构信息记录与相应的数据源标识符相关联并且对应于一个或多个个体数据记录。存储模块244可以将个体数据记录与相应的代表性结构信息记录的数据源标识符相关联地存储到数据库中。这可以允许将可能来自多个不同数据源的多个数据记录以以下方式加载到数据库232或元数据储存库234中:允许快速搜索和过滤数据记录,并且允许有效地跨越来自多个数据源的数据记录执行查询。 [0106] 在一些示例中,存储模块244可以用从数据源检索的新数据覆写数据库232或元数据储存库234中的数据。这可以允许重新加载参考数据或不经常修改的数据。在一些示例中,例如,如上面参考检索模块240所描述的,存储模块244可以跟踪最后记录时间戳并且在给定作业运行时仅存储比最后记录时间戳更新的数据记录。在一些示例中,存储模块244可以将数据库232或元数据储存库234中的数据与从数据源检索的新数据合并,例如通过插入新数据记录或删除或修改现有数据记录(例如,使用SQL UPDATE语句),以使数据库232或元数据储存库234的相关部分与新接收的数据记录同步。数据源可以传送更新而不是完整的数据记录,从而减少维持数据库232或元数据储存库234中当前信息所需的带宽。 [0107] 可以查询数据库232中的数据或元数据储存库234中的元数据,例如用于数据挖掘或商业智能目的。一些示例允许用户更快速地开发与用户希望运行的作业相对应的高效查询,例如用于数据检索或分析。 [0108] 在一些示例中,UI模块246可以被配置为提供包括数据源选择控件、查询准则控件和结果字段控件的用户界面。示例用户界面在下面在图6中示出。用户界面可以例如作为Web应用的一个或多个HTML或JS文件来提供。替代地,可以将用户界面提供为本机应用,例如Win32、MICROSOFT.NET或JAVA应用。UI模块246可以通过触发在数据库客户端302上存储的UI应用在数据库客户端302上的显示来提供用户界面。在一些示例中,数据库客户端302可以独立于UI模块246(例如根据诸如实体304之类的用户的请求)显示用户界面。 [0109] 在一些示例中,接收模块272可以例如经由网络108接收用户界面或用户界面的触发。 [0110] 在一些示例中,呈现模块274可以呈现用户界面。例如,呈现模块274可以在显示器 218上显示用户界面并且经由用户可操作输入设备220从实体304(例如用户)接收输入。在一些示例中,呈现模块274可以运行事件循环或终端对话或以其他方式操作用户界面以接收用户输入或呈现信息,如本文所述的。 [0111] 用户界面可以包括例如一个或多个查询准则控件和一个或多个结果字段控件。查询准则控件可以接收用于选择相关数据记录的值,如下所讨论的。结果字段控件可以接收用于选择哪个数据被输出的值,同样如下所讨论的。查询准则控件、结果字段控件以及用户界面的或其中的任何其他控件可至少包括文本输入控件、标签、复选框、单选按钮、按钮、下拉列表(受限还是不受限)或其他列表选项字段、滑块、旋钮或其他小部件,无论是虚拟的(例如,呈现在显示器218上)还是实体的(例如,机械致动的按钮)。 [0112] 在一些示例中,呈现模块274可以经由用户界面接收用户输入。例如,呈现模块274可以经由用户界面接收作业规范的信息。作业规范可以包括至少一个查询准则(例如经由查询准则控件接收的查询准则)以及至少一个结果字段规范(例如经由结果字段控件接收的结果字段规范)。 [0113] 在一些示例中,呈现模块274可以进一步在用户界面中呈现注释控件。注释控件可以至少包括复选框、标签输入控件或文本输入控件。呈现模块274可以经由用户界面的注释控件接收注释数据。注释数据可以指示例如笔记、预期使用或限制的陈述、搜索关键字(例如,在其他字段中未找到的关键字)、相关作业的标识信息、或关于作业规范的其他信息,例如该实体304相信在搜索数据源时对定位作业规范将有用的信息。 [0114] 在一些示例中,传送模块276可以在元数据储存库234中与注释数据相关联地存储作业规范的信息。例如,传送模块276可以从呈现模块274接收作业规范的信息和注释数据,并将作业规范的信息和注释数据传送到元数据储存库234。在一些示例中,传送模块276可以,例如通过将元数据封装在XML中或通过准备SQL INSERT查询来存储元数据,重新格式化或封装作业规范的信息或注释数据以用于存储在元数据储存库234中。 [0115] 在所解说示例中,元数据储存库234存储作业规范308。从传送模块276接收的作业规范可以被存储在例如SQL数据库或其他数据存储中。本文描述了作业规范的示例。在一些示例中,传送模块276可以在元数据储存库234中存储作业规范308和在作业规范中指示的作业的输出的描述306两者。这可以允许作业的输出被用作其他作业的数据源,例如如本文所述。 [0116] 在一些示例中,注释数据可以指示关于作业的数据源或目标的信息。传送模块276可以在元数据储存库234中与注释数据相关联地存储数据源或目标的信息。这可以允许用户更容易地定位数据源或目标,从而降低重复工作或重复存储的可能性。 [0117] 在一些示例中,呈现模块274或用户界面被配置为在定位感兴趣的数据源时提供帮助。本文各种示例可以减少用户定位相关数据源所需的时间。本文参考图6、15和16描述了示例用户界面。 [0118] 在一些示例中,呈现模块274被配置为在用户界面中呈现数据源搜索控件。数据源搜索控件可以至少包括文本输入控件或选择控件。例如,文本输入控件可以接收搜索关键字。选择控件可以接收来自预定选项集合的选择,并且可以包括例如复选框、单选按钮或下拉列表(单选或多选,例如,每个项具有复选框的多选)。在一些示例中,文本输入控件可以与选择控件组合以提供自动补全或者以其他方式允许用户使用至少一些文本输入来从选项集合中进行选择。在一些示例中,可以从诸如描述306的元数据中准备选项集合。例如,呈现模块274或另一模块可以确定包括元数据储存库234中列出的数据源的数据源类型的选项集合。这可以例如使用“选择唯一值”查询来完成。呈现模块274或另一模块可将所确定的选项集合与选择控件相关联以允许用户从选项集合中选择选项。 [0119] 在一些示例中,选择控件可以允许至少选择数据源的名称(例如数据源标识符或人类提供的友好名称)、数据源的类型(例如,SQL数据库或RSS馈送)、或数据源的类别、子类别、区域、提供者或位置。类别和子类别可以是分类或本体元数据的示例;其他分类学或本体论元数据(诸如术语关系或群组成员资格)可以附加或替代地经由选择控件来选择。数据源的类型、类别、子类别、区域、提供者、位置或其他区分字段值可以具有层次级别或值。例如,来自日本山梨县大月市的数据源可以具有“日本”、“日本.山梨县”或“日本.山梨县.大月市”的位置值。示例类别可以包括至少“设备”或“用户”。“设备”类别的示例子类别至少可以包括“遥测”或“改进项目”。示例提供者可以包括提供数据的组织或子组织的名称,诸如业务单位。示例区域可以包括“收集”(仍在收集的数据)、“筹划”(收到但仍在处理中的数据)或“已处理”(数据可供使用)。示例位置可以包括物理或逻辑服务器位置,例如在特定集群106内或在该集群106外。 [0120] 在一些示例中,呈现模块274被配置为经由用户界面接收一个或多个搜索关键字。 搜索关键字可以包括在任何数据源搜索控件中输入的值,例如全文关键字或类别选择。个体搜索关键字可以是必需的、任选的或禁止的,分别指示数据源必须、可或不可匹配那些个体搜索关键字。例如,搜索关键字可指示数据源必须具有类别“music(音乐)”,可具有全文“Mike Oldfield”,可具有全文“Pink Floyd”,并且不能有全文“bad(不好)”。这样的查询可以在APACHE LUCENE经典查询语法中表达为‘+category:music“Mike Oldfield”“Pink Floyd”-bad’。用户界面可以允许实体304提供该查询,例如使用其中输入LUCENE查询的单个文本控件,或者例如针对类别(category)使用下拉列表,针对可被包括的单词或短语(“Mike Oldfield”和“Pink Floyd”)使用全文控件,以及针对不能被包括的单词或短语(“bad”)使用分开的全文控件。 [0121] 在一些示例中,呈现模块274被配置为在元数据储存库234(例如,描述306)中搜索匹配搜索关键字的数据源以提供匹配的数据源。一旦所有搜索关键字已经被提供,可以执行搜索(例如,在按下“搜索”按钮之后)或者可以迭代地(例如当输入到数据源搜索控件中的值改变时)执行搜索。在一些示例中,搜索可以至少包括搜索例如经由注释控件提供的存储的注释数据。在一些示例中,可以例如使用布尔或全文搜索来搜索元数据储存库。在一些示例中,可以如下面参考接收模块262、加权模块264、搜索模块266和传送模块268所讨论的搜索元数据储存库。 [0122] 例如,当实体304(例如用户)创建数据源时,实体304可以提供指示例如关键字、范围、预期用途或数据源的其他特征的注释。在一些示例中,如下所讨论的,查询的结果本身可被用作新数据源。注释可包括例如关于查询的信息。接收、存储和搜索注释可提供相关数据源的更快速发现。在一些示例中,当创建数据源时,可例如通过呈现模块274自动产生与该数据源相关联的元数据。自动产生的元数据可以包括例如表达或指示数据源之间的联系的标签,诸如生产者-消费者关系,或在构建查询时使用的搜索术语或准则的指示。在一些示例中,数据源(例如作业)的注释或其他元数据(用户提供的或自动产生的)可以包括数据源的典型更新频率的指示(例如,作业被调度以运行的频繁程度)。 [0123] 数据源的元数据可包括数据源的元数据或由数据源提供的个体字段的元数据。字段专用的元数据可以包括例如自由文本字段,该自由文本字段被配置为保持字段的内容的人类可读解释。元数据可包括每个字段的预定类型的值,例如字段的数据类型(诸如文本或数字),指示数据记录是否必须包括该字段的值的标志,在该字段是任选的情况下该字段的默认值,或对于跟踪业务需求有用的值。在一些示例中,作为作业专用的元数据的值的替代或附加,诸如本文描述的那些的用户界面可以允许提供字段专用的元数据的值。 [0124] 在一些示例中,呈现模块274被配置为在用户界面中呈现匹配数据源的标识信息。 例如,呈现模块274可以在按下搜索按钮之后或者迭代地呈现数据源的列表。标识信息可以至少包括数据源名称、数据源标识符或关于数据源的其他元数据。 [0125] 如上所述,查询结果可担当未来作业的数据源。因此,在一些示例中,匹配数据源包括作业规范。在一些示例中,呈现模块274被配置为在呈现标识信息之后,经由用户界面接收包括作业规范作为数据源的指定的第二作业规范。 [0126] 一些示例提供了例如在计算设备102上运行的查询支持,以有效地使相关数据源在搜索结果中排名较高。 [0127] 在一些示例中,接收模块262可以接收至少部分经由用户界面提供的信息。该信息可以包括例如作业规范或搜索请求。在一些示例中,例如在计算设备104上执行的传送模块 276可以例如以键值、JSON或XML形式将信息传送到例如在计算设备102上执行的接收模块 262。例如,传送模块276可以将来自呈现模块274的搜索关键字以例如XML、JSON、多部分/形式数据或应用/x-www-form-urlencoded形式打包,并将打包数据经由HTTP连接传送到接收模块262。 [0128] 因此,在一些示例中,接收模块262可以接收包括例如经由数据源搜索控件接收的一个或多个搜索关键字的搜索请求。搜索请求可以指示一个或多个数据源,例如多个数据源。在一些示例中,搜索请求可以指示要被搜索的特定数据源或群组、类别、目录、或其它数据源布置。在一些示例中,搜索请求可经由向接收模块262指示哪些数据源应该被搜索的通道被传送。在一些示例中,搜索请求可以例如以LUCENE语法或另一种查询语法作为查询被传送,并且接收模块262可以解析查询以提取搜索关键字,例如使用正则语言解析器,诸如LL(k)或LR(k)解析器(例如,其中k=1)。 [0129] 在一些示例中,加权模块264可以至少部分地基于多个数据源中的一些数据源(例如两个或更多个数据源)之间的生产者-消费者关系来确定数据源中的一些数据源的相应权重。例如,加权模块264可以至少部分地基于多个数据源中的至少两个数据源之间的生产者-消费者关系来确定多个数据源中的第一数据源的权重。如果来自特定的数据源的数据被存储在元数据储存库234中的一个或多个“消费者”作业使用,则可以将该数据源视为“生产者”。在一些示例中,正被搜索的数据源的权重(例如,如上所述在搜索请求中或由搜索请求指示的权重)可以是该数据源的消费者的计数,标准化为参考值(例如1.0)的计数,或者通过Softmax或其他斜坡函数标准化的计数。在一些示例中,特定数据源的权重可以至少部分地基于该特定数据源消费的其他数据源的权重。在一些示例中,加权模块264可以基于数据源的消费信息来确定数据源的权重。消费信息可以包括作业数量、用户、或访问或以其他方式使用由数据源提供的数据的其他下游依赖性的数据。 [0130] 具体而言,在一些示例中,加权模块264可以对于数据源的第一数据源至少部分地基于各数据源的元数据确定第一数据源的消费者的数量;并且至少部分地基于消费者的数量并且在数学上与消费者的数量正相关地确定第一数据源的相应权重。在一些示例中,所确定的数据源的权重可以是计数(或上面提到的其他值)的函数,例如单调递增函数或非递减函数。这些函数可以包括例如单调递增或非递减多项式、指数或对数。 [0131] 在一些示例中,加权模块264可以基于元数据中应该使用哪个元数据的指示来确定权重。例如,数据源的元数据可以指示该数据源的权重应当至少部分地基于(i)将该数据源引用为输入的作业规范308的数量;(ii)与数据源相关联的下游点击流计数;或者(iii)注释数据是否与数据源相关联来确定。在一些示例中,加权模块264可以基于元数据中或用户简档数据中应该使用哪个元数据的指示来确定权重。例如,可以基于第一用户的消费信息对特定数据源进行加权,并且基于不同的第二用户的注释数据对该特定数据源进行加权。这可以为用户提供与那些特定用户的需求更加相关的元数据搜索结果,从而允许用户更快速地定位相关数据源。 [0132] 在一些示例中,搜索模块266可以使用搜索关键字和确定的权重来搜索数据源的元数据以标识各数据源中与搜索请求相对应的匹配的一些数据源。在一些示例中,搜索模块266可以使用搜索关键字来搜索与多个数据源中的至少一个数据源相关联的元数据,以标识该多个数据源中的匹配数据源。匹配数据源可以对应于搜索请求。在一些示例中,数据源可以用诸如APACHE LUCENE、ELASTICSEARCH或BING之类的搜索引擎来索引。索引可以至少基于数据记录、数据源元数据或确定的权重来执行。搜索模块266可以将搜索关键字和确定的权重提供给搜索引擎。然后搜索引擎可以提供对各数据源中的匹配数据源的标识,例如至少部分地基于确定的权重以相关性次序排序。 [0133] 在一些示例中,搜索模块266可以将搜索关键字中的任何布尔条件应用于数据源或其元数据。例如,指示类别“music(音乐)”的搜索关键字可以对应于“CATEGORY='music'”或“CATEGORY LIKE'%music%'”的布尔查询(在本示例中用SQL表达)。这可以允许快速过滤掉与所指示的类别、区域、位置或其他选择不匹配的数据源。 [0134] 在一些示例中,搜索模块266可以将搜索关键字中的全文搜索技术应用于数据源或其元数据,例如应用于匹配任何布尔条件的数据源或那些数据源的元数据。搜索模块266可以至少使用用于子串匹配、正则表达式匹配、模糊匹配、邻近搜索、或者在B树、尝试、倒排索引或其他索引结构中查找或从其中检索的算法。 [0135] 相应地,在一些示例中,搜索模块266可以至少部分地基于至少数据源的类型来过滤数据源的元数据,例如使用如上所述的布尔准则,以标识各数据源中的候选数据源。搜索模块266可以至少部分地基于搜索关键字中的至少一些搜索关键字从候选数据源中选择匹配数据源。 [0136] 在一些示例中,搜索模块266可以对数据源(例如匹配搜索关键字的数据源(为了简洁称为“匹配”))排名。例如,搜索模块266可以至少使用用于词频(TF)、逆文档频率(IDF)、TF-IDF或Okapi BM25排名的算法来确定各匹配的分数。搜索模块266然后可以例如按照分数的递减次序或递增次序将各匹配排名。在一些示例中,分数可以是对应于搜索关键字的术语专用分数的总和、加权总和、饱和总和、乘积、加权乘积或饱和乘积。在一些示例中,搜索模块266可至少部分地基于确定的权重来确定多个数据源中的至少第一数据源(为其确定权重)和第二数据源的排名信息。 [0137] 在一些示例中,搜索模块266可以例如基于文档增强(document boost)、字段增强或术语增强来增强匹配数据源的排名。在一些示例中,从全文搜索引擎的角度来看,数据源被认为是“文档”。在一些示例中,可以为个体数据源分配等于、正相关于、或至少部分地基于这些数据源的各自确定的权重的文档增强。例如,如果数据源“A”具有数据源“B”的两倍多的消费者,则数据源“A”可以被赋予2.0的文档增强且数据源“B”可以被赋予1.0的文档增强。在另一示例中,文档增强可以被确定为相对权重或与相对权重相关,其中具有接近跨所有数据源的平均权重的权重的数据源被赋予接近1.0的文档增强。 [0138] 在一些示例中,作为文档增强的替代或附加,可以将例如如上文针对文档增强所述而计算的字段增强添加到全文搜索字段、类别字段或用于匹配搜索关键字的其他字段。 例如,特定搜索关键字的术语专用分数可以通过针对特定数据源的元数据中出现搜索关键字的字段的字段增强来增强。在一些示例中,个体搜索关键字可被赋予术语增强。例如,针对特定搜索关键字的术语专用分数可以通过针对该搜索关键字的术语增强来增强。按字段进行增强可以允许使用由数据库的用户提供的信息来确定更相关结果,例如使用本文所述的注释(通过增强注释字段)。按术语进行增强可以允许用户在涉及大量术语的搜索中容易地确定相关结果。 [0139] 在一些示例中,搜索模块266可以例如从实体304的存储的简档或从元数据储存库 234中检索关于对文档相关性的增强或其他调整的信息。这可以允许个体实体304或个体数据源所有者或发布者调整术语相关性,以为用户提供改进的搜索结果,从而减少用户找到相关数据源所需的时间。 [0140] 在一些示例中,搜索模块266可以确定至少两个匹配数据源的排名信息。可以至少部分地基于确定的权重来确定匹配的排名信息。例如,可以按照匹配的权重的递减或递增次序来将匹配排名。在一些示例中,匹配之一的得分可以通过权重来增强,例如通过将权重添加到分数或将权重乘以分数。所述匹配可以按经增强的权重的递减或递增次序排名。如上所讨论的,可以例如至少每数据源、每字段或每项应用增强。 [0141] 在一些示例中,传送模块268可以传送各数据源中的匹配数据源的标识信息和排名信息,或者可以传送匹配数据源的传送标识信息以及确定的排名信息。例如,传送模块 268可以向数据库客户端302提供数据源中的至少一些匹配数据源(例如,前S个数据源)的XML、JSON、HTML或其他格式数据(在一些示例中,S=5或10,或大于1的整数或匹配数据源的数量)。在一些示例中,传送模块268可以提供例如按照排名的降序排序的标识信息记录,在这种情况下,排名信息可以隐含在所提供的次序中而不被明确地包括在内。在一些示例中,传送模块268可以提供与经编号排名(例如,第一,第二,...)或排名分数(例如,3.14159的排名高于2.71828)相关联的标识信息记录。在一些示例中,传送模块268可以传送匹配数据源或其他数据源中的数据源的排名信息。 [0142] 在一些示例中,搜索模块266或传送模块268可以至少部分地基于数据源中的匹配数据源中的至少一些数据源中的类型或来源来对数据源中的匹配数据源的至少一些数据源进行编组以提供编组信息。例如,个体匹配数据源可以与类别标识符相关联。在一些示例中,搜索模块266或传送模块268可以例如通过类别、区域或另一元数据字段的值来对数据源中的匹配数据源中的至少一些数据源进行编组。这可以允许用户即使在用户不知道感兴趣的数据源与哪个类别、区域或其他值相关联时也容易地定位数据源。 [0143] 在一些示例中,传送模块268可以将编组信息与标识信息和排名信息相关联地传送。接收模块272或呈现模块274然后可以呈现与编组信息相关联的匹配数据源,例如通过呈现按组划分或用它们的组标记的匹配数据源。特定匹配数据源可以是一个或多个组的成员。在一些示例中,传送模块268可以传送上述标识的可传送项中的至少一个,例如编组信息、排名信息或标识信息。传送模块268可以附加或替代地传送任何可传送项的元数据,例如,与各数据源中的所标识的匹配数据源相关联的消费者计数。 [0144] 在一些示例中,数据库客户端302的接收模块272可以从传送模块268接收各数据源中的匹配数据源的标识信息和排名信息。接收模块272可以将至少一些接收到的标识或排名信息提供给呈现模块274,呈现模块274可以将结果呈现给实体304,例如以网页或诸如允许选择其一个或多个条目的列表框的搜索结果列表的形式。 [0145] 在一示例中,数据库客户端302的传送模块276可以经由HTTP请求向图2的规范引擎210的接收模块262提供包括搜索关键字的AJAX查询。如上所述,加权模块264和搜索模块 266可以定位匹配数据源。规范引擎210的传送模块268可以例如经由对HTTP请求的HTTP响应将标识信息和排名信息提供给数据库客户端302的接收模块272。呈现模块274然后可以更新网页的表单,div或其他元素以显示相关数据源中的至少一些。如本文所述的使用权重进行搜索可以允许用户容易地定位感兴趣的数据源,并且有效地过滤全文搜索结果以定位相关数据源。 [0146] 可以查询数据库232中的数据或元数据储存库234中的元数据,例如用于数据挖掘或商业智能目的。例如,可以查询例如如上所述的使用搜索标识的一个或多个数据源。图2的构造引擎204的模块可以从作业规范准备查询。 [0147] 操纵模块248可以对作业规范操作。在一些示例中,数据库客户端302的传送模块 276可以例如以HTTP GET或POST请求的形式向操纵模块248传送作业规范。一个或多个数据源可以与作业规范相关联。例如,作业规范可以从如上所述接收的搜索结果中指示例如由实体304选择的数据源中的一些数据源。附加地或替代地,作业规范可以指示在没有如上所述的搜索过程的情况下选择的数据源中的一些数据源,例如,如由存储的配置数据或直接用户输入所指示的。作业规范可以包括各数据源中的相关联数据源的数据源标识符或其他标识信息。相关联数据源中的一个或多个可以为作业提供数据。 [0148] 在一些示例中,例如存储在计算机可读介质228上的安全模块310可以存储关于或影响存储在计算机可读介质228上的一个或多个所示模块或其他模块的操作的信息。例如,安全模块310可以实现诸如Kerberos或MICROSOFT域认证的认证或授权技术。安全模块310可以例如至少部分地基于用户证书来限制对所解说模块中的一个或多个的输入、输出或功能的访问。安全模块310可以执行审计,例如以存储关于用户对数据或模块的访问的信息。 安全模块310的功能可以与所解说模块中的一个或多个模块内的安全块协作地执行或唯一地由其执行。执行身份验证、授权和审计可以提高数据库的健壮性,并可以减少产生治理机构或过程所需报告的计算和数据库负载。 [0149] 图4示出作业规范的示例数据流图400。数据流图对应于表2中的示例作业规范。示例作业规范是嵌套形式的,其可以用例如具有适当模式的XML来表达。 [0150] [0151] [0152] 表2 [0153] 在表2中,第1行提供了作业的名称(“OrdersByDay”)。此名称可以稍后用于将作业的输出作为其他作业的数据源来参考。在图4中,数据源402(第2行),例如RDBMS中的“OrderPlaced”表,将数据记录提供给过滤器404(第3行)。过滤器404将“PRODUCT”字段具有值“WINDOWS 10”的记录传递给提取器406和408。提取器406(第5行)从过滤器404提供的记录中提取“OrderTime”字段。运算符410(第7行)将“RoundToDay”函数应用于来自提取器406的值以将时间戳(例如2015-03-14T9:26:53.5)改变为日期(例如2015-03-14)。提取器408(第9行)从过滤器404提供的记录中提取“ComputerID”字段。运算符412(第11行)应用“CountDistinctValues”函数以忽略来自同一计算机的重复订单,这可能出现在例如到在线订购过程的网络服务中断的情况下。重命名器414(第6行)将来自运算符410的结果重命名为“Date”。重命名器416(第10行)将来自运算符412的结果重命名为“OrderCount”。合并器418提供包括一个或多个数据记录的结果数据集420,每个数据记录具有来自重命名器 414的“Date”值和来自重命名器416的“OrderCount”值。下面的讨论参考图3和4。 [0154] 在一些示例中,图3的操纵模块248可以至少部分地基于作业规范来确定一个或多个数据操纵。例如,操纵模块248可以确定与作业规范相对应的数据流图,诸如数据流图 400,例如树或有向非循环图(DAG)。数据流图的各个体节点可以表示个体数据操纵。在一些示例中,数据操纵(例如,数据流图)可以根据作业的中间表示来表达或表示作业的中间表示。中间表示可以独立于一个或多个特定的查询语言,例如SQL或U-SQL。 [0155] 示例数据操纵可至少包括表2和图4中所示的操纵,例如至少从数据源获取数据,过滤该数据,从数据提取字段,将函数应用于字段值,聚合字段值,在数据记录内或数据记录之间进行字段的值之间的比较,将字段值与常量或在作业运行期间保持固定的变量进行比较,重命名字段,合并字段以提供新数据记录,或其他操作,例如可用查询语言(诸如SQL,U-SQL,APACHE PIG或APACHE HIVE)表达的操作。 [0156] 在一些示例中,操纵模块248可以包括对作业规范进行操作以生成数据流图的解析器、解释器或编译器。例如,作业规范可以符合预定义的LR(1)语言(或LL(1)或另一种正则语言、无上下文语言或上下文敏感语言),并且操纵模块248可以将作业规范作为输入来执行LR(1)(或其他)解析器,以便以作业规范的抽象语法树的形式产生数据流图。在一些示例中,作业规范可以符合固定模式,例如经由诸如图6的UI 600的固定用户界面中的控件输入的值。操纵模块248可以检索对应于UI的存储的数据流图,并且利用来自作业规范的值(例如,经由UI提供)或者至少部分地基于作业规范中的值确定的值来填充图中的值。 [0157] 在一些示例中,指令模块250可以针对数据操纵中的个体数据操纵,至少部分地基于与作业规范相关联的数据源中的个体数据源的元数据来确定一个或多个数据处理指令。 在一些示例中,指令模块250可以至少部分地基于至少一个数据操纵和至少一个数据源的至少一些元数据来确定数据处理指令。例如,指令模块250可以针对个体数据操纵(例如,数据流图的个体节点)来确定查询语言(例如SQL或U-SQL)中的表达式或语句,其在执行时将执行那些数据操纵的函数。 [0158] 在一些示例中,指令模块250可以确定多个数据操纵,所述多个数据操纵包括该数据操纵,并且至少部分地基于多个数据操纵的相应数据操纵来确定多个数据处理指令,该多个数据处理指令包括该数据处理指令。这可以允许处理涉及多于一个数据操纵的查询。 [0159] 在一些示例中,指令模块250可以为单个数据操纵或为数据操纵的所定义组合提供多个数据处理指令。例如,对于涉及两个子查询的连接的数据操纵,指令模块250可以为一个子查询提供第一数据处理指令,为另一子查询提供第二数据处理指令,并且为连接提供第三数据处理指令。为单个数据操纵或数据操纵组合提供多个数据处理指令可以允许执行对于特定数据库可能太复杂的查询,并且可以允许子查询的增加的并行性(因此增加查询吞吐量或减少查询等待时间)。如下所提及的,可以使用集合覆盖算法(诸如最大嵌入)来定位应该为其产生一个或多个数据处理指令的数据操纵的所定义组合。 [0160] 在一些示例中,指令模块250可以访问用于各种类型的数据操纵(例如,“过滤”,“提取”,“运算”,“重命名”或“合并”)的存储的模板。模板可以包括要填充的槽,并且指令模块250可以至少部分地基于至少数据源的元数据,数据流图或与作业规范相关的其他元数据来在槽中填充槽值。示例SQL模板在表3中示出。在表3中,“Δk”表示要填充的槽k。 [0161] [0162] 表3 [0163] 在一些示例中,作业规范可以包括一个或多个数据流图或数据操纵。在一些示例中,作业规范可以包括从中检索一个或多个数据流图或数据操纵的位置,例如文件名或URL。例如,作业规范可以包括(例如由实体304提供的)U-SQL脚本(或引用U-SQL脚本的位置,且贯穿全文同样如此)。在一些示例中,操纵模块248或者指令模块250可以复制来自作业规范的数据流图或者数据操纵,或将作业规范中供应的数据流图或数据操纵与基于作业规范中的值确定的数据流图或数据操纵集成,例如如上所述。例如,用户提供的U-SQL脚本可作为模板的槽供应。从作业规范中检索数据流图或数据操纵可以允许实体304(例如高级用户)为某些或全部特定作业提供定制或优化的代码。 [0164] 图5示出了用于表2和图4的示例查询的模板树500(或DAG,并且贯穿全文同样如此)。在一些示例中,操纵模块248或指令模块250可以例如通过遍历数据流图400或者通过解析作业规范来直接确定树500来提供树500的节点。在其中作业规范符合例如UI 600中的控件的值的固定模式的一些示例中,指令模块250可以检索存储的模板树和与固定模式相对应的存储的模板集合。指令模块250然后可以利用来自作业规范的值或者至少部分地基于作业规范中的值确定的值来填充模板,例如树中的叶模板。 [0165] 在一些示例中,指令模块250可以填充与树500的节点相关联的模板(例如,从表 3)。在树500的节点内,下划线(“___”)表示采用其他模板的那些Δk槽,在此示例中,这些槽中的黑色圆圈将槽连接到填充它们的槽值。例如,提取器406的查询模板是“Δ1”,如表3中所示。提取器406因此具有完成的模板“OrderTime”,即数据源中感兴趣的字段名称(表2第5行)。 [0166] 在一些示例中,指令模块250可以检索对应于所选择的一个数据操纵的存储的模板。指令模块250然后可以至少部分地基于至少一个数据源(例如,与选择的一个数据操纵相对应的数据源)的元数据来填充存储的模板中的字段,以提供各数据处理指令中的至少一个数据处理指令。 [0167] 在一些示例中,单个模板可以与树500的一个节点有关。在一些示例中,单个模板可以与树500的多于一个节点有关。在后面的示例中的一些示例中,指令模块250或查询模块252可以使用集合覆盖算法(诸如用于编译器的指令选择中的集合覆盖算法,例如最大适合(maximum munch))确定用于树500的适当模板。 [0168] 在一些示例中,查询模块252可以例如通过组装数据处理指令来至少部分地基于作业规范来从数据处理指令中确定查询。在一些示例中,查询模块252可以确定至少一些数据操纵的相对次序,例如至少两个数据操纵的相对次序。数据处理指令中的至少两个数据处理指令可以分别对应于该至少两个数据操纵。查询模块252然后可以通过根据确定的相对次序组装数据处理指令(例如,数据处理指令中的至少两个)来确定查询。一些数据处理指令可能没有相对排序限制。查询模块252可以提供包括排列在查询中的这种数据处理指令的查询,例如以减少运行时。在一些示例中,查询模块252可以对用于提供查询的数据处理指令执行重排序,死代码消除,提升循环不变或查询不变表达式,展开循环或其他优化。 [0169] 例如,运算符410的查询模板是Δ1(Δ2)。Δ1是从作业规范中检索的函数的名称,在本示例中为“RoundToDay”(表2,第7行)。Δ2是相关字段的模板,在本示例中为用于提取器406“OrderTime”的补全模板。因此,用于运算符410的补全的模板是“RoundToDay(OrderTime)”。查询模块252可遍历树500以提供用于合并器418的经补全模板。查询模块 252可例如以深度优先后序来遍历树500,或以涉及确定任何给定槽的槽值并用确定的槽值填充模板的另一次序来遍历树500。在所解说示例中,用于合并器418的经补全模板是SQL语句"SELECT RoundToDate(OrderTime)AS Date,CountDistinctValues(ComputerID)as OrderCount FROM OrdersPlaced WHERE PRODUCT=‘WINDOWS 10’”. [0170] 如本文所述的根据作业规范构造查询(例如,使用数据操纵的树和用于数据处理指令的模板)可以允许用户运行查询而不需要学习查询语言的语法。各种示例可以允许协调多种脚本语言,例如SQL或U-SQL查询,或者JAVA源或二进制小程序来执行HADOOP Map-Reduce(映射-化简)作业。 [0171] 在一些示例中,树500的一些节点可以具有以一种语言表达的模板,树500的其他节点可以具有以另一种语言表达的模板,并且树500的又一些节点可以具有执行这些语言之间的转换的模板。为该目的,树500中的节点的模板不仅可以包括文本替换,还(或者替代地)可以包括源或二进制代码以执行转换。在一些示例中,作为单个文本查询的附加或替代,查询可以包括在执行查询时要执行的一个或多个代码块。例如,查询可以包括用于获取数据的SQL语句,随后是JAVA应用,该JAVA应用获取从SQL语句输出的数据,并对来自SQL语句的输出执行HADOOP map-reduce(映射-化简)操作。 [0172] 各示例允许可以提供模板的管理员指定在特定计算设备102或104或集群106上高效运行的查询模式。各种示例允许根据那些查询模式执行用户的查询,而不要求用户直接指定模式。这可以减少集群106上的负载并且可以允许在给定集群106上运行更多的并发作业或每天运行更多作业。这也可以允许在多个集群106上运行特定作业,因为作业规范和数据流图400可独立于特定集群106或其中的数据库232。 [0173] 在一些示例中,查询模块252或向其提供数据的其他模块可以将安全属性应用于查询。例如,访问或运行查询的能力可被限制为具有有效凭证的用户,例如在WINDOWS安全域中。在一些示例中,作业规范或产生的查询可以包括指示何时(例如,在预定数据源提供新数据记录时)将执行查询的一个或多个触发器。在一些示例中,作业规范或产生的查询可以包括标识在指示先决条件或依赖性的作业或查询之前应该执行的其他作业或查询的先决条件或依赖性。 [0174] 在一些示例中,执行模块254可以被配置为执行该查询,例如以提供期望的结果或分析。执行模块254可以例如至少部分地基于该查询来访问来自数据源中的至少一个或者各个体数据源的数据以提供查询结果。该查询可以以任何次序包括语言中的单个语句(例如单个SQL语句)或多个语句,或者一个或多个代码块或代码模块。 [0175] 继续上面的SQL/JAVA示例,执行模块254可以将SQL语句传送到数据库232并从数据库232接收数据。执行模块然后可以将JAVA应用提交给HADOOP作业跟踪器,传递指示从SQL服务器检索的数据的位置的命令行或环境参数。替代地,执行模块254可将SQL语句传送到数据库232,并且将JAVA应用并行地提交给HADOOP作业追踪器。执行模块254可以提供允许JAVA应用直接检索SQL查询的结果的参数并将它们传递到map-reduce框架。执行模块254可以使用在诸如集群106的集群中使用的调度和作业管理技术,例如心跳检查和负载平衡。 [0176] 在一些示例中,执行模块254可以执行该查询一次或多次,例如,如作业规范所指示的。在一些示例中,执行模块254可以按照例如作业规范中指示的时间表执行该查询。例如,表2中所解说的日常订单作业的作业规范可以包括该作业应该每天(例如在上午5:00)运行的指示。 [0177] 在一些示例中,一个或多个数据记录可以包括指示例如那些记录何时被创建或更新的时间戳字段。检索模块240可以跟踪从特定数据源或数据流检索数据记录的时间。在各种时间,例如,至少当新记录变得可用时、定期地或按照时间表,检索模块240可以向数据源或数据流请求仅具有晚于追踪的检索时间的时间戳的记录,然后更新追踪的检索时间到例如当前时间或新检索的记录中的最新时间戳。在一些示例中,作为时间戳和追踪的检索时间的替代或补充,例如,如对于传输控制协议(TCP)序列号,可以使用单调递增的记录标识符和所检索的最后一个记录的追踪的标识符(并且贯穿全文同样如此)。 [0178] 在其中数据记录包括时间戳字段或以其他方式与时间戳相关联的一些示例中,查询模块252或执行模块254可以例如基于作业规范中的及时性信息来添加用于数据的及时性的条件。继续表2的示例,作业规范可以包括指示前一天的数据应该用于查询的及时性信息。查询模块252或执行模块254然后可以添加过滤器,该过滤器仅选择前一天的上午0:00: 00至下午11:59:59之间的数据以用于在上午5:00运行的查询。这可以提供五小时的时间让数据在运行作业前变得可用,并且可以为每日查询提供准确结果。在一些示例中,作业规范可以包括及时性信息,该及时性信息指示数据应该仅在特定时间范围内(例如,诸如特定日期之类的绝对时间或者诸如作业开始运行之前的特定小时数之类的相对时间)被加时间戳或者被添加到数据库232时才被使用。 [0179] 在一些示例中,可以以各种格式提供输出。在一些示例中,执行模块254可以将结果直接提供给数据库客户端302。在其他示例中,来自执行模块254的结果可以在传送到客户端之前被变换。例如,结果可以以不同于数据库232本机提供的格式的格式被返回。在一些配置中,格式模块256或指令模块258的下面描述的功能由操纵模块248、指令模块250、或查询模块252中的一个或多个执行。在一些配置中,执行模块254执行下面描述的执行模块 260的功能。 [0180] 在一些示例中,数据库客户端302的传送模块276可以向格式模块256传送对作业输出的请求。在一些示例中,执行模块254可以触发格式模块256开始处理,例如,与查询的执行并行处理或者在执行查询之后开始处理。 [0181] 在一些示例中,格式模块256可以至少部分地基于作业规范来确定输出格式。示例输出格式可以包括至少SQL数据库,SQL表,文本文件(诸如XML,JSON,制表符分隔值(TSV)或逗号分隔值(CSV)文件),MICROSOFT EXCEL或其他电子表格表格,到其他数据存储区或诸如MICROSOFT AZURE或MICROSOFT AZURE SQL,AZURE blob(二进制大对象)之类的集群106的上传,ELASTICSEARCH或其他索引,或可移植文档格式(PDF)文档,HTML页面或其他报告格式。输出可以以查询语言中的语句或网络传输的形式提供。例如,如下所讨论的,通过产生包括SQL INSERT语句的文本文件来加载数据,或通过直接连接到目标数据库并通过该连接传输数据插入命令,可以执行向SQL数据库或表的输出。 [0182] 在一些示例中,指令模块258可以确定可执行以根据输出格式执行查询结果的复制、移动或变换中的至少一者的一个或多个第二数据处理指令。例如,对于来自SQL数据库 232和CSV输出格式的结果,第二数据处理指令可以包括用于在每个字段内转义双引号、将每个字段括在双引号内,将每个记录的字段以逗号分隔,以及在文件的单行上输出每条记录的组合字段值的指令。例如,为了将结果馈送到例如云服务的RDBMS,第二数据处理指令可以包括用于制定SQL INSERT语句,建立到RDBMS的连接以及提供制定的SQL INSERT语句给RDBMS的指令。类似于上面参考查询模块252讨论的配置,第二数据处理指令可以包括可执行代码、查询语言中的语句或其任何组合;可以使用模板来构造;或者可以按顺序排列。 [0183] 在一些示例中,第二数据处理指令可以包括用于例如通过覆写目标数据集来重新加载数据集的指令。这可以允许高效地更新不经常变化的数据集,例如列出世界的国家的表格。 [0184] 在一些示例中,第二数据处理指令可以包括用于跟踪和维护上次运行时间戳的指令。这可以用于日期对齐的数据或作业,诸如在定期(例如每小时或每天)发生改变的事务性数据源上操作的作业。上次运行时间戳可以指示例如上个记录输出的时间戳。第二数据处理指令可以包括用于处理仅比上次运行时间戳更新的记录,然后更新上次运行时间戳的指令。跟踪上次运行时间戳可以提供保护以免于两次处理单个记录。 [0185] 在一些示例中,第二数据处理指令可以包括用于将作业的结果与输出合并的指令。例如,输出格式可以包括SQL查询,且第二数据处理指令可以包括SQL UPDATE语句以更新现有记录。以上参考检索模块240和存储模块244讨论了覆写、时间戳追踪和合并的一些示例;相应的技术可以用于提供输出。 [0186] 在一些示例中,执行模块260可以执行一个或多个第二数据处理指令以至少部分地基于输出格式来提供对应于查询结果的报告数据。例如,执行模块260可根据需要执行附加处理或查询以提供期望的输出。在一些示例中,执行模块260可以例如通过写入磁盘,通过运行SQL INSERT或其他数据库插入命令,或通过与客户端应用、插件或数据库客户端302上的其他模块进行通信来存储输出。例如,执行模块260可以例如经由分布式COM(DCOM)链路将结果提供给MICROSOFT EXCEL插件。这可以允许将结果直接加载到用户的应用,从而减少向用户提供数据的时间、存储器要求和网络带宽要求。 [0187] 在一些示例中,执行模块260或报告引擎208的另一组件可以产生指示所报告的数据已被提供的通知。例如,执行模块260可以传送(或导致其传送,且贯穿全文同样如此)电子邮件、即时消息、文本消息、自动化电话呼叫或指示报告的数据已被提供的其他通信;更新RSS馈送;向在线网站张贴公告;或以其他方式通知至少实体304或其他感兴趣的实体(例如工作组的其他成员)已提供报告的数据。这样的通知可以包括例如由集群106的作业管理系统提供的任何通知或被包括在例如由集群106的作业管理系统提供的任何通知中,或者作为例如由集群106的作业管理系统提供的任何通知的替代或补充。传送通知可以允许用户迅速定位长时间运行或预定的作业的结果。传送的通知还可以用作用于将作业的输出用作另一作业的数据源的配置的推送或拉取通知。 [0188] 图6是例如如以上参考规范引擎210和交互引擎214的模块所讨论的示例用户界面(UI)600的图形表示。UI 600(以及下面的图15-16中的示例UI)可以表示例如用于收集数据的对话框、网页或基于文本的输入屏幕。例如,UI600可以表示图1的UI 152。UI 600(以及图 15-16中的示例UI)可由数据库客户端302的呈现模块274呈现。在图6中(也在图15-16中),所示的控件的数量和类型仅用于说明的目的,而不是限制性的。任何数量的任何类型的控件可被包括在特定用户界面中。所解说的控件还可以跨多个用户界面划分,例如,一个用户界面用于定位数据源,而另一用户界面用于一旦数据源定位就提供作业规范。 [0189] 示例UI 600包括两个数据源搜索控件:全文搜索文本控件602和过滤下拉列表 604。控件602和604可以接收随后被提供给加权模块264或搜索模块266的信息。然后,搜索模块266可以运行对匹配在控件602和604中提供的准则的数据源的搜索,如上所述。控件 602可以接收要被全文搜索的关键字或术语,例如使用如上所述的倒序索引。控件604可以是可以将数据源彼此区分的类别、提供者或其他非全文本字段的下拉列表(由三角形指示)。当用户激活例如按钮的搜索控件606时可执行搜索,或者当用户在控件602和604中做出选择或者输入数据时可递增地执行搜索。在一些示例中,控件604或另一控件(为了简洁起见省略)可以允许实体304从由实体304指定的“最爱”或“加星标”数据源的列表中选择。 [0190] 搜索结果控件608可以包括与控件602和604中提供的术语匹配的表格、网格、分层树、列表框,例如可滚动列表框、或其他数据源列表。搜索结果控件608可以用作数据源选择控件,从而允许用户点击、选择、核对或以其他方式指定要在作业中使用的一个或多个数据源。 [0191] 注释控件610可以包括例如允许用户输入对作业(或数据源或目标,如上所述,且贯穿全文同样如此)的注释的自由形式多行文本区域。注释控件610可以附加或替代地允许添加非文本注释,例如描述作业目的的PDF文档。作业名称控件612可以包括例如允许用户输入作业的名称的文本输入控件。如上所讨论的,作业名称和注释可以被存储在元数据储存库234中并且被搜索以便促进使用作业结果作为另一作业的数据源。 [0192] 示例UI 600包括针对两个准则中的每个准则的三个查询准则控件。控件和准则的数量是一个示例而不是限制性的。查询准则控件可以提供例如对于构建SQL语句中的WHERE子句有用的信息,例如,如上面参考过滤器404讨论的。解说的第一准则包括字段控件614、运算符控件616和值控件618。解说的第二准则包括字段控件620、运算符控件622和值控件 624。字段控件614和620可以从数据源接收对字段的选择(例如字段的名称)。运算符控件 616和622可以接收用于应用于各个字段中的值的运算符的选择,例如关系运算符。值控件 618和624可以接收值,各个字段中的值应该与所接收的值进行比较。在表2的示例中,准则1可以在字段控件614中选择“PRODUCT”,在运算符控件616中选择“等于”,并且在值控件618中选择“WINDOWS 10”。 [0193] 示例UI 600还包括两个结果字段中的每个结果字段的三个结果字段控件。结果字段控件可以提供例如指示作业意图提供的结果或分析的信息,例如,如上面参考提取器406和408、运算符410和412以及重命名器414和416所讨论的。所解说的第一结果控件包括源字段控件626、函数控件628和结果名称控件630。所解说的第二结果控件包括源字段控件632、函数控件634和结果名称控件636。源字段控件626和632可以接收数据源的字段的名称,例如,如上面参考提取器406和408所讨论的。函数控件628和634可以接收要应用于各个字段的值的函数的选择或名称,例如,如上参考运算符410和412所讨论的。结果名称控件630和 636可以接收指示作业的所得到的输出值应承载的名称的文本。在表2的示例中,源字段控件626可以具有对“OrderTime”字段的选择,函数控件628可以具有对函数“RoundToDay”的选择或指示,并且结果名称控件630可以具有文本“Date”。 [0194] 所解说的UI 600还包括查询显示控件638,在此示例中查询显示控件638是标记为“Show Query(显示查询)”的按钮。查询显示控件638可以经由UI 600呈现针对所提供的作业规范而产生的查询或者当被致动时导致该查询被呈现。例如,当实体304按下“显示查询”按钮时,呈现模块274可以在弹出窗口或其他用户界面控件中显示所产生的SQL、U-SQL、JAVA或其他脚本、程序或查询的部分。这可以允许用户以UI 600未提供的方式修改查询,或者学习对于在其中运行查询的特定数据库环境有用的查询技术。 [0195] 在一些示例中,作业规范可以指定来自两个或更多数据源的查询数据,这被称为数据源之间的“连接”。连接可以包括例如SELECT语句中的SQL JOIN子句或用于从两个或更多数据源检索相关信息的其他技术。所解说的UI 600示出了用于指定连接的示例用户界面控件。 [0196] 所解说的UI 600包括连接控件640-646。连接类型控件640可以接收连接的类型的选择,例如,SQL INNER JOIN(SQL内部连接)、LEFT OUTER JOIN(左外部连接)或RIGHT OUTER JOIN(右外部连接)。第一源字段控件642可以接收将用于定位相关数据记录的第一所选数据源的字段的选择。连接运算符控件644可以接收要用于定位相关数据记录的运算符的选择。第二源字段控件646可以接收将用于定位相关数据记录的第二所选数据源的字段的选择。然后作业规范可以指示过滤器404(或分开的连接模块,且在全文中同样如此)提供数据记录,其中控件642中指示的字段的值与控件646中指示的字段的值具有控件644中指示的关系。基于在控件640中指示的连接的类型,过滤器404可以仅提供那些数据记录,或者可以提供那些数据记录且附加地提供其他数据记录(例如,其中控件642或646中指示的字段的值为NULL(空)的记录)。 [0197] 在所解说的UI 600和本文描述或示出的其它示例中,字段控件(例如,614或642)或值控件(例如,618,624)可以支持具有各种数据组织的字段。示例数据组织可以包括标量,例如单个字符串或数字值;具有命名子字段的记录类型;具有多个编号的子字段的数组类型,或其任何组合。例如,“汽车”字段的数据组织可以是具有用于颜色、引擎排量和立体声功率的字段的记录。汽车记录可以进一步包括具有用于每个车轮的轮胎压力的相应值的数组子字段。在一些示例中,字段控件或值控件可以允许用户在字段内指定特定子字段(或子子字段、...),或者为特定子字段(或子子字段、...)指定值。 [0198] 说明性过程 [0199] 图7是示出用于操作数据库的示例过程700的流程图。图7和本文中的其它流程图和示例过程所示的示例功能可以在一个或多个计算设备102或104(例如计算设备200)中实现或者以其它方式体现在这些计算设备中(例如,使用在这些设备上运行的软件)。出于解说的目的,以下参考可执行或参与该示例性方法的各步骤的图2的计算设备200的处理单元 224和其它组件来描述示例过程700。然而,诸如处理单元112等其它处理单元和/或计算设备102或104的其它组件可执行诸如过程700等所描述的示例过程的各步骤。类似地,图8-14所示的示例性方法也不限于由任何特别标识的组件来执行。 [0200] 每一示例流程图或过程中描述操作的次序并不旨在解释为限制,并且任何数量的所描述的操作可以按任何次序和/或并行组合以实现每一过程。如上所述,除了任何特别标识的项或任何给定项组中的其他项之外,上述操作中的任一操作可以对其他项执行。例如,下面讨论的框704可以使用少于所有所确定的数据操纵来操作或执行。 [0201] 此外,图7-14中的每一者中的操作可以用硬件、软件和/或其组合来实现。在软件的上下文中,各个操作表示在由一个或多个处理器执行时使得一个或多个处理器执行既定操作的计算机可执行指令。在硬件的上下文中,操作表示在电路中实现的逻辑功能,例如数据路径控制和有限状态机定序功能。 [0202] 在一些示例中,在框702处,可以至少部分地基于作业规范来确定一个或多个数据操纵。多个数据源中的一个或多个可以与作业规范相关联。以上参考操纵模块248描述了一些示例。 [0203] 在一些示例中,在框704处,对于各数据操纵中的个体数据操纵,可以至少部分地基于与作业规范相关联的个体数据源的元数据来确定一个或多个数据处理指令。以上参考指令模块250描述了一些示例。 [0204] 在一些示例中,在框706处,可以通过至少部分基于作业规范来组装数据处理指令来确定查询。以上参考查询模块252描述了一些示例。 [0205] 在框708处,可以例如通过至少部分地基于查询来访问来自各数据源中的个体数据源的数据来执行查询以提供查询结果。以上参考执行模块254描述了一些示例。 [0206] 图8是解说用于搜索数据库232的示例过程800的流程图。一些示例包括搜索元数据储存库234。 [0207] 在框802处,可以接收搜索请求。搜索请求可以包括一个或多个搜索关键字,并可以指示多个数据源。以上参考接收模块262描述了一些示例。 [0208] 在框804处,可以至少部分地基于多个数据源中的一些数据源之间的生产者-消费者关系来确定数据源中的一些数据源的相应权重。以上参考加权模块264描述了一些示例。 [0209] 在框806处,可以使用搜索关键字和确定的权重来搜索数据源的元数据,以标识与搜索请求相对应的匹配数据源。以上参考搜索模块266描述了一些示例。 [0210] 在框808处,可以至少部分地基于所确定的权重来确定匹配数据源(为了简洁将其称为“匹配”)中的至少两个匹配数据源的排名信息。以上参考搜索模块266描述了一些示例。 [0211] 在框810处,可以传送数据源中的匹配数据源的标识信息。也可以传送排名。以上参考传送模块268描述了一些示例。 [0212] 图9是解说用于搜索数据库232的示例过程900的流程图。一些示例包括搜索元数据储存库234。框804可以包括框902或者在框902之前。框810可以包括框906或者在框906之后或之前。 [0213] 在框902处,可以至少部分地基于至少数据源的类型来过滤数据源的元数据以标识数据源中的候选数据源。以上参考搜索模块266描述了一些示例。 [0214] 在一些示例中,框904可以包括至少部分地基于至少一些搜索关键字从候选数据源中选择匹配数据源。框904的其他功能可以如以上参考框806所讨论的。以上参考搜索模块266描述了一些示例。框904可以在框810之前。 [0215] 在框906处,可以至少部分地基于数据源中的至少一些匹配数据源的类型或来源来对至少一些匹配数据源进行编组以提供编组信息。以上参考搜索模块266和传送模块268描述了一些示例。 [0216] 在框908处,或者作为框810的部分,编组信息可以与标识信息和排名信息相关联地被传送。以上参考传送模块268描述了一些示例。 [0217] 在一些示例中,框804可包括框910和912。 [0218] 在框910处,对于数据源中的所选数据源,可以至少部分地基于数据源的元数据来确定所选数据源的消费者的数量。以上参考加权模块264描述了一些示例。 [0219] 在框912处,可以至少部分地基于消费者的数量并且与消费者的数量正相关地确定所选数据源的相应权重。以上参考加权模块264描述了一些示例。可以针对一个或多个数据源中的每一个执行框910和912。 [0220] 图10是解说用于更新数据库的示例过程1000的流程图。 [0221] 在框1002处,可以从数据流接收数据记录。以上参考检索模块240描述了一些示例。 [0222] 在框1004处,可以确定数据记录的结构信息和数据记录的内容信息。以上参考元数据模块242描述了一些示例。 [0223] 在框1006处,可以至少部分地基于结构信息来确定数据源标识符。以上参考元数据模块242描述了一些示例。 [0224] 在框1008处,可以将内容信息与数据源标识符相关联地存储到数据库232中。以上参考存储模块244描述了一些示例。 [0225] 在一些示例中,框1008之后可以是框1002。以这种方式,当附加数据记录可用时,可以如框1002-1008中所述处理附加数据记录。相应地,在一些示例中,过程1000可以包括从数据流接收多个数据记录,所述多个记录包括该数据记录(框1002)。 [0226] 在一些示例中,框1006或框1008可以在图7的框702、704、706或708中的至少一个之前或者可以包括图7的框702、704、706或708中的至少一个的功能。例如,来自框1006的数据源标识符可以被包括于在框702中处理的作业规范中。这可以允许针对新接收信息运行作业。在一些示例中,在框1006或框1008之后,数据操纵可以至少部分地基于作业规范来确定,其中通过在框1006中确定的数据源标识符标识的数据源与作业规范相关联(例如如在框702中)。数据处理指令可以至少部分地基于数据操纵和数据源的至少一些元数据来确定(例如,如在框704中)。可以至少部分基于作业规范从数据处理指令确定查询(例如,如在框 706中)。该查询可以通过至少部分地基于该查询访问来自数据源的数据来执行,以提供查询结果(例如,如在框708中)。 [0227] 在一些示例中,框1006或框1008可以在图8的框802、804、806、808或810中的至少一个之前或者可以包括图8的框802、804、806、808或810中的至少一个的功能。这可以允许搜索新到达记录,例如,在UI 600最初被呈现之后但在实体304完成作业规范之前到达的记录。在一些示例中,在框1006或框1008之后,可以接收搜索请求(例如,如在框802中)。搜索请求可以包括一个或多个搜索关键字,并可以指示多个数据源。该多个数据源可以包括由在框1006中确定的数据源标识符标识的第一数据源。第一数据源的权重可至少部分地基于该多个数据源中的至少两个数据源之间的生产者-消费者关系来确定(例如,如在框804中)。与该多个数据源中的至少一个数据源(例如,第一数据源)相关联的元数据可以使用搜索关键字来搜索以标识该多个数据源中的匹配数据源,其中所述匹配数据源对应于搜索请求(例如,如在框806中)。所述多个数据源的至少所述第一数据源和所述第二数据源的排名信息可至少部分地基于所确定的权重来确定(例如,如在框808中)。可以传送匹配数据源的标识信息和排名信息(如在框810中)。 [0228] 图11是解说用于更新数据库的示例过程1100的流程图。在一些示例中,框1002可包括框1102或1104-1106。在一些示例中,框1004可包括框1108和1110。 [0229] 在框1102处,可以向数据流请求数据记录。以上参考检索模块240描述了一些示例。 [0230] 在框1104处,可以与数据流建立网络连接。以上参考检索模块240描述了一些示例。 [0231] 在框1106处,可以经由网络连接来接收数据记录。以上参考检索模块240描述了一些示例。 [0232] 在框1108处,可以解析接收的数据记录以定位接收的数据记录中的一个或多个字段名称和一个或多个字段关系。以上参考元数据模块242描述了一些示例。 [0233] 在框1110处,可以组装字段名称和字段关系以提供结构信息。以上参考元数据模块242描述了一些示例。 [0234] 如上所述,在一些示例中,框1008之后可以是框1002(图10),例如以处理多个数据记录。在一些示例中,过程1000或1100可以包括从数据流接收多个数据记录,所述多个记录包括该数据记录。这可以如以上参考框1002所描述的那样完成。相应地,框1004可以包括确定所述多个数据记录中的各个体数据记录的相应结构信息记录,所述相应结构信息记录中的一个结构信息记录包括所述数据记录的结构信息。 [0235] 图12是解说用于更新数据库的示例过程1200的流程图。在一些示例中,框1006可包括框1202或框1204-1208。相应地,在图12上,框1006中的处理可以以框1202或框1204开始。框1006可以在框1210或框1212之前。 [0236] 在框1202处,可以查询元数据储存库234中的与结构信息相对应的数据源标识符。 以上参考元数据模块242描述了一些示例。 [0237] 在框1204处,可以查询元数据储存库234以确定结构信息是否在元数据储存库234中被表示。以上参考元数据模块242描述了一些示例。如果结构信息没有在元数据储存库 234中被表示,则框1204之后可以是框1206。如果结构信息在元数据储存库234中被表示,则框1204之后可以是框1208。 [0238] 在框1206处,响应于在元数据储存库中缺少或未找到结构信息,可以将结构信息添加到元数据储存库。以上参考元数据模块242描述了一些示例。 [0239] 在框1208处,可以从元数据储存库接收对应于结构信息的数据源标识符。以上参考元数据模块242描述了一些示例。在一些示例中,可以在单个框中执行框1206和框1208的功能。 [0240] 在框1210处,可以存储内容信息,例如,如以上参考框1008所讨论的。框1210可以包括框1210或者在框1210之后或之前。如上所述,在一些示例中,框1008之后可以是框1002(图10),例如以处理多个数据记录。 [0241] 在框1212处,可以确定各个结构信息记录的一个或多个代表性结构信息记录或从各个结构信息记录确定一个或多个代表性结构信息记录。各个体代表性结构信息记录(例如每个代表性结构信息记录)可以与相应的数据源标识符相关联并且可以对应于各个体数据记录中的一个或多个数据记录,例如,如上面参考元数据模块242所讨论的。在一示例中,从航空遥测数据流接收两种不同类型的数据记录:包含经度和纬度的位置记录,以及包括冷却剂温度和油压的引擎记录。位置记录可以与包括例如字段名称“纬度”和“经度”的第一代表性结构信息记录相关联。引擎记录可以与包括例如字段名称“温度”和“压强”的第二代表性结构信息记录相关联。 [0242] 在框1212处或在框1212之后的框1210处,可以将各个体数据记录与相应代表性结构信息记录的数据源标识符相关联地存储到数据库中(例如,如在框1008中)。这可以允许将具有相同结构信息的记录与相同数据源标识符相关联地存储在数据库中,这可促成那些记录的搜索。 [0243] 图13是解说用于更新元数据储存库234的示例过程1300的流程图。 [0244] 在框1302处,可以呈现用户界面,例如网页或对话框。UI可以包括一个或多个查询准则控件和一个或多个结果字段控件。以上参考图6的UI 600描述了一些示例。以上参考呈现模块274描述了一些示例。 [0245] 在框1304处,经由用户界面接收作业规范的信息。作业规范包括至少一个查询准则和至少一个结果字段规范。以上参考呈现模块274描述了一些示例。 [0246] 在框1306处,可以在用户界面中呈现注释控件,例如注释控件610。以上参考呈现模块274描述了一些示例。 [0247] 在框1308处,可以经由用户界面接收注释数据。以上参考呈现模块274描述了一些示例。 [0248] 在框1310,作业规范的信息可以与注释数据相关联地存储在元数据储存库234中。 以上参考传送模块276描述了一些示例。 [0249] 图14是解说用于搜索元数据储存库234的示例过程1400的流程图。框1310之后可以是框1402。 [0250] 在框1402处,可以在用户界面中呈现数据源搜索控件。以上参考呈现模块274描述了一些示例。 [0251] 在框1404,可以经由用户界面接收一个或多个搜索关键字。以上参考呈现模块274描述了一些示例。 [0252] 在框1406处,可以搜索元数据储存库以寻找匹配搜索关键字的数据源以提供匹配数据源。搜索可以至少包括搜索存储的注释数据。这可如例如以上参考图8或9讨论的那样完成。注释数据可以作为仅包含注释数据的不同元数据字段被存储或搜索,或者可以与其他元数据被一起存储或搜索。例如,在框1406处,可至少部分地基于数据源的至少两个数据源之间的生产者-消费者关系来确定各数据源中的数据源的权重,例如如在框804中。可以至少部分基于所确定的权重来确定匹配数据源中的至少两个匹配数据源的排名信息,例如如在框808中。可以在用户界面中呈现匹配数据源中的至少两个匹配数据源的排名信息。例如,匹配数据源中的至少两个匹配数据源可以呈现在图6的搜索结果控件608中,其中排名较高的数据源在视觉上位于排名较低的数据源之上。 [0253] 在框1408处,可以经由用户界面呈现匹配数据源的标识信息。以上参考呈现模块 274描述了一些示例。在一些示例中,匹配数据源中的一个匹配数据源可以是先前例如由实体304提供的作业规范。在这些示例中的一些示例中,框1408之后可以是框1410。 [0254] 在框1410处,可以经由用户界面接收第二作业规范。第二作业规范可以包括作业规范作为数据源的指定。以上参考呈现模块274描述了一些示例。 [0255] 解说性界面 [0256] 图15是用于摄取作业的示例用户界面(UI)1500的图形表示,例如,如上面参考摄取引擎202、规范引擎210和交互引擎214的模块所讨论的。一些控件可以如上所讨论的参考图6,如由部件编号所指示的。示例UI 1500可以接收任何数量的字段的指示以摄取到数据库232中。 [0257] 示例UI 1500的输入字段控件可以包括接收要放置到数据源中的字段的名称的字段名称控件1502、1504、1506和1508。尽管被示出为输入控件,但是控件1502-1508中的至少一些可以是选择控件,例如用于从提供数据记录的数据源使用的名称中进行选择。此示例中的输入字段控件还包括用于接收要分别应用于控件1502-1508中命名的字段的处理选项的选项控件1510、1512、1514和1516。示例选项至少可包括保留水印、去除水印、转义字段值(例如,添加引号或反斜杠)、消除字段值、更改文本编码(例如,规范化Unicode或在UTF-8和UTF-16之间转换)、压缩、解压缩、混淆、去混淆、加密或解密。 [0258] 所解说的UI 1500还包括作业调度字段1518-1524。本文中的其他示例UI(例如UI  600)可以包括作业调度字段1518-1524。尽管被示出为选择字段,但作业调度字段1518- 1524中的至少一些可以是输入字段。可以使用比此处显示的更多、更少或不同的作业调度字段。 [0259] 在所解说的示例中,作业类型字段1518可以接收作业是否例如尽可能快地运行一次、按时间表运行一次、或者按时间表运行多次的指示。作业频率字段1520可以接收作业应该多频繁地运行的指示,例如每小时、每天、每周、每隔一周或每第三个周四。作业持续时间字段1522可以接收作业应该何时停止运行的指示,例如在n次运行(n≥1)之后或者在特定日期之后。数据及时性字段1524可以接收作业的每次运行中应该使用哪些数据的指示,例如,昨天的数据、上个月的数据或直到作业开始运行的时间的数据。 [0260] 运行控件1526在被致动时可以使传送模块276将作业规范传送到例如操纵模块 248以用于作业规范的处理。本文中的其他UI(例如,UI 600)也可以具有运行控件1526。 [0261] 图16是用于导出作业的示例用户界面(UI)1600的图形表示,例如,如上面参考交互引擎214和报告引擎208的模块所讨论的。一些控件可以如上所讨论的参考图6,如由部件编号所指示的。示例UI 1600可以接收任何数量的字段的指示以从数据库232导出。 [0262] 在一些示例中,搜索控件1602或增量搜索可以搜索所有数据源,或者仅搜索分析作业的输出、或其组合。在一些示例中,即使该作业尚未被添加到元数据储存库234中作为数据源,搜索结果控件1604也可以接收要导出的分析作业的指示。上面参考搜索控件606讨论了搜索控件1602的其他功能,并且参考搜索结果控件608讨论了搜索结果控件1606的其他功能。 [0263] 所解说的UI 1600的输出字段控件可以包括接收要放置到数据源中的字段的名称的字段名称控件1606、1608、1610和1612。尽管被示出为输入控件,但是控件1606-1612中的至少一些可以是选择控件,例如用于从提供数据记录的数据源或作业使用的名称中进行选择。此示例中的输出字段控件还包括用于接收要分别应用于控件1606-1612中命名的字段的选项的选项控件1614、1616、1618和1620。这些选项可以包括在导出之前应用于该字段的处理选项,例如上面参考选项控件1510-1516描述的任何选项。这些选项可以附加地或替代地包括专用于特定输出格式的选项,例如,要作为用于SQL导出的主键的一个或多个字段的指定、在输出中要被索引的一个或多个字段的指定、或者文本字段的对照序列或最大长度,诸如SQL VARCHAR字段。 [0264] 所解说的UI 1600可以包括输出格式控件1622,例如选择或输入控件,其接收诸如SQL、CSV或上述其他格式的输出格式的选择。输出选项控件1624可以接收作为整体适用于输出的选项,例如分隔符(如逗号、制表符或管道)、行结束符(例如回车符、换行符或二者)、文本文件编码、或压缩。目的地控件1626可以接收存储输出数据的位置的指示,例如数据库连接字符串、统一资源定位符(URL)、文件名或路径、统一命名约定(UNC)路径、电子邮件地址、邮政地址或其他目的地标识符。 [0265] 所解说的UI 1600可以包括添加最爱控件1628,如搜索结果控件1604中所示的星号所解说的。添加最爱控件1628在被操作时可以将搜索结果控件1604中的所选数据源添加到实体304或所解说的UI 1600的其他用户的“最爱”列表。所解说的UI 1600可以包括显示最爱控件1630,例如按钮或下拉列表。显示最爱控件1630在被操作时可以呈现实体304的最爱的列表,例如,使用添加最爱控件1628如此指定的。例如,当显示最爱控件1630被操作时可以在搜索结果控件1604中显示最爱。允许实体或其他用户指定和检索最爱可以允许实体或其他用户容易地从例如频繁使用数据源中进行选择。 [0266] 示例条款 [0267] A:一种系统,包括:其上具有多个模块的至少一个计算机可读介质;以及至少一个处理单元,所述至少一个处理单元可操作地耦合到所述计算机可读介质中的一个或多个计算机可读介质,所述至少一个处理单元被配置为访问来自一个或多个数据源的数据,并且被适配成执行所述多个模块中的模块,所述多个模块包括:构造引擎的至少一个模块,其被配置为:至少部分地基于作业规范来确定数据操纵,其中所述一个或多个数据源中的至少一个数据源与所述作业规范相关联;至少部分地基于所述数据操纵和所述一个或多个数据源中的所述至少一个数据源的至少一些元数据来确定数据处理指令;以及至少部分地基于所述作业规范来确定来自所述数据处理指令的查询;以及执行引擎的至少一个模块,其被配置为:通过至少部分地基于所述查询来访问来自所述一个或多个数据源的至少一个数据源的数据而执行所述查询以提供查询结果。 [0268] B:如段落A所述的系统,其中所述构造引擎被进一步配置为:确定多个数据操纵,所述多个数据操纵包括所述数据操纵;至少部分地基于所述多个数据操纵中的各个数据操纵来确定多个数据处理指令,所述多个数据处理指令包括所述数据处理指令;确定所述多个数据操纵中的至少两个所述数据操纵的相对次序,其中所述数据处理指令中的至少两个数据处理指令分别对应于至少两个所述数据操纵;以及进一步通过根据所确定的相对次序组装至少两个所述数据处理指令来确定所述查询。 [0269] C:如段落A或B所述的系统,其中所述构造引擎被进一步配置为通过以下来确定所述数据处理指令:检索对应于所述数据操纵的存储的模板;以及至少部分地基于所述一个或多个数据源中的所述至少一个数据源的所述至少一些元数据填充所述存储的模板中的至少一个字段以提供所述数据处理指令中的所述至少一个数据处理指令。 [0270] D:如段落A-C中的任一项所述的系统,所述多个模块进一步包括摄取引擎的至少一个模块,其被配置为:检索数据记录;确定对应于所述数据记录的元数据,所述元数据包括指示所述一个或多个数据源中的至少一个数据源的数据源标识符;以及将所述元数据与所述数据源标识符相关联地存储在元数据储存库中。 [0271] E:如段落D所述的系统,其中所述摄取引擎被配置为通过从所述数据提取属性值或关系来确定所述元数据。 [0272] F:如段落A-E中的任一项所述的系统,所述多个模块进一步包括报告引擎的一个或多个模块,其被配置为:至少部分基于所述作业规范来确定输出格式;确定第二数据处理指令以根据所述输出格式执行查询结果的复制、移动或变换中的至少一者;以及至少部分地基于所述输出格式来执行所述第二数据处理指令以提供对应于所述查询结果的报告的数据。 [0273] G:如段落A-F中的任一项所述的系统,其中所述报告引擎被进一步配置为产生指示报告的数据已被提供的通知。 [0274] H:如段落A-G中任一项所述的系统,其特征在于,所述多个模块进一步包括至少一个模块,其被配置为:提供包括数据源选择控件、查询准则控件和结果字段控件的用户界面;以及经由所述用户界面接收所述作业规范。 [0275] I:如段落A-H中任一项所述的系统,其中所述执行模块被配置为根据所述作业规范中的信息多次执行所述查询。 [0276] J:如段落A-I中任一项所述的系统,其中所述执行模块被配置为根据所述作业规范中指示的时间表多次执行所述查询。 [0277] K:如段落A-J中任一项所述的系统,其中所述作业规范包括及时性信息,并且所述构造引擎或所述执行引擎中的至少一者被配置为至少部分地基于所述及时性信息过滤来自所述数据源中的至少一个数据源的数据。 [0278] L:一种计算机实现的方法,包括:接收包括一个或多个搜索关键字并指示多个数据源的搜索请求;至少部分地基于所述多个数据源中的至少两个数据源之间的生产者-消费者关系来确定所述多个数据源中的第一数据源的权重;使用所述搜索关键字来搜索与多个数据源中的至少一个数据源相关联的元数据以标识所述多个数据源中的匹配数据源,其中所述匹配数据源对应于所述搜索请求;至少部分地基于所确定的权重来确定所述多个数据源中的至少所述第一数据源和第二数据源的排名信息;以及传送所述匹配数据源的标识信息和所述排名信息。 [0279] M:如段落L所述的计算机实现的方法,其中确定所述权重包括:至少部分地基于所述数据源的所述元数据确定所述第一数据源的消费者的数量;以及至少部分地基于所述消费者的数量来确定所述第一数据源的权重,其中所确定的相应权重与所述消费者的数量正相关。 [0280] N:如段落L或M所述的计算机实现的方法,其中所述搜索进一步包括:至少部分地基于至少数据源的类型来过滤所述元数据以标识所述多个数据源中的候选数据源;以及至少部分地基于所述搜索关键字中的至少一些搜索关键字从所述候选数据源中选择匹配数据源。 [0281] O:如段落L-N中任一项所述的计算机实现的方法,进一步包括:至少部分地基于所述匹配数据源中的至少一些匹配数据源的至少类型或来源来将所述匹配数据源中的所述至少一些匹配数据源编组以提供编组信息;以及将所述编组信息与所述标识信息和所述排名信息相关联地传送。 [0282] P:一种其上具有计算机可执行指令的计算机可读介质,所述计算机可执行指令在执行之际将计算机配置成执行操作,所述操作包括:从数据流接收数据记录;确定所述数据记录的结构信息和所述数据记录的内容信息;至少部分地基于所述结构信息来确定数据源标识符;以及将所述内容信息与所述数据源标识符相关联地存储到数据库中。 [0283] Q:如段落P所述的计算机可读介质,用于确定所述数据源标识符的操作包括:确定所述结构信息是否在元数据储存库中被表示;响应于所述结构信息从所述元数据储存库中缺失,将所述结构信息添加到所述元数据储存库;以及从所述元数据储存库接收对应于所述结构信息的数据源标识符。 [0284] R:如段落P或Q所述的计算机可读介质,用于确定所述数据源标识符的操作包括向所述元数据储存库查询对应于所述结构信息的所述数据源标识符。 [0285] S:如段落P-R中任一项所述的计算机可读介质,用于接收所述数据记录的操作包括向所述数据流请求所述数据记录。 [0286] T:如段落P-S中的任一项所述的计算机可读介质,用于接收所述数据记录的操作包括:与所述数据流建立网络连接;以及经由所述网络连接接收所述数据记录。 [0287] U:如段落P-T中的任一项所述的计算机可读介质,用于确定所述结构信息的操作包括:解析所接收的数据记录以定位所接收的数据记录中的字段名称和字段关系;以及组装所述字段名称和所述字段关系以提供所述结构信息。 [0288] V:如段落P-U中的任一项所述的计算机可读介质,所述操作进一步包括:从所述数据流接收多个数据记录,所述多个记录包括所述数据记录;确定所述多个数据记录中的个体数据记录的相应结构信息记录,所述数据记录的所述相应结构信息记录包括所述结构信息;确定所述相应结构信息记录的代表性结构信息记录,所述代表性结构信息记录与相应数据源标识符相关联并对应于所述个体数据记录中的一个或多个数据记录;以及将所述个体数据记录中的至少一个数据记录与所述代表性结构信息记录的数据源标识符相关联地存储到所述数据库中。 [0289] W:如段落P-V中的任一项所述的计算机可读介质,所述操作进一步包括:至少部分地基于作业规范来确定数据操纵,其中由所述数据源标识符标识的数据源与所述作业规范相关联;至少部分地基于所述数据操纵和所述数据源中的至少一些元数据来确定数据处理指令;至少部分地基于所述作业规范来确定来自所述数据处理指令的查询;以及通过至少部分地基于所述查询来访问来自所述数据源的数据而执行所述查询以提供查询结果。 [0290] X:如段落P-W中的任一项所述的计算机可读介质,所述操作进一步包括:接收包括一个或多个搜索关键字并指示多个数据源的搜索请求,其中所述多个数据源包括由所述数据源标识符标识的第一数据源;至少部分地基于所述多个数据源中的至少两个数据源之间的生产者-消费者关系来确定所述第一数据源的权重;使用所述搜索关键字来搜索与多个数据源中的至少一个数据源相关联的元数据以标识所述多个数据源中的匹配数据源,其中所述匹配数据源对应于所述搜索请求;至少部分地基于所确定的权重来确定所述多个数据源中的至少所述第一数据源和第二数据源的排名信息;以及传送所述匹配数据源的标识信息和所述排名信息。 [0291] Y:一种计算机实现的方法,包括:呈现包括至少一个查询准则控件和至少一个结果字段控件的用户界面;经由所述用户界面接收作业规范的信息,所述作业规范包括查询准则和结果字段规范;在所述用户界面中呈现注释控件;经由所述用户界面接收注释数据; 以及将所述作业规范的信息与所述注释数据相关联地存储在所述元数据储存库中。 [0292] Z:如段落Y所述的计算机实现的方法,进一步包括:在所述用户界面中呈现数据源搜索控件;经由所述用户界面接收搜索关键字;以及在所述元数据储存库中搜索与所述搜索关键字匹配的数据源以提供匹配数据源,其中所述搜索至少包括搜索存储的注释数据; 以及在所述用户界面中呈现所述匹配数据源的标识信息。 [0293] AA:如段落Z所述的计算机实现的方法,其中所述匹配数据源包括所述作业规范,所述方法进一步包括:在呈现所述标识信息之后,经由所述用户界面接收包括所述作业规范作为数据源的指定的第二作业规范。 [0294] AB:如段落Z或AA所述的计算机实现的方法,进一步包括:至少部分地基于所述数据源中的至少两个数据源之间的生产者-消费者关系来确定所述数据源中的数据源的权重;至少部分地基于所确定的权重来确定至少两个所述匹配数据源的排名信息;以及在所述用户界面中呈现所述至少两个所述匹配数据源的所述排名信息。 [0295] AC:一种系统,包括:用于接收包括一个或多个搜索关键字并指示多个数据源的搜索请求的装置;用于至少部分地基于所述多个数据源中的至少两个数据源之间的生产者-消费者关系来确定所述多个数据源中的第一数据源的权重的装置;用于使用所述搜索关键字来搜索与多个数据源中的至少一个数据源相关联的元数据以标识所述多个数据源中的匹配数据源的装置,其中所述匹配数据源对应于所述搜索请求;用于至少部分地基于所确定的权重来确定所述多个数据源中的至少所述第一数据源和第二数据源的排名信息的装置;以及用于传送所述匹配数据源的标识信息和所述排名信息的装置。 [0296] AD:如段落AC所述的系统,其中用于确定权重的装置包括:用于至少部分地基于所述数据源的所述元数据确定所述第一数据源的消费者的数量的装置;以及用于至少部分地基于所述消费者的数量来确定所述第一数据源的权重的装置,其中所确定的相应权重与所述消费者的数量正相关。 [0297] AE:如段落AC或AD所述的系统,其中用于搜索的装置进一步包括:用于至少部分地基于至少数据源的类型来过滤所述元数据以标识所述多个数据源中的候选数据源的装置; 以及用于至少部分地基于所述搜索关键字中的至少一些搜索关键字从所述候选数据源中选择匹配数据源的装置。 [0298] AF:如段落AC-AE中的任一项所述的系统,进一步包括:用于至少部分地基于所述匹配数据源中的至少一些匹配数据源的至少类型或来源来将所述匹配数据源中的所述至少一些匹配数据源编组以提供编组信息的装置;以及用于将所述编组信息与所述标识信息和所述排名信息相关联地传送的装置。 [0299] AG:一种系统,包括:用于呈现包括至少一个查询准则控件和至少一个结果字段控件的用户界面的装置;用于经由所述用户界面接收作业规范的信息的装置,所述作业规范包括查询准则和结果字段规范;用于在所述用户界面中呈现注释控件的装置;用于经由所述用户界面接收注释数据的装置;以及用于将所述作业规范的信息与所述注释数据相关联地存储在所述元数据储存库中的装置。 [0300] AH:如段落AG所述的系统,进一步包括:用于在所述用户界面中呈现数据源搜索控件的装置;用于经由所述用户界面接收搜索关键字的装置;以及用于在所述元数据储存库中搜索与所述搜索关键字匹配的数据源以提供匹配数据源的装置,其中所述搜索至少包括搜索存储的注释数据;以及用于在所述用户界面中呈现所述匹配数据源的标识信息的装置。 [0301] AI:如段落AH所述的系统,其中所述匹配数据源包括所述作业规范,所述系统进一步包括:用于在呈现所述标识信息之后,经由所述用户界面接收包括所述作业规范作为数据源的指定的第二作业规范的装置。 [0302] AJ:如段落AH或AI所述的系统,进一步包括:用于至少部分地基于所述数据源中的至少两个数据源之间的生产者-消费者关系来确定所述数据源中的数据源的权重的装置; 用于至少部分地基于所确定的权重来确定至少两个所述匹配数据源的排名信息的装置;以及用于在所述用户界面中呈现所述至少两个所述匹配数据源的所述排名信息的装置。 [0303] AK:其上具有计算机可执行指令的计算机可读介质(例如,计算机存储介质),该计算机可执行指令在被执行时将计算机配置成执行段落L-O中的任一项所述的操作。 [0304] AL:一种设备,包括:处理器;以及其上具有计算机可执行指令的计算机可读介质(例如,计算机存储介质),该计算机可执行指令在由处理器执行时将该设备配置成执行段落L-O中的任一项所述的操作。 [0305] AM:一种系统,包括:用于处理的装置;以及用于在其上存储有计算机可执行指令的装置,这些计算机可执行指令包括用于将该系统配置成执行如段落L–O中的任一项所述的方法的装置。 [0306] AN:一种计算机实现的方法,包括执行如段落P-X中任一项所述的操作。 [0307] AO:一种设备,包括:处理器;以及如段落L-O中的任一项所述的计算机可读介质,其中所述处理器被配置为执行所述计算机可读介质上的所述计算机可执行指令。 [0308] AP:其上具有计算机可执行指令的计算机可读介质(例如,计算机存储介质),该计算机可执行指令在被执行时将计算机配置成执行段落Y-AB中的任一项所述的操作。 [0309] AQ:一种设备,包括:处理器;以及其上具有计算机可执行指令的计算机可读介质(例如,计算机存储介质),该计算机可执行指令在由处理器执行时将该设备配置成执行段落Y-AB中的任一项所述的操作。 [0310] AR:一种系统,包括:用于处理的装置;以及用于在其上存储有计算机可执行指令的装置,这些计算机可执行指令包括用于将该系统配置成执行如段落Y–AB中的任一项所述的方法的装置。 [0311] 结语 [0312] 本文描述的各种数据库操作技术可允许更高效地将数据存储在数据库中,指定或执行查询,或报告查询的结果。各个方面可以提供减少的计算和用户负担来定位感兴趣记录的数据源。即使用户不知道查询构造的最佳实践,各方面也可以高效地应用这些实践。各示例可以将数据直接提供给用户的数据库客户端,从而减少数据库系统的临时存储需求。 [0313] 虽然已经用对结构特征和/或方法动作专用的语言描述了各项技术,但是应该理解,所附权利要求不必限于所述的特征或动作。相反,这些特征和动作是作为实现这些技术的示例形式而描述的。 [0314] 示例过程的操作在单独的框中示出,并且参考这些框来概括。这些过程被示为逻辑框流,其每个框可表示可用硬件、软件或其组合实现的一个或多个操作。在软件的上下文中,这些操作表示储存在一个或多个计算机可读介质上的计算机可执行指令,这些指令在由一个或多个处理器执行时使得一个或多个处理器执行既定操作。一般而言,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、模块、组件、数据结构等。描述操作的次序并不旨在解释为限制,并且任何数量的所述操作可以按任何次序执行、按任何次序进行组合、细分成多个子操作、和/或并行执行,以实现所描述的过程。可由与一个或多个计算设备102、104或200相关联的资源(诸如一个或多个内部或外部CPU或GPU)和/或硬件逻辑的一个或多个片段(诸如FPGA、DSP或上述的其他类型)来执行所描述的过程。 [0315] 上述所有方法和过程可以用由一个或多个通用计算机或处理器执行的软件代码模块来具体化,并且可经由这些软件代码模块来完全自动化。这些代码模块可以存储在任何类型的计算机可执行存储介质或其他计算机存储设备中。方法中的某些或全部可用专用计算机硬件来具体化。 [0316] 除非另外具体声明,否则在上下文中可以理解条件语言(诸如“能”、“能够”、“可能”、或“可以”)表示特定示例包括而其他示例不包括特定特征、元素和/或步骤。因此,这样的条件语言一般并非旨在暗示某些特征、元素和/或步骤以任何方式对于一个或多个示例是必需的,或者一个或多个示例必然包括用于在有或没有用户输入或提示的情况下决定某些特征、元素和/或步骤是否包括在任何特定示例中或将在任何特定示例中被执行的逻辑。 除非另外具体声明,应理解联合语言(诸如短语“X、Y或Z中至少一个”)表示项、词语等可以是X、Y或Z中的任一者、或其组合。 [0317] 本文所述和/或附图中描述的流程图中任何例程描述、元素或框应当被理解成潜在地表示包括用于实现该例程中具体逻辑功能或元素的一个或多个可执行指令的代码的模块、片段或部分。替换实现被包括在本文描述的示例的范围内,其中各元素或功能可被删除,或与所示出或讨论的顺序不一致地执行,包括基本上同步地执行或按相反顺序执行,这取决于所涉及的功能,如本领域技术人也将理解的。所有这样的修改和变型本文旨在被包括在本公开的范围内并且由所附权利要求书保护。

相关技术
数据数据库相关技术
数据源相关技术
N·内夫雷卡发明人的其他相关专利技术