CN109416688B - 用于灵活的高性能结构化数据处理的方法和系统 - Google Patents
用于灵活的高性能结构化数据处理的方法和系统 Download PDFInfo
- Publication number
- CN109416688B CN109416688B CN201780040375.2A CN201780040375A CN109416688B CN 109416688 B CN109416688 B CN 109416688B CN 201780040375 A CN201780040375 A CN 201780040375A CN 109416688 B CN109416688 B CN 109416688B
- Authority
- CN
- China
- Prior art keywords
- data
- file
- discrete
- structured
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 143
- 238000012545 processing Methods 0.000 title claims abstract description 71
- 230000008569 process Effects 0.000 claims description 62
- 238000004422 calculation algorithm Methods 0.000 claims description 26
- 230000000694 effects Effects 0.000 claims description 18
- 239000000872 buffer Substances 0.000 claims description 17
- 238000007781 pre-processing Methods 0.000 claims description 15
- 230000002123 temporal effect Effects 0.000 claims description 2
- 238000004458 analytical method Methods 0.000 abstract description 11
- 238000009826 distribution Methods 0.000 description 13
- 238000013459 approach Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000013479 data entry Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 230000002195 synergetic effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010205 computational analysis Methods 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 102000054765 polymorphisms of proteins Human genes 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000005549 size reduction Methods 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Operations Research (AREA)
- Computational Linguistics (AREA)
- Selective Calling Equipment (AREA)
Abstract
这里描述的是用于灵活的高性能结构化数据处理的方法和系统。该方法和系统包含用于在一个工作流中平衡和联合优化处理速度、资源利用率、灵活性、可扩展性和可配置性的技术。其应用的主要示例是例如LiDAR的空间数据和图像的分析。然而,本发明适用于各种尺寸和设置的大范围的结构化数据问题。
Description
技术领域
本发明涉及数据处理,特别涉及处理结构化数据的方法。尽管这里将特别参考该申请描述一些实施例,但是应当理解,本发明不限于这样的使用领域,并且可以在更广泛的背景下应用。
背景技术
在整个说明书中对背景技术的任何讨论决不应被认为是承认这种技术是众所周知的或形成本领域公知常识的一部分。
计算、通信和数据采集技术的巨大进步正在全世界跨多个领域被广泛采用,导致可用数据(所谓的“大数据”)以及使用该数据进行的分析水平的爆炸。这些海量数据流和数据集具有巨大的潜在价值,但其管理、处理和可视化已成为并将继续成为一项重大挑战,因为获取能力将继续超过分析能力。伴随大量的数据,其处理和分析本身是一项艰巨的任务,还需要适应各种各样的情景和快速、往往无法预测的变化。例如,在数据类型、格式、预期应用和计算能力上存在差异,这些差异在时间上不是静态的并且通常难以预测。
发明人已经认识到需要一种能够将高计算速度和资源利用率与灵活性相结合的解决方案,以适应任何给定场景中的数据分析需求和可用计算能力。它应该能够处理通知分析的所有数据,而不是被迫仅为了减小尺寸而对数据集进行抽取,并且可以轻松地适应新的场景,而无需进行大量的手动重新配置或进一步开发。它应该构成计算分析框架,其可以在高度可配置和高计算效率的工作流中读取、索引、清理、分析和输出具有一系列源、类型和格式的多维数据。
在该背景中的重要区别在于结构化和非结构化数据之间。现今捕获的大多数数据都是非结构化的。结构化数据的众多示例之一是空间数据,例如从LiDAR(光检测和测距)获得的空间数据和空中或地理参考图像(下面简称为“图像”)。以最佳方式解决结构化和非结构化数据问题需要不同的方法。在非结构化数据集中,关键的挑战是在大量看似随机的数据中找到有意义的模式和趋势,即结构。由于结构定义明确,可以更有效地存储、处理和分析大型结构化数据集,但它们在上述管理、处理和可视化方面存在相同的基本挑战。
有趣的是,出于规模和灵活性的原因,结构化数据越来越多地以非结构化方式存储。例如,系统记录的数值以XML或JSON格式存储。这些数据存储方法以有效存储和索引为代价提供了灵活性。高性能计算技术需要通过使用专门的索引方法来实现紧凑的数据结构和高度优化的数据访问。这样的数据集为用户或系统提供了重新施加结构的机会,从而提高了后续分析过程的效率。以非结构化方式存储的该结构化数据通常被称为半结构化数据。然而,出于本发明的目的,半结构化数据被认为是结构化数据,因为它能够被本发明有效地处理。
用于处理和存储大量非结构化数据的软件解决方案并不十分适合于在大型结构化数据集中联合优化处理速度、资源利用率、灵活性、可扩展性和可配置性的根本不同的问题。
结构化大数据问题的现有解决方案,例如,在发明人所知的空间域中,承受一个或多个以下缺点:
·它们无法适应并共同优化处理速度、资源利用率、灵活性、可扩展性和可配置性。它们在这些参数的一个或子集中是最佳的,而牺牲其他参数。
·它们可能需要多个程序和多个输入/输出功能来构成完整的系统,例如在管道方法中,而不是在一个完全集成的包中具有所有必需的功能。
·它们可能不是平台无关(platform agnostic)的,也无法利用计算机技术(诸如超级计算机和云)的进步,而无需对整个系统架构进行重大的重新设计。
·它们可能无法扩展到大规模数据集大小,因此需要对大型数据集进行简单的细化或分离,从而降低数据集的完整性、保真度和价值,并增加处理时间和相关的资源需求。
·它们可能无法利用可能可用的所有计算资源-无论是智能电话、笔记本电脑、台式机、服务器还是超级计算机-也无法自动适应不同的存储器、处理、操作系统和网络配置。
·它们可能不容易重新配置以响应新应用、新算法、新见解、新数据格式和第三方代码的合并的需求,也不利于通过简单的基于GUI的处理进行快速原型设计。
当寻求提供优化的结构化大数据解决方案时,所有上述方面是相互依赖的。发明人已经确定需要解决下一代计算平台的至少一些上述缺点。
发明内容
这里公开的本发明的优选实施例概述了用于灵活、高性能结构化数据处理的方法和系统。该方法和系统提供用于在一个工作流中平衡和联合优化处理速度、资源利用率、灵活性、可扩展性和可配置性的技术。其应用的主要示例是例如LiDAR的空间数据和图像的分析,其将在下面的描述中用作示例性实施例。然而,本领域技术人员将容易理解该解决方案在各种维度和设置中对各种结构化数据问题的适用性。
根据本发明的第一方面,提供了一种用于处理结构化数据的方法,该结构化数据被存储为包括多个离散数据文件的数据集,该方法包括:
访问存储结构化数据集的数据源;
预处理数据集以生成:
(a)指示包含在每个离散数据文件中的数据的一个或多个预定特征的参考文件;和
(b)指示一个或多个数据度量的元数据文件;以及
在从结构化数据集中选择要处理的数据时:
定义用于处理数据选择的插件连接;
动态地将数据处理任务分配给连接的计算机节点;和
对数据选择进行数据处理;和
生成数据选择的数据处理的输出。
在一个实施例中,预处理数据集的步骤与索引数据集一起发生。
在一个实施例中,预定特征包括数据集中的每个离散数据文件的数据边界和相关文件名。
在一个实施例中,该方法包括对离散数据文件进行预分类以计算一个或多个数据度量的步骤。在一个实施例中,对离散数据文件进行预分类包括从外部数据源获得补充信息。数据度量可以包括离散数据文件的区域度量。数据度量还可以包括离散数据文件中存在某些数据特征的可能性。数据度量还可以包括离散数据文件内的数据的点密度。数据度量可以包括离散数据文件内的数据的标准偏差。
在一个实施例中,预处理数据集的步骤包括以下步骤:
i)打开每个离散数据文件;
ii)确定每个离散数据文件的数据边界;和
iii)将每个离散数据文件的确定的数据边界和相关文件名存储在参考文件中。
在一些实施例中,结构化数据集是空间数据的数据集。在一个实施例中,空间数据包括从LiDAR导出的点云数据。在另一个实施例中,空间数据包括图像数据。在另一个实施例中,空间数据包括从图像导出的点云数据。
在一些实施例中,结构化数据集是时间序列数据的数据集。
在一些实施例中,该方法包括以下步骤:在处理来自结构化数据集的数据选择的请求时:
a)读取参考文件;和
b)对于指示数据选择的给定数据区域:
i)读取与给定数据区域对应的数据边界;
ii)将离散数据文件的数据边界与给定数据区域的数据边界进行比较;和
iii)读取至少部分地与给定数据区域重叠的离散数据文件。
在一些实施例中,该方法包括以下步骤:
对数据选择执行自动边缘效应消除。
在一个实施例中,自动边缘效应消除包括计算每个插件处的数据的最小所需额外缓冲区。优选地,自动边缘效应消除包括计算在每个插件处所有下游插件的总缓冲器
在一些实施例中,插件连接是多态插件连接。优选地,至少一个多态插件连接的输出是该多态插件连接的输入的导出类型。
根据本发明的第二方面,提供了一种预处理数据集的方法,该数据集包括由数据边界区分的多个离散数据文件,该方法包括:
a1)创建参考文件;
a2)打开离散数据文件;
a3)确定每个离散数据文件的数据边界;
a4)将数据边界与离散数据文件的标识符一起存储在参考文件中。
优选地,其中,在请求由用户处理来自数据集的数据选择时,计算机处理器能够:
b1)读取参考文件;
b2)读取与数据选择对应的数据边界;
b3)将离散数据文件的数据边界与数据选择的数据边界进行比较;和
b4)读取至少部分与数据选择的数据边界重叠的离散数据文件。
根据本发明的第三方面,提供了一种对数据集进行预分类的方法,该数据集包括由数据边界区分的多个离散数据文件,该方法包括:
a1)创建元数据文件;
a2)打开离散数据文件;
a3)将数据集划分为预定义的数据单元,并为每个数据单元确定至少一个数据度量;和
a4)将至少一个数据度量与每个数据单元的相关数据单元标识符和与每个数据单元相关联的离散数据文件的标识符相关联地存储在元数据文件中。
至少一个数据度量可以包括单个数据文件的数据包括特定空间、时间或光谱特征的可能性的度量。该至少一个数据度量还可以包括单个数据文件内的数据质量的度量。
在一些实施例中,在处理数据集时,将至少一个数据度量用作后续工作流分布控制的输入。
在一些实施例中,至少一个数据度量用于估计在任务分布过程期间的计算和RAM要求。
在一些实施例中,至少一个数据度量用于促进在数据集的分类期间算法和参数设置的动态选择。
根据本发明的第四方面,提供了一种将计算机资源分配给数据集上的数据处理操作的方法,该方法包括:
预处理数据集以生成包括数据集的特征的元数据文件;
将数据集划分为多个工作单元,每个工作单元指示数据集中包含的数据的子集;
基于数据集的特征创建预定大小的工作单元列表;
基于工作单元的大小和数据集的特征计算每个工作单元的计算复杂度;
确定每个工作单元的存储器要求;
确定连接的计算机节点的可用存储器;以及
基于可用存储器和运行的过程数将工作单元分配给连接的计算机节点进行处理。
在一个实施例中,合并或细分工作单元的步骤基于一个或多个连接的计算机节点的可用存储器。
根据本发明的第五方面,提供了一种在处理数据集期间减少边缘效应的方法,该方法包括:
确定包括通过一个或多个工作流路径互连的多个算法的工作流序列,每个工作流路径在处理流的方向上具有多个工作流阶段;
确定工作流序列中的每个算法的最小所需数据缓冲区大小;和
为每个算法定义任务,使得每个算法的输出的缓冲区大小等于或大于下游工作流路径中的算法所需的缓冲区大小的最大总和。
在一个实施例中,算法的缓冲区大小等于下游工作流路径中的算法的所需缓冲区大小的最大总和。
根据本发明的第六方面,提供了一种在基于插件的架构中执行自动工作流分布控制的方法,该方法包括:
识别分布式连接,其中具有对象项目的输出列表的第一插件连接到具有相同对象的单个项目输入的第二插件;和
对于每个分布式连接:
基于项目列表创建要处理的任务列表;
识别计算节点以分布式方式处理项目列表。
根据本发明的第七方面,提供了一种计算机系统,其被配置为执行根据前述方面中任一项的方法。
根据本发明的第八方面,提供了一种非瞬态载体介质,其被配置为保持指令,当载体介质被计算机读取时,计算机执行根据第一至第六方面中任一项的方法。
定义
在整个说明书中,以下术语旨在用以下含义来解释:
·结构化数据:基于预定义规则或约束将数据组织成预定义或可预测的数据结构。结构化数据通常以这样的格式呈现,使得具有相关规则或约束的知识的算法可以获得或容易地预测数据结构并提取相关数据。相反,非结构化数据不具有预定义或易于预测的结构和/或未基于预定义规则或约束来定义。诸如JPEG格式数据的格式化数字图像数据表示结构化数据的简单示例,因为其表示根据数字相机中的CCD传感器的二维相对空间位置组织的像素数据阵列。因此,基于空间位置来组织图像数据。结构化数据的其他示例包括关系数据库和电子表格。如上所述,术语“结构化数据”还包括传统上称为半结构化数据的内容。半结构化数据包括具有一些有限结构的数据集或以非结构化方式存储的结构化数据。标签或其他类型的标记用于标识数据内的某些元素,但数据没有严格的结构。在最广泛的意义上,本发明适用于以某种方式“可索引”的数据集。
·插件:执行特定任务或算法的离散元素。
·输出:插件产生的特定数据对象或数据对象列表。
·输入:馈入插件的特定数据对象或数据对象列表。
·连接:输出和输入之间的链接,其将插件相互附接。
·工作流:一组连接的插件。
·处理控制器:运行软件并执行主工作流的计算机/过程。
·计算节点:运行软件并执行从处理控制器发送的工作流的计算机/过程。
·数据区域:完整数据集的子集。
附图说明
现在将仅通过示例的方式参考附图描述本公开的优选实施例,在附图中:
图1是概述包括六个相互关联、协同和新颖的步骤的处理结构化数据的方法中的主要步骤的流程图;
图2是示出了图1的方法的步骤101的子步骤2的流程图;
图3是在已经执行预处理之前和之后的数据集的示意图;
图4示出了不使用用于多态插件连接的方法和系统的工作流的示例;
图5示出了使用用于多态插件连接的方法和系统的工作流的示例;
图6示出了插件连接的测试流程图,其示出了多态插件连接的原理;
图7是示出了用于自动工作流分布控制的方法和系统的工作流的示例;和
图8示出了其中性能损失最小的自动边缘效应消除的技术。
具体实施方式
系统总览
用于灵活、高性能结构化数据处理的方法和系统允许用户通过从称为插件的较小单元创建复杂算法或算法套件来组成处理工作流。这些插件通过在它们之间传递数据对象来形成定向数据流图来进行通信。数据流图可以分叉和重新联合任意次数,并在任何阶段生成输出。图中的特殊链接表示分布式链接,并且可以通过在策略选择的图交叉点处分布计算负载来处理大问题。
以下描述的是用于有效处理结构化数据的方法,该结构化数据被存储为包括多个离散数据文件的数据集。该方法包括功能组件的六个相互关联的协同步骤,在图1的方法100中示意性地示出,其一起构成了例如在空间域中用于结构化或半结构化数据处理的现有技术的重大飞跃。它们将在后面的章节中详细介绍。
从非常大的数据集的特定区域内进行有效的数据读取和预处理
最初,在方法100的步骤101处,从数据源读取输入结构化数据集并进行预处理。输入数据集表示整个数据集,随后可以从中为特定目的读取和处理感兴趣的数据。在空间数据的情况下,整个数据集可以表示与由诸如卫星或机载(airborne)或移动LiDAR系统的特定仪器/系统进行的观察相关的数据的空间区域。然后,如果获得该区域的多个观察,则感兴趣的数据表示基于要观察的地理区域和/或观察时间选择的整个数据集的子集。在时间序列数据的情况下,感兴趣的数据可以表示基于特定时间段选择的整个数据集的子集。数据源可以是本地连接或远程定位的数据库、文件系统或数据服务器,或者它们的组合,其共同定位或位于不同的空间上分开的位置处。
正在收集的结构化数据集的大小以指数速率增加,因此,这些数据集通常分布在多个文件中并且分段处理。在空间数据的情况下,数据集通常被分成小的空间数据区域,并基于空间区域作为单个文件存储在数据源中。类似地,时间序列数据的数据集通常被分成小的时间段,并且基于时间段作为单个文件存储在数据源中。然后可以分段访问和处理单个文件。传统上,每个子系统处理的数据量等于每个单个文件中的数据量。这可能会有问题,因为在将数据集存储在数据源之前需要决定文件大小,但是为分布式分析计算目的细分的最佳大小取决于可用处理硬件的特性以及数据和要进行的任务的性质。从特定区域读取与单个文件细分不对应的数据表示独特的问题。
为了允许用户或计算机确定在数据集特定数据中位于的位置,通常索引文件集合,并且结合数据文件存储一个或多个索引文件。传统的基于文件的索引包括与每个较大数据集文件相关的一个小索引文件。随着较大文件数量的增加,小索引文件的数量也在增加。可能需要读取这些数据文件中的每一个,以便从整个数据集构建单个期望的“任务”或“工作单元”的数据。这意味着大型处理作业的文件读取次数变为:n(工作单元数)x m(磁盘上较大文件的数量)。高性能计算系统通常没有针对大量小文件读取进行优化。
另外,数据集文件通常存储在网络驱动器上。这会将网络延迟问题带入文件lO(输入/输出),从而进一步降低读取性能。在高网络负载的情况下,性能可以很快变得不可接受。在高度分布式计算环境中,通常有许多计算节点试图从同一数据集读取数据,这进一步减慢了文件IO操作。
为了解决上述缺陷,在图1的步骤101处,以如下有效的方式读取和预处理输入结构化数据集。特别地,在数据集包括多个单个文件的情况下,执行以下两个步骤过程。步骤1涉及预处理数据集以对其进行优化以用于后续分析。步骤2表示用于对所选数据子集执行分析的数据读取。
部分1:生成参考文件
步骤1:预处理数据集。
1.对于数据集中的每个文件:
a.打开文件-选择并打开特定文件以供读取。
b.读取数据边界-提取文件内包含的数据的边界值。
c.检查数据边界是否正确-将文件头内包含的数据边界与文件中找到的实际值进行比较。
d.将文件名边界键值对存储到合适的数据结构中-该文件的数据边界与文件名相关联,这两个值作为键值对存储在合适的数据结构(诸如哈希表)中。
e.关闭文件-关闭该特定数据文件(和关联的索引文件)。
2.对数据集中的每个数据文件重复步骤1并填充数据结构。
3.将数据结构存储到参考文件中。参考文件(诸如,缓存文件)用作单个参考点,用于后续分析数据集内包含的数据。
步骤2:在数据读取器方面:
1.仅将来自参考文件的内容读入数据结构一次-将参考文件内容提取到本地数据结构中以供客户端参考。
2.对于要观察的空间数据的给定区域(或具有预定义边界的其他所需数据子集):
a.从数据结构中读取键值对-如果没有更多的键值对可用则终止循环并标记相应的错误消息。
b.检查给定区域是否与数据边界值重叠–识别文件的数据边界是否完全或部分落在给定区域内。
c.如果它们重叠,则使用相应的键(其是文件名)用于读取-将该文件指定为包含给定区域内的数据的文件。
d.如果它们不重叠,则转到步骤2.a-忽略不包含给定区域内的数据的文件。
部分2:生成元数据文件
部分2的输出是称为特定数据集的“元数据文件”的文件。在LiDAR数据的具体示例中,在该预处理步骤中,将整个数据集划分为单元。每个单元包含逻辑标识符、飞行路径ID以及对于每个飞行路径ID,该单元中的数据点的数量。计算数据集的元素密度并也将其存储在元数据文件中。更一般地,对于诸如时间序列数据的其他类型的数据,元数据文件填充有关于正在处理的特定数据的各种度量。元数据文件与上述参考文件分开,并且被生成以供处理控制器使用,而参考文件供客户端或用户端处的数据读取器使用。
步骤2在图2中示意性地示出。
步骤1基本上索引或重新索引数据集以产生单个参考文件,数据读取器能够访问该单个参考文件并且容易地识别用于执行任务的期望文件。在数据集尚未以传统方式索引的情况下,此步骤也可以在数据索引期间进行。数据集的预处理的输出是每个数据文件的单个索引文件、数据集的单个参考文件和数据集的单个元数据文件。这在图3中示意性地示出,其中Dx表示数据文件,并且lx表示索引文件。
作为预处理步骤的一部分,整个数据集被分成单元(如下所述)。每个单元格包含逻辑标识符和其中的元素总数。
可以最初执行步骤1,并且可以由各种远程定位的数据读取器工作单元(计算机处理器)重复利用所得到的参考文件,以简化数据文件的选择并产生给定任务所需的最终输出。在这方面,生成的参考文件可以存储在与文件相同的数据源中。然而,在一些实施例中,生成的参考文件可以存储在别处,只要它可以由数据读取器访问。除非更改数据集中的数据,否则无需重复数据索引。
在一些实施例中,不是形成诸如散列表的中间数据结构,而是将每个打开的文件的数据边界和文件名直接填充到参考文件中。
响应于要分析的所选数据子集,执行步骤2。在空间数据的情况下,通过输入期望的过滤器参数(诸如地理区域和/或时间/日期参数)来选择数据集。在时间序列数据的情况下,通过输入开始和结束时间以及可选的其他过滤器参数来选择数据集。
通过消除网络上高代价的文件打开、读取和关闭IO操作,上述方法节省了大量时间。参考文件细节只读一次,然后用于每个所需的数据工作单元,以产生所需的最终输出。
使用衍生和导入特征的栅格对结构化数据进行大规模、快速的预分类
在方法100的步骤102处,执行读取数据的预分类。尽管示出为单个的步骤,但是在实践中,可以同时执行步骤101和102以降低整体处理复杂性。数据文件的预分类生成预定义的预分类输出,其与文件相关联并作为在方法100的步骤101处生成的元数据文件中的其他值添加。
结构化大数据的分类通常是计算和存储器(RAM)密集型过程。对于负载平衡和资源化原因来说,能够估计分类给定数据区域所需的RAM量和计算时间是非常有益的。然而,虽然大多数结构化数据索引系统有效地存储与每个单个数据条目相关的基本信息,但是它们不计算跨数据区域的更一般的度量。本发明的预分类步骤利用这些一般度量来加速数据的后续分类。
例如,在诸如从LiDAR导出的3D点云数据中,每个点的x,y,z位置被记录,但是如局部点密度、局部斜率、局部高度范围和返回的强度的可变性的区域度量不被记录。
在本发明中,可以使用多个不同的内核大小来计算区域度量,以产生跨(across)结构化数据集的特征向量的n维矩阵(其中n是任意的)。这可以包括使用数据处理算法从数据本身或者使用从其他外部数据源获得的补充信息提取特征。例如,在索引LiDAR数据文件的情况下,可以访问包含相同区域的卫星图像数据的文件,以识别LiDAR数据文件中存在的某些地形特征或类型的可能性。其他示例分类包括文件内数据的质量测量、数据中伪影的可能性、平均地形高度/斜率、对齐、点密度和所有点的标准偏差。
通过在每个数据文件内的数据单元上运行预分类算法,在步骤102处的处理的索引阶段期间生成这些导出的特征,因此不需要额外的数据读取。选择数据单元的大小足够小以便捕获单元内感兴趣的特征,但不能太小以至于处理单元的计算复杂性是低效的。举例来说,空间LiDAR数据可以被分成对应于空间数据的32m×32m的区域的数据单元。将特征向量添加为附加值,其与特定数据单元和关联数据文件相关联并存储在数据集的参考文件中。这些特征向量作为元数据添加到数据集。
下面列出了存储在元数据文件中的四个数据单元的特征值的示例表。
实际上,每个数据文件通常将包括数百或数千个数据单元,每个数据单元具有相应的预分类。
特征向量有助于在处理任务分布之前估计给定区域的结构化数据的分类的计算和RAM要求,从而实现更有效的负载平衡,更好的资源利用和改进的整体分类性能。这还有助于动态选择算法和参数设置,以用于实现被分析数据集的特定组件的有效分类。特别地,随着一些算法在特定数据类型(诸如森林地形上的城市地形)上更有效地操作,随后的数据分类得到改进。举例来说,通过基于可能的地形类型(城市、森林、沙漠等)索引文件,可以仅对具有特定地形类型的高可能性的数据文件的子集选择性地执行后续处理,从而降低整体计算复杂性。它还将通过根据区域类型调整算法参数来改进分类。
多态插件连接
在方法100的步骤103处,确定用于处理结构化数据的多态插件连接。插件是通常专用于执行单个任务的软件算法。它们通常设计为与其他插件结合工作,以便为更高级别的软件程序提供附加功能。
在插件环境中,仅允许连接兼容的输入和输出。这意味着,如果其具有例如线和多边形类型的输入和输出并且希望能够将它们写入文件,则在现有技术解决方案中,这通常需要创建每种类型的输出到文件插件。图4示出了其中使用线输出和多边形输出插件的示例非多态工作流情况。这种情况要求软件开发人员为所有不同的可能数据类型创建许多插件。
多态性是面向对象编程的组件,并且被定义为能够在不同的背景中为某事物分布不同的含义或用法的特征;具体而言,它允许诸如变量、函数或对象的实体具有多个表格。主要的好处是简单性和可扩展性。本发明的实施例利用用于在基于插件的分布式计算平台的新背景中实现多态性的技术。
该技术允许两个插件的连接,其中输出类型是输入的导出类型。例如,图5示出了示例工作流,其中,如果线和多边形是导出类型的形状,则可以将线的列表和多边形的列表连接到形状的列表。在这种情况下,软件开发人员只需要创建一个输出插件,其将自动处理所有可能的当前和未来开发的形状,包括线和多边形,而不是每种新类型的形状的新输出插件。为了实现这一点,插件开发人员创建了多态对象,并将它们与插件输入和输出一起使用。在后一个示例中,生成线或多边形的插件的开发者必须专注于开发不同的对象,而不知道形状输出插件如何将形状写入文件。以类似的方式,形状输出插件不需要知道被输入以将输出写入文件的形状类型。
图6示出了插件连接的测试流程图,其示出了多态插件连接的原理以及当用户根据对象类型关系将输入连接到输出时如何允许或阻止连接。
自动工作流分布控制
在方法100的步骤104处,基于插件连接执行工作流的分布。此步骤涉及调度工作单元或“任务”以及跨多个计算机处理器共享资源。
使用分布式计算的现有技术解决方案通常要求用户清楚地定义将在许多计算机上分布的部件。这是限制因素,其会消除用户的灵活性,因为用户需要手动创建批次,并且一次只能创建一个这样的批次分布。
在本发明的基于插件的体系结构中,每当插件利用特定类型的对象的输出列表连接到相同类型的另一个仅为单个项目而非列表的插件输入时,分布式连接被创建(图7中的粗体线)。当用户执行工作流并且存在分布式连接时,处理控制器基于项目列表创建要处理的任务列表,并且以分布式方式查找计算节点以处理粗体连接的右侧。
在如图7中突出显示的工作流中存在其他分布式连接的情况下,正在处理由处理控制器发送的工作流的计算节点将找到其他计算节点以处理第二分布式连接的右侧。这时,计算节点就像处理控制器一样起作用。
分支还可以在一个计算节点中的不同核上以及在分开的计算节点上并行执行。在这种情况下,所有下游插件都等待它们的输入变为有效,指示所有先前的插件都已完成,然后在它们自己的线程中运行。
通过上述解决方案,插件创建者或管理工作流的用户不必理解如何分布他们的工作;它将自动为他们完成。同时,将自动充分利用下面概述的有效动态任务分配步骤。
有效的动态任务估计和分配以计算节点
在步骤105中,基于多态插件连接和工作流分布来执行到连接或联网计算节点的任务的动态分配。
通常,非常大的数据集必须被分成合适尺寸的较小片,然后分片处理。这里的每片数据都是计算节点的任务。在高度分布式计算环境中,始终难以确定要发送到每个计算节点的任务数。传统上,将固定数量的任务发送到所有计算节点。但是,这种方法没有效率,尤其是当计算节点在具有不同硬件规格的机器上运行时,或者在跨数据集实现最终输出所需的计算量存在显着差异时。
作为示例,考虑两个计算节点;具有8GB RAM的Nodel和具有16GB RAM的Node2以及每个需要1.5GB RAM的多个任务。在这种情况下,使用传统技术,处理控制器只能向两个计算节点发送总共需要7.5GB RAM的5个任务。这种方法导致未使用RAM的大约8.5GB的Node2的利用率不足。Node2可以轻松容纳5个以上的任务。如果存在具有16GB或更大RAM的大量计算节点的分布式计算设施以及具有8GB RAM的少量计算节点,则总利用率不足可能变得不可接受并且显着影响计算设施的性能。除此之外,在没有其他更改的情况下,无法将具有少于8GB RAM的计算节点添加到此类设施,因为这些计算节点在发送5个任务时将耗尽RAM。
在上述示例中,每个任务的RAM利用率要求(1.5GB RAM)的估计本身非常难以实现,因为它强烈地依赖于任务的复杂性。任务复杂性将随诸如处理的期望结果、输入数据集元素密度、输入数据的性质以及处理所需的算法的数量和复杂性的因素而变化。
再次考虑来自LiDAR和/或图像的3D点云的示例以示出这些点。根据3D点云生成轮廓的任务可能需要0.5GB/任务,而全点云分类可能需要1.5GB/任务。对密度为4点/m2的1kmx 1km块进行完全分类所需的资源量远远少于密度为16点/m2的1km x 1km块。一个任务中的数据可能只有地面点,而另一个任务中的数据可能有地面、建筑物、水、茂密植被等点。对于第一项任务,将仅使用地面分类相关算法,而对于其他任务,将使用与地面、建筑物、水和植被相关的算法。所有这些因素都会严重影响任务存储器消耗。
在高度复杂的多线程分布式计算环境中,在计算节点上同时处理数据的线程总数也应该存在上限。太多并行线程会严重降低性能。因此,在线程总数超过该计算节点机器上的阈值之后,处理控制器应该停止向计算节点发送任务。
步骤101和102中描述的数据预处理用于部分地解决上述低效问题。为了进一步解决这些低效问题,方法100的步骤105包括以下技术。
任务列表创建:作为第一步骤,处理控制器划分数据集并准备任务列表。处理控制器通过查看元数据中的元素密度和可以选择的任何其他关键指标来智能地计算任务的最佳大小。在3D点云示例中,如果点密度是4点/m2,则处理控制器可以生成大小为1km2的任务。然而,如果点密度是16点/m2,则处理控制器可以仅基于点密度生成大小为0.5km2的任务。不同任务的大小可以相同或不同,以最大化可用资源。
处理控制器还在需要时将两个任务合并为一个任务。如果给定任务中的数据元素的数量低于阈值,则处理控制器尝试从其相邻任务中找到最合适的任务并将给定的小任务与其合并。这减少了任务数量并消除了处理这些小任务所需的开销。
每个任务所需资源的估计:当处理控制器划分数据集并生成任务列表时,它使用数据集的元数据计算每个任务的元素数量和计算复杂度。然后,处理控制器按照元素数量和计算复杂度的降序对任务进行排序,并将具有最高计算硬件规范的前N个任务作为前导任务发送到N个计算节点(恰好一个任务到一个用于估计的计算节点)。在处理前导消息时,计算节点继续向处理控制器发送状态信息。一旦处理了所有前导消息(包括失败的任务),处理控制器就根据从所有计算节点接收的状态信息计算该特定工作流的每个元素的存储器需求。利用每个元素的存储器需求,处理控制器然后通过将每个元素的存储器需求乘以该任务中的元素数量,使用存储器估计更新任务列表中的剩余任务。
使用N个前导任务而不是仅使用一个,因为根据任务中的数据的性质,处理任务所需的存储器可能非常不同。为了提高估计的有效性,处理控制器向N个计算节点发送前导消息并使用来自它们的状态信息,而不是仅来自一个计算节点的状态信息。
任务分配:一旦处理控制器具有了带有每个任务的估计存储器需求的任务列表,它就查看计算节点状态信息,特别是可用存储器容量。处理控制器从任务列表中选取下一个任务,并将其发送到可用存储器容量大于该任务所需的估计存储器的计算。它一直这样做,直到没有具有足够容量的计算节点来处理下一个任务。然后,处理控制器等待计算节点完成其任务。只要任何计算节点完成其任务,处理控制器就会根据可用存储器容量向其发送另一个任务。如果计算节点完成大任务并且具有足够的容量来处理两个或更多个任务,则处理控制器发送多个任务以最大化资源利用率。
处理控制器从任务列表中提取下一个任务的方式是完全灵活的。在开始时,处理控制器通常从任务列表的顶部提取任务,即就所需的存储器而言最大的任务。但是,处理控制器可以从任务列表中的任何位置提取任务,以使计算节点始终保持忙碌。例如,假设NodeA具有8GB RAM,并且处理控制器从任务列表的顶部向其发送5个任务,每个任务具有1.2GB存储器要求。之后NodeA仍然有819MB可用。然后,处理控制器尝试查看任务列表以查找估计存储器要求小于819MB的最大任务,并将其发送到NodeA。
处理控制器还在需要时将任务细分为较小的任务。例如,如果处理控制器仅剩下需要1.2GB估计存储器的任务且所有计算节点的可用存储器容量小于1GB,则处理控制器无法将整个任务发送到计算节点,因为计算节点将耗尽存储器。因此,处理控制器智能地将任务细分为较小的任务,例如两个子任务,每个子任务具有0.6GB的存储器要求。在任何时间点,处理控制器都知道可用的计算节点存储器容量。它还知道为每个任务生成的线程数。通过查看这一点,处理控制器将不会在线程总数超过某个阈值之后将任务发送到计算节点,以防止性能下降。
性能损失最小的自动边缘效应消除
在方法100的步骤106处,执行数据的主要处理。作为该处理的一部分,执行边缘效应消除。
用于分布式计算的大多数解决方案将大问题切分为适于各个计算设备的小片(任务)。将问题切成片的问题在于它在那些较小的片的边缘上产生不连续性。为了解决这个问题,一些现有技术仅处理彼此重叠的较大数据片然后合并结果。这解决了问题的一部分,但是由于在然后会被丢弃的重叠区域中处理了大量数据,因此它会产生一些显着的性能下降。该解决方案还存在用户未选择足够重叠以消除所有边缘效应的风险。特别是在数据密集且检测到的特征的尺寸相对较大的情况下,例如地理空间点云数据中的建筑物。
为了在保持最大效率的同时消除或至少基本上减少边缘效应,本文公开的系统在工作流的每个步骤处计算最小所需额外缓冲区。这样,每个插件只处理下游插件所需的缓冲区。此外,一旦终止一行插件,就会自动释放存储器。
图8示出了该机制如何工作。这里每个插件的第一数字表示它需要多少缓冲区,并且第二数字表示所有子插件的最大总缓冲区。然后保证每个插件都有足够的有效信息进行处理而没有边缘效应。一旦一行插件终止,存储器将自动释放。举例来说,假设工作流正在处理地理空间数据并假设顶部数字表示插件在所请求区域中创建有效结果而没有边缘效应所需的以米为单位的缓冲区。插件的开发人员为相关插件指定了最小所需缓冲区。在图8中,最后两个插件(L和M)分别需要10和0米缓冲区。例如,插件L可以表示用于估计超过10米的空间数据块的平均地形高度的算法。当执行插件K时,它将确保它在所有边上比所请求的最终区域大至少10米的区域中生成有效结果,从而完全消除与平均相关的边缘效应。类似地,当执行插件D时,它将确保它在由于插件I(20m)+插件J(50m)+插件L(10m)的至少80米的缓冲区域中生成有效结果。当插件连接到两个或多个不同的路径(如插件A)时,它需要最大的总和,在这种情况下插件D为80米。此外,一旦插件J完成,系统将释放插件H和I所持有的任何存储器,但不释放插件G,因为插件K依赖于它。一旦插件K完成,插件G保存的存储器将被释放。
这样,在每个阶段处理最小所需信息而不产生任何边缘效应,并且将存储器消耗保持为最小。
结论
本文描述的用于灵活、高性能结构化数据处理的方法和系统采用六种相互强制技术来有效地解决现有技术的限制:
·从非常大的结构化数据集中在特定区域内读取的有效数据-这种方法可以非常快速有效地从大数据集中进行数据读取,从而实现更好的资源利用率、更快的处理速度和更大的可扩展性。它解决了结构化大数据的分布式、高性能处理中的文件IO性能瓶颈,同时保持了完全的灵活性和最大的资源效率。它使其他技术的优势能够完全转化为提高整体性能。
·使用衍生和导入特征的栅格对结构化数据进行大规模、快速的预分类-该方法提供了各种重要的区域指标,为最佳实施有效动态任务估计和分配技术奠定了基础。它提高了整体效率、资源利用率、系统可扩展性和处理性能。
·多态插件连接-自动工作流分布控制的灵活性由此方法补充,其允许插件开发人员专注于创建算法,并花费更少的时间编写冗余和类似的插件以适应所有不同类型的数据。它有助于快速和有效的开发。
·自动工作流分布控制-这种方法可以使非常复杂的具有许多分布级别的问题在“一读一写”架构中无缝地为用户工作。可以轻松构建和快速运行复杂的工作流,其中边缘效应消除技术可确保自动处理所有边缘效应,并有效的动态任务估计和分配技术确保最佳地利用资源。它提供可扩展性、高性能和完全灵活性。
·有效的动态任务估计和计算节点的分配-这种方法可确保在数据处理过程期间的任何时间点以最大可能的水平利用计算资源。它还允许系统非常快速地扩展。从商用机器到超级计算机的具有不同规格的硬件可用于数据处理。
·性能损失最小的自动边缘效应消除-该技术通过确保数据以最快速度在无边际效应的情况下以无缝块处理,与有效的动态任务估计和分配方法协同工作。它提供了效率、可扩展性和最佳处理性能。
这六种技术一起构成用于灵活、高性能结构化数据处理的方法和系统,其是自适应的并且联合优化处理速度、资源利用率、灵活性、可扩展性和可配置性。它是集成的“一读一写”解决方案,其与平台无关并且可以充分利用计算技术的进步。它可扩展到大数据集大小,同时保持数据集完整性并最大限度地缩短处理时间。它能够利用所有可用的计算资源,并自动适应不同的存储器、处理、操作系统和网络配置。它可以轻松地重新配置为新应用、新算法、新见解、新数据格式以及第三方代码的合并,并有助于快速原型设计。因此,它有效地解决了缺点,并且相对于现有技术提供了强大的益处。
解释
在整个说明书中,术语“要素”的使用旨在表示单个整体部件或组合以执行特定功能或目的的部件集合。
除非另有明确说明,否则从以下讨论中可以明显看出,应当理解,在整个说明书讨论中,利用诸如“处理”、“计算”、“计算”、“确定”、“分析”等术语,指代计算机或计算系统或类似电子计算设备的动作和/或过程,其将表示为物理(诸如电子)数量的数据操纵和/或转换成类似地表示为物理量的其他数据。
以类似的方式,术语“控制器”或“处理器”可以指代处理例如来自寄存器和/或存储器的电子数据以将该电子数据转换成其他电子数据的任何设备或设备的一部分,例如,其可以存储在寄存器和/或存储器中。“计算机”或“计算机器”或“计算平台”可包括一个或多个处理器。
在一个实施例中,本文描述的方法可由一个或多个处理器执行,所述处理器接受包含一组指令的计算机可读(也称为机器可读)代码,所述指令在由一个或多个处理器执行时执行本文描述的方法中的至少一种。包括能够执行指定要采取的动作的一组指令(顺序或其他)的任何处理器。因此,一个示例是包括一个或多个处理器的典型处理系统。每个处理器可以包括CPU、图形处理单元和可编程DSP单元中的一个或多个。处理系统还可以包括存储器子系统,其包括主RAM和/或静态RAM和/或ROM。可以包括总线子系统用于在组件之间进行通信。处理系统还可以是具有通过网络耦合的处理器的分布式处理系统。如果处理系统需要显示器,则可以包括这样的显示器,例如液晶显示器(LCD)或阴极射线管(CRT)显示器。如果需要手动数据输入,则处理系统还包括输入设备,例如诸如键盘的字母数字输入单元、诸如鼠标的指向控制设备等中的一个或多个。这里使用的术语存储器单元如果从背景中清楚并且除非另有明确说明,还包括诸如磁盘驱动器单元的存储系统。一些配置中的处理系统可以包括声音输出设备和网络接口设备。因此,存储器子系统包括承载计算机可读代码(例如,软件)的计算机可读载体介质,该计算机可读代码包括一组指令,当由一个或多个处理器执行时,使得执行本文所述的一种或多种方法。注意,当该方法包括若干要素,例如若干步骤时,除非特别说明,否则不暗示这些要素的排序。软件可以驻留在硬盘中,或者也可以在计算机系统执行期间完全或至少部分地驻留在RAM内和/或处理器内。因此,存储器和处理器还构成承载计算机可读代码的计算机可读载体介质。
贯穿本说明书对“一个实施例”、“一些实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性包括在本公开的至少一个实施例中。因此,贯穿本说明书在各个地方出现的短语“在一个实施例中”、“在一些实施例中”或“在实施例中”不一定都指代相同的实施例。此外,在一个或多个实施例中,特定特征、结构或特性可以以任何合适的方式组合,如本领域普通技术人员从本公开中显而易见的。
如本文所使用的,除非另有说明,否则使用序数形容词“第一”、“第二”、“第三”等来描述共同对象,仅指示引用相同对象的不同实例,并不意味着暗示所描述的对象必须以在时间上、空间上、排序中给定的顺序或以任何其他方式。
在下面的权利要求和本文的描述中,包括、包含或其包括的任何一个术语是开放术语,其意味着至少包括随后的要素/特征,但不排除其他要素/特征。因此,当在权利要求中使用时,该术语不应被解释为对其后列出的装置或要素或步骤的限制。例如,包括A和B的设备的表达范围不应限于仅由要素A和B组成的设备。包括或包含或包含在此使用的任何一个术语也是开放术语,也是意味着至少包括该术语之后的要素/特征,但不排除其他要素/特征。因此,包含与其同义并且意味着包括。
应当理解,在本公开的示例性实施例的以上描述中,出于简化本公开和帮助理解一个或多个不同的创造性方面的目的,有时将本公开的各种特征组合在单个实施例、图或其描述中。然而,该公开方法不应被解释为反映权利要求需要比每个权利要求中明确记载的更多特征的意图。而是,如以下权利要求所反映的,发明方面在于少于单个前述公开实施例的所有特征。因此,具体实施方式之后的权利要求在此明确地并入该具体实施方式中,其中每个权利要求自身作为本公开的单个实施例。
此外,虽然本文描述的一些实施例包括一些但不包括在其他实施例中的其他特征,但是不同实施例的特征的组合意图在本公开的范围内,并且形成不同的实施例,如本领域技术人员将理解的。例如,在以下权利要求中,任何要求保护的实施例可以以任何组合使用。
在本文提供的描述中,阐述了许多具体细节。然而,应该理解,可以在没有这些具体细节的情况下实践本公开的实施例。在其他情况下,没有详细示出公知的方法、结构和技术,以免模糊对本说明书的理解。
类似地,应注意,当在权利要求中使用时,术语“耦合”不应被解释为仅限于直接连接。可以使用术语“耦合”和“连接”以及它们的派生词。应该理解的是,这些术语并非旨在作为彼此的同义词。因此,耦合到设备B的设备A的表达范围不应限于其中设备A的输出直接连接到设备B的输入的设备或系统。这意味着在A的输出和B的输入之间存在路径,其可以是包括其他设备或装置的路径。“耦合”可以表示两个或更多个要素处于直接物理、电或光学接触,或者两个或更多个要素彼此不直接接触但仍然彼此协作或相互作用。
因此,虽然已经描述了被认为是本公开的优选实施例,但是本领域技术人员将认识到,在不脱离本公开的精神的情况下,可以对其进行其他和进一步的修改,并且它是旨在要求保护落在本公开范围内的所有这些改变和修改。例如,上面给出的任何公式仅仅代表可以使用的过程。可以从框图中添加或删除功能,并且可以在功能块之间交换操作。可以向在本公开的范围内描述的方法添加或删除步骤。
Claims (11)
1.一种使用高性能计算来灵活处理由结构化数据组成的数据集的方法,所述数据集包括多个离散数据文件,所述方法包括:
访问存储所述数据集的数据源;
预处理所述数据集以生成:
(a)参考文件,其指示包含在每个所述离散数据文件内的结构化数据的一个或多个预定特征;和
(b)元数据文件,其指示一个或多个数据度量;
以及
在对所述结构化数据进行处理时:
定义用于处理所述结构化数据的插件连接;
动态地将数据处理任务分配给连接的计算机节点;
对所述结构化数据进行数据处理;
生成所述结构化数据的数据处理的输出;以及
通过计算每个插件处的最小所需额外缓冲区来对所述结构化数据自动地消除边缘效应。
2.根据权利要求1所述的方法,其中,预处理所述数据集的步骤与索引所述数据集同时发生。
3.根据权利要求1所述的方法,其中,所述预定特征包括所述数据集中的每个所述离散数据文件的数据边界和相关文件名。
4.根据权利要求1所述的方法,其还包括对所述离散数据文件进行预分类的步骤,所述步骤包括使用外部文件中的离散信息来计算一个或多个数据度量。
5.根据权利要求4所述的方法,其中,所述数据度量包括确定离散数据文件中存在某些数据特征的可能性。
6.根据权利要求4所述的方法,其中,所述数据度量包括离散数据文件内的数据的点密度。
7.根据权利要求4所述的方法,其中,所述数据度量包括离散数据文件内的数据的标准偏差。
8.根据权利要求3所述的方法,其中,预处理所述数据集的步骤包括以下步骤:
i)打开每个离散数据文件;
ii)确定每个离散数据文件的数据边界;和
iii)将每个离散数据文件的所确定的数据边界和相关文件名存储在所述参考文件中。
9.根据权利要求8所述的方法,其中,所述数据集是空间数据和/或时间数据的数据集。
10.根据权利要求9所述的方法,其中,所述空间数据包括图像数据和LiDAR数据,包括由所述图像数据和LiDAR数据导出的点云数据。
11.根据权利要求1所述的方法,其中与每个算法或算法序列相关的缓冲区在该算法或序列终止后被释放。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2016902533 | 2016-06-28 | ||
AU2016902533A AU2016902533A0 (en) | 2016-06-28 | Method and System for Flexible, High Performance Structured Data Processing | |
AU2016904659A AU2016904659A0 (en) | 2016-11-15 | Method and System for Flexible, High Performance Structured Data Processing | |
AU2016904659 | 2016-11-15 | ||
PCT/AU2017/050641 WO2018000024A1 (en) | 2016-06-28 | 2017-06-23 | Method and system for flexible, high performance structured data processing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109416688A CN109416688A (zh) | 2019-03-01 |
CN109416688B true CN109416688B (zh) | 2024-03-12 |
Family
ID=60784968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780040375.2A Active CN109416688B (zh) | 2016-06-28 | 2017-06-23 | 用于灵活的高性能结构化数据处理的方法和系统 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11294858B2 (zh) |
EP (1) | EP3475852A4 (zh) |
CN (1) | CN109416688B (zh) |
AU (1) | AU2017288044B2 (zh) |
CA (1) | CA3027798A1 (zh) |
WO (1) | WO2018000024A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2017288044B2 (en) | 2016-06-28 | 2022-07-28 | Anditi Pty Ltd | Method and system for flexible, high performance structured data processing |
GB201818997D0 (en) * | 2018-11-22 | 2019-01-09 | Palantir Technologies Inc | Providing external access to a prcoessing platform |
CN109542910B (zh) * | 2018-12-03 | 2022-10-28 | 中国电波传播研究所(中国电子科技集团公司第二十二研究所) | 一种海量海杂波数据分类存储方法 |
CN110825061B (zh) * | 2019-11-29 | 2023-08-11 | 新疆新能集团有限责任公司乌鲁木齐电力建设调试所 | 一种分散处理单元的流数据二维处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567503A (zh) * | 2010-12-16 | 2012-07-11 | 微软公司 | 用于数据去重复的可扩展流水线 |
CN103020325A (zh) * | 2013-01-17 | 2013-04-03 | 中国科学院计算机网络信息中心 | 基于NoSQL数据库的分布式遥感数据组织查询方法 |
US20140164444A1 (en) * | 2012-12-01 | 2014-06-12 | The Regents Of The University Of California | System and method of managing large data files |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001109638A (ja) * | 1999-10-06 | 2001-04-20 | Nec Corp | 推定伸長率に基づくトランザクション負荷分散方法及び方式並びにコンピュータ可読記録媒体 |
US7139779B1 (en) * | 2003-05-29 | 2006-11-21 | Microsoft Corporation | Method and system for developing extract transform load systems for data warehouses |
US8326037B1 (en) * | 2005-11-23 | 2012-12-04 | Matrox Electronic Systems, Ltd. | Methods and apparatus for locating an object in an image |
US9104695B1 (en) * | 2009-07-27 | 2015-08-11 | Palantir Technologies, Inc. | Geotagging structured data |
US20120013539A1 (en) * | 2010-07-13 | 2012-01-19 | Hogan Edward P A | Systems with gesture-based editing of tables |
US20130086215A1 (en) * | 2011-05-13 | 2013-04-04 | HNTB Holdings, Ltd. | Managing large datasets obtained through a survey-data-acquisition process |
US8949246B2 (en) * | 2012-01-01 | 2015-02-03 | The United States Of America, As Represented By The Secretary Of The Navy | System and method for importing NetCDF data |
US8892779B2 (en) * | 2012-05-10 | 2014-11-18 | International Business Machines Corporation | Virtual machine allocation at physical resources |
JP5939123B2 (ja) * | 2012-10-09 | 2016-06-22 | 富士通株式会社 | 実行制御プログラム、実行制御方法および情報処理装置 |
US9411558B2 (en) * | 2012-10-20 | 2016-08-09 | Luke Hutchison | Systems and methods for parallelization of program code, interactive data visualization, and graphically-augmented code editing |
US9734220B2 (en) * | 2012-12-04 | 2017-08-15 | Planet Os Inc. | Spatio-temporal data processing systems and methods |
US9720940B2 (en) * | 2013-03-15 | 2017-08-01 | Konstantinos (Constantin) F. Aliferis | Data analysis computer system and method for parallelized and modularized analysis of big data |
US9400825B2 (en) * | 2013-05-23 | 2016-07-26 | Strategy Companion Corporation | Pivot analysis method using condition group |
US9870269B1 (en) * | 2013-09-05 | 2018-01-16 | Amazon Technologies, Inc. | Job allocation in a clustered environment |
US20150261860A1 (en) * | 2014-03-12 | 2015-09-17 | Kaushal MITTAL | Predicate execution in shared distributed computing environment |
US9778957B2 (en) * | 2015-03-31 | 2017-10-03 | Stitch Fix, Inc. | Systems and methods for intelligently distributing tasks received from clients among a plurality of worker resources |
US10445343B2 (en) * | 2015-07-16 | 2019-10-15 | Interactive Data Pricing And Reference Data Llc | Systems and methods for data exchange and conversion |
US10720168B2 (en) * | 2015-07-29 | 2020-07-21 | Mueller International, Llc | PPS tagging of acoustic sample data |
US10285611B1 (en) * | 2015-08-07 | 2019-05-14 | Boston Scientific Scimed, Inc. | Cardiac mapping using a 3D grid |
AU2017288044B2 (en) | 2016-06-28 | 2022-07-28 | Anditi Pty Ltd | Method and system for flexible, high performance structured data processing |
-
2017
- 2017-06-23 AU AU2017288044A patent/AU2017288044B2/en active Active
- 2017-06-23 CN CN201780040375.2A patent/CN109416688B/zh active Active
- 2017-06-23 US US16/313,830 patent/US11294858B2/en active Active
- 2017-06-23 WO PCT/AU2017/050641 patent/WO2018000024A1/en unknown
- 2017-06-23 CA CA3027798A patent/CA3027798A1/en active Pending
- 2017-06-23 EP EP17818730.8A patent/EP3475852A4/en active Pending
-
2022
- 2022-04-04 US US17/713,229 patent/US20220229809A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567503A (zh) * | 2010-12-16 | 2012-07-11 | 微软公司 | 用于数据去重复的可扩展流水线 |
US20140164444A1 (en) * | 2012-12-01 | 2014-06-12 | The Regents Of The University Of California | System and method of managing large data files |
CN103020325A (zh) * | 2013-01-17 | 2013-04-03 | 中国科学院计算机网络信息中心 | 基于NoSQL数据库的分布式遥感数据组织查询方法 |
Non-Patent Citations (2)
Title |
---|
《Efficient Tree Structures for High Utility Pattern Mining in Incremental Databases》;Chowdhury Farhan Ahmed 等;《 IEEE Transactions on Knowledge and Data Engineering》;20091231;全文 * |
《大数据挖掘与分析的关键技术研究》;陈良臣 等;《数字技术与应用》;20151231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20220229809A1 (en) | 2022-07-21 |
EP3475852A1 (en) | 2019-05-01 |
US20190171617A1 (en) | 2019-06-06 |
US11294858B2 (en) | 2022-04-05 |
AU2017288044B2 (en) | 2022-07-28 |
CN109416688A (zh) | 2019-03-01 |
CA3027798A1 (en) | 2018-01-04 |
WO2018000024A1 (en) | 2018-01-04 |
AU2017288044A1 (en) | 2019-01-31 |
EP3475852A4 (en) | 2019-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220229809A1 (en) | Method and system for flexible, high performance structured data processing | |
US9053067B2 (en) | Distributed data scalable adaptive map-reduce framework | |
WO2018099299A1 (zh) | 一种图数据处理的方法、装置及系统 | |
US9152601B2 (en) | Power-efficient nested map-reduce execution on a cloud of heterogeneous accelerated processing units | |
CN110249312B (zh) | 用于将数据集成作业从源框架转换到目标框架的方法和系统 | |
Sewell et al. | Large-scale compute-intensive analysis via a combined in-situ and co-scheduling workflow approach | |
CN110147455A (zh) | 一种人脸匹配检索装置及方法 | |
US9424370B2 (en) | System and method for spatial partitioning of CAD models | |
Choi et al. | Vispark: GPU-accelerated distributed visual computing using spark | |
Vo et al. | MaReIA: a cloud MapReduce based high performance whole slide image analysis framework | |
Rouhani et al. | Rise: An automated framework for real-time intelligent video surveillance on fpga | |
US11409564B2 (en) | Resource allocation for tuning hyperparameters of large-scale deep learning workloads | |
CN114443236A (zh) | 一种任务处理方法、装置、系统、设备及介质 | |
CN110325984B (zh) | 在图形中进行层次社区检测的系统和方法 | |
US11042530B2 (en) | Data processing with nullable schema information | |
Tripathi et al. | A comparative analysis of conventional hadoop with proposed cloud enabled hadoop framework for spatial big data processing | |
US20220343146A1 (en) | Method and system for temporal graph neural network acceleration | |
CN115033616A (zh) | 一种基于多轮采样的数据筛查规则验证方法及其装置 | |
CN103942235A (zh) | 针对大规模数据集交叉比较的分布式计算系统和方法 | |
Zou et al. | An integrated disaster rapid cloud service platform using remote sensing data | |
US10565006B2 (en) | Platform for analytic applications | |
Li et al. | Application and performance optimization of MapReduce model in image segmentation | |
Binyahib | Scientific visualization on supercomputers: A survey | |
JP6130915B2 (ja) | 情報処理システム及び情報処理方法 | |
Gunarathne et al. | Distributing deep learning inference on edge devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |