CN111427847A - 面向用户自定义元数据的索引与查询方法和系统 - Google Patents
面向用户自定义元数据的索引与查询方法和系统 Download PDFInfo
- Publication number
- CN111427847A CN111427847A CN202010259594.3A CN202010259594A CN111427847A CN 111427847 A CN111427847 A CN 111427847A CN 202010259594 A CN202010259594 A CN 202010259594A CN 111427847 A CN111427847 A CN 111427847A
- Authority
- CN
- China
- Prior art keywords
- user
- attribute
- value
- defined metadata
- query
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000003860 storage Methods 0.000 claims abstract description 63
- 238000004590 computer program Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 20
- 238000000605 extraction Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 13
- 239000000284 extract Substances 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 abstract description 5
- 238000011160 research Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 15
- 238000013523 data management Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
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
- G06F16/137—Hash-based
-
- 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/14—Details of searching files based on file metadata
- G06F16/148—File search processing
- G06F16/152—File search processing using file content signatures, e.g. hash values
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向用户自定义元数据的索引与查询方法和系统,本发明索引方法包括提取用户自定义元数据,初始化包含值存储哈希表、路径存储哈希表的层次式哈希索引结构并填充用户自定义元数据,值存储哈希表的键存储“属性名”、值存储该“属性名”对应的“属性值”集合;路径存储哈希表的键存储“属性名”和某一“属性值”组成的字符串,值存储该“属性名”及“属性值”对应“数据对象路径”集合。本发明只需提取文件的用户自定义元数据信息,无需任何数据移动开销;相比于遍历方式,本发明设计的层次式索引与查询机制能够快速定位目标文件,高效满足查询需求,能够满足科研人员对科学数据的定位需求。
Description
技术领域
本发明涉及自描述文件格式的索引与查询技术,具体涉及一种面向用户自定义元数据的索引与查询方法和系统。
背景技术
科学模拟和工业仿真对计算能力的强烈需求促使了高性能计算系统的迅猛发展。传统高性能计算系统包含大量通过高速互联网络连接的计算节点;这些计算节点本身往往不挂载本地磁盘,而是依赖构建于磁盘阵列之上的并行文件系统(如Lustre 文件系统)提供高并发的I/O性能和可靠的持久化存储能力。文件元数据是由文件系统预定义的、描述文件属性的信息,一般包含文件的大小、创建时间、所属用户、读写权限和拓展属性等信息,一般以索引节点数据结构的形式实现。文件元数据由文件系统负责组织和管理,是文件系统管理数据的关键。科学数据通常表示为多维数组,且数组中每个单元都可能是一个复杂的数据对象。直接将每个多维数组以文件的形式存储,并依赖于并行文件系统进行管理的方式存在以下不足。首先,文件系统的元数据信息固定,缺少对多维数组中数据元素的描述,不利于科研人员实现跨平台的数据共享;其次,科学数据快速增长,每个多维数组作为一个文件的管理方式显著增加文件系统元数据管理压力;此外,数据分析过程涉及大量不同科学数据,每个文件存储单个多维数组的方式不利于科研人员建立多维数组之间的联系。
为了有效存储和管理复杂的科学数据,自描述文件格式应需而生。HDF(Hierarchical Data Format)是一种典型自描述的文件格式,最初由美国国家超算中心研发,目前提供的版本主要包括HDF4和HDF5,被广泛使用于高能物理、气象和天文等不同科学领域。所谓“自描述”是指此种文件格式中既包含文件内部对象的元数据信息,又包含文件内部对象的数据信息。自描述文件格式耦合“元数据”和“数据”的方式允许科研人员将多个复杂的多维数组对象组织为单个自描述文件,同时提供专用的API接口用于管理和访问自描述文件格式内部的数据对象,从而实现便捷的跨平台的数据共享。
随着高性能计算系统的计算能力不断提升,大规模模拟实验和高精度观测设备产生的科学数据也呈爆炸性趋势增长。相比分析完整的TB甚至PB级的科学数据集,科研人员在科学发现过程中往往针对部分感兴趣的数据进行处理。例如,广州市气象局使用的天气预报模式每两个小时产生5 GB以上的数据。尽管一年的气象数据包含数万个HDF5文件,但气象学领域的科学家通常只对一部分数据感兴趣,如某些包含雷暴、台风等极端天气事件的文件。为了标注此类特殊数据,科研人员往往为文件添加“属性名-属性值”形式的用户自定义元数据信息,如普通气象文件的用户自定义元数据信息为“气象类型-无”,而包含台风的气象文件的用户自定义元数据信息则为“气象类型-台风”。虽然用户自定义元数据可以作为文件元数据的拓展属性,但由于数据服务与文件系统分离,导致文件系统无法有效根据用户自定义元数据定位目标文件,遍历文件系统从而筛选所需文件的方式必然效率低下。HDF5自描述文件格式虽然提供相应的接口允许用户便捷的为文件添加用户自定义元数据,但是同样缺乏有效的索引查询机制。将科学数据导入数据库等外部数据管理系统虽然能够满足用户的索引和查询需求,但是随着数据量的不断增加,数据在并行文件系统与外部数据管理系统之间的移动成本难以忽略。因此,现有遍历方式和将数据导入外部数据管理系统的方式难以应用到大规模科学数据管理场景中。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种面向用户自定义元数据的索引与查询方法和系统,本发明设计了用户自定义元数据提取和层次式哈希索引与查询机制,相比于将科学数据导入外部数据管理系统的方式,本发明只需提取文件的用户自定义元数据信息,无需任何数据移动开销;相比于遍历方式,本发明设计的层次式索引与查询机制能够快速定位目标文件,高效满足查询需求,能够满足科研人员对科学数据的定位需求。
为了解决上述技术问题,本发明采用的技术方案为:
一种面向用户自定义元数据的索引方法,实施步骤包括:
1)获取自描述文件的用户自定义元数据,包括“属性名”、“属性值”和“数据对象路径”;
2)初始化包含值存储哈希表ValueStore、路径存储哈希表PathStore的层次式哈希索引结构并填充用户自定义元数据,所述值存储哈希表ValueStore的键存储“属性名”、值存储该“属性名”对应的“属性值”集合;所述路径存储哈希表PathStore的键存储“属性名”和某一“属性值”组成的字符串,值存储该“属性名”及“属性值”对应“数据对象路径”集合;
3)将层次式哈希索引结构持久化存储。
可选地,步骤1)之前还包括根据自描述文件生成元数据信息的步骤:搜索指定路径,收集所有自描述文件的路径信息并加入共享任务队列;启动多个元数据提取进程,为每个元数据提取进程分发任务,每个元数据提取进程独立从共享任务队列中获取待处理的自描述文件的路径,遍历该自描述文件的内部数据集并提取用户自定义元数据信息,所述用户自定义元数据信息包括属性名、属性值和数据对象路径;汇总所有进程提取的用户自定义元数据信息。
可选地,步骤3)中将层次式哈希索引结构持久化存储具体是指将层次式哈希索引结构写入文件系统的索引文件。
可选地,步骤3)之后还包括加载写入文件系统中的索引文件重构层次式哈希索引结构的步骤。
可选地,所述层次式哈希索引结构还包括定制哈希表CHTable,所述定制哈希表CHTable中的键分别存储值存储哈希表ValueStore的“属性值”集合中的元素、路径存储哈希表PathStore的“数据对象路径”集合的元素,且对应的值均为空。
此外,本发明还提供一种面向用户自定义元数据的索引系统,包括计算机设备,该计算机设备被编程或配置以执行所述面向用户自定义元数据的索引方法的步骤,或者该计算机的存储器上存储有设备被编程或配置以执行所述面向用户自定义元数据的索引方法的计算机程序。
此外,本发明还提供一种面向用户自定义元数据的查询方法,处理类型为范围查询的用户查询请求的实施步骤包括:
A1)获取用户查询请求中指定的目标“属性名”;
A2)根据目标“属性名”查询值存储哈希表ValueStore得到目标“属性名”对应的所有“属性值”集合,其中值存储哈希表ValueStore中存储的被查询数据的键为“属性名”、值为该“属性名”对应的所有“属性值”集合;其次,根据查询请求中指定的“属性值”范围筛选满足查询条件的“属性值”;
A3)针对目标“属性名”对应的所有筛选后的“属性值”:将目标“属性名”、该“属性值”组合为新的字符串,根据新的字符串作为键查询路径存储哈希表PathStore得到该“属性值”对应的“数据对象路径”集合,其中路径存储哈希表PathStore中存储的被查询数据的键为“属性名”和某一“属性值”组成的字符串,值为该“属性名”及“属性值”对应的“数据对象路径”集合;
A4)将每一个“属性值”查询得到的“数据对象路径”集合组合后作为查询结果返回。
此外,本发明还提供一种面向用户自定义元数据的查询方法,处理类型为非范围查询的用户查询请求的实施步骤包括:
B1)获取用户查询请求中指定的目标“属性名”和目标“属性值”;
B2)将目标“属性名”和目标“属性值”组合为新的字符串,根据新的字符串作为键查询路径存储哈希表PathStore得到该键对应的“数据对象路径”集合,其中路径存储哈希表PathStore中存储的被查询数据的键为“属性名”和某一“属性值”组成的字符串,值为该“属性名”及“属性值”对应的“数据对象路径”集合,并将得到的“数据对象路径”集合作为查询结果返回。
此外,本发明还提供一种面向用户自定义元数据的查询系统,包括计算机设备,该计算机设备被编程或配置以执行所述面向用户自定义元数据的查询方法的步骤,或者该计算机的存储器上存储有设备被编程或配置以执行所述面向用户自定义元数据的查询方法的计算机程序。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有设备被编程或配置以执行所述面向用户自定义元数据的索引方法的计算机程序,或者该计算机可读存储介质上存储有设备被编程或配置以执行所述面向用户自定义元数据的查询方法的计算机程序。
和现有技术相比,本发明面向用户自定义元数据的索引方法具有下述优点:本发明面向用户自定义元数据的索引方法针对科学数据特点和文件定位需求,设计了层次式哈希索引结构,通过“属性名”到“属性值”的哈希索引结构,确定“属性名”的范围查询可筛选出满足用户要求的“属性值”,通过将“属性名”和“属性值”组合为新的键,并构建该键到文件路径的哈希索引结构,文件定位请求可在常数时间内完成,具有查询速度快,且支持范围查询的优点。
和现有技术相比,本发明面向用户自定义元数据的查询方法具有下述优点:本发明面向用户自定义元数据的查询方法为基于本发明面向用户自定义元数据的索引方法的查询分发,基于层次式哈希索引结构,通过“属性名”到“属性值”的哈希索引结构,确定“属性名”的范围查询可筛选出满足用户要求的“属性值”,通过将“属性名”和“属性值”组合为新的键,并构建该键到文件路径的哈希索引结构,文件定位请求可在常数时间内完成,具有查询速度快,且支持范围查询的优点。
附图说明
图1为本发明实施例索引方法的核心流程图。
图2为本发明实施例索引及查询方法的全流程示意图。
图3为本发明实施例中层次式哈希索引结构的示意图。
图4为本发明实施例中的定制哈希表CHTable结构的示意图(以路径存储哈希表PathStore为例)。
具体实施方式
如图1所示,本实施例面向用户自定义元数据的索引方法的实施步骤包括:
1)获取自描述文件的用户自定义元数据,包括“属性名”、“属性值”和“数据对象路径”;
2)初始化包含值存储哈希表ValueStore、路径存储哈希表PathStore的层次式哈希索引结构并填充用户自定义元数据,所述值存储哈希表ValueStore的键(KEY)存储“属性名”、值(VALUE)存储该“属性名”对应的“属性值”集合;所述路径存储哈希表PathStore的键存储“属性名”和某一“属性值”组成的字符串,值存储该“属性名”及“属性值”对应“数据对象路径”集合;
3)将层次式哈希索引结构持久化存储。
参见图2中的标号3、4、5所示步骤图框即为本实施例面向用户自定义元数据的索引方法的实施步骤1)~步骤3)对应的步骤。参见图2中的标号1、2、3所示步骤图框,本实施例步骤1)之前还包括根据自描述文件生成元数据信息的步骤:搜索指定路径,收集所有自描述文件的路径信息并加入共享任务队列;启动多个元数据提取进程,为每个元数据提取进程分发任务,每个元数据提取进程独立从共享任务队列中获取待处理的自描述文件的路径,遍历该自描述文件的内部数据集并提取用户自定义元数据信息,所述用户自定义元数据信息包括属性名、属性值和数据对象路径;汇总所有进程提取的用户自定义元数据信息。本实施例中,自描述文件具体为HDF5文件(后缀“.h5”);本实施例中,进程号为0的根进程负责分发任务,为每个进程分发共享任务队列中不重叠的子集,每个元数据提取进程初始化由“属性名”,“属性值”和“路径”条目构成的元数据信息表,遍历其分发的待处理HDF5文件路径,并用提取到的用户自定义元数据信息填充元数据信息表,最终进程号为0的根进程汇总各个进程收集的元数据信息表,并为提取的元数据信息构建层次式哈希索引结构。
本实施例中步骤1)获取的自描述文件的用户自定义元数据如表1所示:
表1:自描述文件的用户自定义元数据表。
科学实验和观测设备产生的科学数据一般表现一次写多次读的访问模式,修改请求极少。基于用户自定义元数据的文件定位需求通常表现为等值查询和范围查询的形式,如定位包含特定气象类型TC的文件可将查询需求表示为“SELECT FILES WHERE Event =TC”,或定位分辨率小于10的文件可将查询需求表示为“SELECT FILES WHERE Resolution< 10”。常用索引结构包括B+树索引、位图索引和哈希索引。B+树索引结构的更新和查询性能均衡,常应用于数据库场景;在科学数据修改请求极少的特点下,B+树索引结构适合“插入\删除”请求较多的特点未得到充分利用,且“对数级”的查询复杂度难以满足对大量科学数据的快速定位需求。位图索引结构适合更新请求少的场景,通过按位与或操作能够快速响应查询请求;然而位图索引昂贵的索引构建开销和巨大的索引存储需求导致其难以有效满足用户自定义元数据索引信息的快速初始化和便捷管理需求。哈希索引结构查询速度极快,但是只支持等值查询,无法满足范围查询需求。针对上述问题,本实施例针对科学数据特点和基于用户自定义元数据的文件定位需求,设计层次式哈希索引结构,本实施例步骤2)中构建“属性名”到“属性值”的哈希索引结构,记为值存储哈希表ValueStore,用于记录提取的用户自定义元数据信息中每个“属性名”对应的所有出现的“属性值”;为了满足基于用户自定义元数据的文件定位需求,将每个“属性名”和每个出现的“属性值”组合重构为新的键,建立该键与对应文件路径的哈希索引结构,记为路径存储哈希表PathStore。处理范围查询请求时,先查询ValueStore,获取指定“属性名”下满足范围查询条件的“属性值”;之后根据“属性名”和“属性值”组合构成的键,查询PathStore,返回匹配的路径信息。将值存储哈希表ValueStore和路径存储哈希表PathStore的值(VALUE)组织为哈希表的形式。值存储哈希表ValueStore和路径存储哈希表PathStore哈希索引结构中,每个键(KEY)对应的值(VALUE)可能包含多个“属性值”或“文件路径”信息。从而使得层次式哈希索引结构既能支持基于用户自定义元数据的范围查询,又能快速响应查询请求。最终,步骤2)得到的层次式哈希索引结构如图3所示。
参见图2中的标号5所示步骤图框,本实施例步骤3)中将层次式哈希索引结构持久化存储具体是指将层次式哈希索引结构写入文件系统的索引文件。元数据提取进程在构建层次式哈希索引后,单纯将索引信息存储于内存空间的方式缺乏容错保证,一旦该进程所在节点发生故障,则会导致索引信息丢失。针对该问题,本实施例将生成的索引信息存储为单独的索引文件,由底层的文件系统负责管理。该方案一方面实现索引信息的持久化存储,另一方面有利于科学数据跨平台共享,如用户将某个路径下的所有文件上传到云端或拷贝至其他集群的文件系统,用户只需将对应的索引文件进行拷贝就能满足文件定位需求,有效避免每次定位数据时重新提取用户自定义元数据并构建层次式索引的冗余操作。
参见图2中的标号6所示步骤图框,将层次式哈希索引结构写入文件系统的索引文件后本实施例中还包括启动索引服务进程、判断索引文件是否存在的步骤,若索引文件存在则表示持久化存储处理完毕;否则跳转执行标号1的步骤继续根据自描述文件生成元数据信息。其中,索引服务进程加载位于文件系统的索引文件,用于重构层次式哈希索引结构。毫无疑问,根据自描述文件生成元数据信息既可以根据需要采用一次性的方式生成,也可以根据需要采用定时触发的方式生成,还可以根据需要采用触发条件或者人工干预的方式来生成。
参见图2中的标号7所示步骤图框,本实施例中步骤3)之后还包括加载写入文件系统中的索引文件重构层次式哈希索引结构的步骤。本实施例中该步骤是通过索引服务进程来实现的,其目的是为了实现面向用户自定义元数据的查询做好准备。用户可通过提供的应用接口表达基于“用户自定义元数据”的文件定位请求,索引服务进程根据用户的文件定位需求查询层次式哈希索引。
层次式哈希索引结构的值存储哈希表ValueStore、路径存储哈希表PathStore中,值数据结构以链表或字符串的形式实现时,虽然查询操作可通过获取整个值数据结构实现在常数时间内完成,但是在向值数据结构插入或删除记录的情况下,需要遍历完整值数据结构,进而判断待插入或删除的记录是否存在,并完成相应更新操作。当值存储哈希表ValueStore或路径存储哈希表PathStore的值数据结构包含大量记录时,此种遍历方式导致记录更新开销显著增加。为了解决上述问题,本实施例中,层次式哈希索引结构还包括定制哈希表CHTable(Customized Hash Table),定制哈希表CHTable中的键分别存储值存储哈希表ValueStore的“属性值”集合中的元素、路径存储哈希表PathStore的“数据对象路径”集合的元素,且对应的值均为空,如图4所示。
本实施例中,基于定制哈希表CHTable处理记录的插入或删除过程如下:
首先,分别根据待更新记录的“属性名”和“属性名-属性值”为键,查询值存储哈希表ValueStore和路径存储哈希表PathStore,获取对应的完整值数据结构;
然后,由于每个值数据结构中的所有记录被组织为定制哈希表CHTable,因此可通过新的键快速定位值数据结构中的待更新记录:具体而言,对于值存储哈希表ValueStore,根据待更新记录的“属性值”为键,判断该记录是否存在;对于路径存储哈希表PathStore,根据待更新记录的“文件路径”为键,判断记录是否存在;
其次,根据操作类型完成相应更新操作:对于插入操作,若定制哈希表CHTable不存在相应记录,则根据查询所用的键插入新的记录;否则,直接返回,不做更新。对于删除操作,若定制哈希表CHTable不存在相应记录,则直接返回;否则,根据查询所用的键删除相应记录。
最后,将更新后的值数据结构分别写回值存储哈希表ValueStore和路径存储哈希表PathStore。
此外,本实施例还提供一种面向用户自定义元数据的索引系统,包括计算机设备,该计算机设备被编程或配置以执行前述面向用户自定义元数据的索引方法的步骤,或者该计算机的存储器上存储有设备被编程或配置以执行前述面向用户自定义元数据的索引方法的计算机程序。
参见图2中的标号8和8.1所示步骤图框,本实施例面向用户自定义元数据的查询方法中处理类型为范围查询的用户查询请求的实施步骤包括:
A1)获取用户查询请求中指定的目标“属性名”;
A2)根据目标“属性名”查询值存储哈希表ValueStore得到目标“属性名”对应的所有“属性值”集合,其中值存储哈希表ValueStore中存储的被查询数据的键为“属性名”、值为该“属性名”对应的所有“属性值”集合;其次,根据查询请求中指定的“属性值”范围筛选满足查询条件的“属性值”;
A3)针对目标“属性名”对应的每一个筛选后的“属性值”:将目标“属性名”、该“属性值”组合为新的字符串,根据新的字符串作为键查询路径存储哈希表PathStore得到该键对应的“数据对象路径”集合,其中路径存储哈希表PathStore中存储的被查询数据的键为“属性名”和某一“属性值”组成的字符串,值为该“属性名”及“属性值”对应的“数据对象路径”集合;
A4)将每一个“属性值”查询得到的“数据对象路径”集合组合后作为查询结果返回。
参见步骤A1)~步骤A4)可知,对于只确定“属性名”的范围查询,则先以指定的“属性名”为键,查询值存储哈希表ValueStore,遍历该键对应的所有“属性值”并筛选出满足查询要求的值;之后对每个筛选后的“属性值”,将其与指定的“属性名”组合,构成新的键,查询路径存储哈希表PathSotre获取满足要求的文件路径信息。
本实施例中,步骤A1)之前还包括判断用户查询请求的类型的步骤,如果用户查询请求的类型为范围查询则跳转执行步骤A1);否则如果用户查询请求的类型为非范围查询,则不能采用步骤A1)~步骤A4)的方法。
本实施例中还提供一种处理类型为非范围查询的用户查询请求的方法,参见图2中的标号8和8.2所示步骤图框,处理类型为非范围查询的用户查询请求的实施步骤包括:
B1)获取用户查询请求中指定的目标“属性名”和目标“属性名”;
B2)将目标“属性名”和目标“属性名”组合为新的字符串,根据新的字符串作为键查询路径存储哈希表PathStore得到该“属性值”对应的“数据对象路径”集合,其中路径存储哈希表PathStore中存储的被查询数据的键为“属性名”和某一“属性值”组成的字符串,值为该“属性名”及“属性值”对应的“数据对象路径”集合,并将得到的“数据对象路径”集合作为查询结果返回。
参见步骤B1)~步骤B2)可知,对于“属性名”和“属性值”都确定的等值查询,则直接将用户指定的“属性名”和“属性值”组合为新的键,查询路径存储哈希表PathSotre获取满足要求的文件路径信息。
综上所述,本实施例设计一种高效的“用户自定义元数据”提取和索引查询机制,为了快速提取HDF5格式文件所包含的“用户自定义元数据”信息,本实施例采用多进程并发元数据提取策略。为了快速响应查询请求,并支持范围查询,本实施例设计层次式哈希索引结构,建立“用户自定义元数据”与原始文件/数据集的映射关系。另外,本实施例将索引信息以文件形式存储于底层并行文件系统,在保证容错的同时,利用并行文件系统的聚合带宽加速索引文件读写。本实施例具有初始化速度快、查询速度快且支持范围查询、去重复且索引结构更新速度快、以及支持容错和跨平台数据共享等优点。
1、本实施例利用多进程并发快速提取用户自定义元数据信息,具有初始化速度快的特点。多个进程共享同一任务队列,每个进程划分不重叠的任务子集,并发遍历待处理的HDF5文件,有效加速用户自定义元数据信息提取过程,降低初始化时间。
2、本实施例设计层次式哈希索引结构,具有查询速度快,且支持范围查询的优点。本实施例针对科学数据特点和文件定位需求,设计了层次式哈希索引结构。通过“属性名”到“属性值”的哈希索引结构,确定“属性名”的范围查询可筛选出满足用户要求的“属性值”。通过将“属性名”和“属性值”组合为新的键,并构建该键到文件路径的哈希索引结构,文件定位请求可在常数时间内完成。
3、本实施例将索引信息存储为单个索引文件,具有支持容错和跨平台共享数据的优势。只将索引信息存储于内存的方式无法实现索引的持久化存储,一旦节点发生故障,则会导致索引信息丢失。相比之下,本实施例将索引信息存储为单独的索引文件,既能利用文件系统的容错能力保证索引数据的弹性可恢复,又能允许科研人员便捷的实现跨平台索引信息拷贝,简化数据共享。
4、本实施例将哈希索引的值结构组织为定制的定制哈希表CHTable,具有去重复、插入\删除速度快的优势。直接将值结构组织为字符串的形式会导致每次插入或删除新的值时,需要遍历整个值结构。在管理海量科学数据的场景下,该遍历的方式效率低下。相比之下,本实施例将值结构组织为定制的哈希表,一方面能够有效去除重复数据,另一方面能够在常数时间内完成对纪录的插入或删除操作。
此外,本实施例还提供一种面向用户自定义元数据的查询系统,包括计算机设备,其特征在于,该计算机设备被编程或配置以执行前述面向用户自定义元数据的查询方法的步骤,或者该计算机的存储器上存储有设备被编程或配置以执行前述面向用户自定义元数据的查询方法的计算机程序。
此外,本实施例还提供一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有设备被编程或配置以执行前述面向用户自定义元数据的索引方法的计算机程序,或者该计算机可读存储介质上存储有设备被编程或配置以执行前述面向用户自定义元数据的查询方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种面向用户自定义元数据的索引方法,其特征在于实施步骤包括:
1)获取自描述文件的用户自定义元数据,包括“属性名”、“属性值”和“数据对象路径”;
2)初始化包含值存储哈希表ValueStore、路径存储哈希表PathStore的层次式哈希索引结构并填充用户自定义元数据,所述值存储哈希表ValueStore的键存储“属性名”、值存储该“属性名”对应的“属性值”集合;所述路径存储哈希表PathStore的键存储“属性名”和某一“属性值”组成的字符串,值存储该“属性名”及“属性值”对应“数据对象路径”集合;
3)将层次式哈希索引结构持久化存储。
2.根据权利要求1所述的面向用户自定义元数据的索引方法,其特征在于,步骤1)之前还包括根据自描述文件生成元数据信息的步骤:搜索指定路径,收集所有自描述文件的路径信息并加入共享任务队列;启动多个元数据提取进程,为每个元数据提取进程分发任务,每个元数据提取进程独立从共享任务队列中获取待处理的自描述文件的路径,遍历该自描述文件的内部数据集并提取用户自定义元数据信息,所述用户自定义元数据信息包括属性名、属性值和数据对象路径;汇总所有进程提取的用户自定义元数据信息。
3.根据权利要求1所述的面向用户自定义元数据的索引方法,其特征在于,步骤3)中将层次式哈希索引结构持久化存储具体是指将层次式哈希索引结构写入文件系统的索引文件。
4.根据权利要求1所述的面向用户自定义元数据的索引方法,其特征在于,步骤3)之后还包括加载写入文件系统中的索引文件重构层次式哈希索引结构的步骤。
5.根据权利要求1所述的面向用户自定义元数据的索引方法,其特征在于,所述层次式哈希索引结构还包括定制哈希表CHTable,所述定制哈希表CHTable中的键分别存储值存储哈希表ValueStore的“属性值”集合中的元素、路径存储哈希表PathStore的“数据对象路径”集合的元素,且对应的值均为空。
6.一种面向用户自定义元数据的索引系统,包括计算机设备,其特征在于,该计算机设备被编程或配置以执行权利要求1~5中任意一项所述面向用户自定义元数据的索引方法的步骤,或者该计算机的存储器上存储有设备被编程或配置以执行权利要求1~5中任意一项所述面向用户自定义元数据的索引方法的计算机程序。
7.一种面向用户自定义元数据的查询方法,其特征在于,处理类型为范围查询的用户查询请求的实施步骤包括:
A1)获取用户查询请求中指定的目标“属性名”;
A2)根据目标“属性名”查询值存储哈希表ValueStore得到目标“属性名”对应的所有“属性值”集合,其中值存储哈希表ValueStore中存储的被查询数据的键为“属性名”、值为该“属性名”对应的所有“属性值”集合;其次,根据查询请求中指定的“属性值”范围筛选满足查询条件的“属性值”;
A3)针对目标“属性名”对应的所有筛选后的“属性值”:将目标“属性名”、该“属性值”组合为新的字符串,根据新的字符串作为键查询路径存储哈希表PathStore得到该“属性值”对应的“数据对象路径”集合,其中路径存储哈希表PathStore中存储的被查询数据的键为“属性名”和某一“属性值”组成的字符串,值为该“属性名”及“属性值”对应的“数据对象路径”集合;
A4)将每一个“属性值”查询得到的“数据对象路径”集合组合后作为查询结果返回。
8.一种面向用户自定义元数据的查询方法,其特征在于,处理类型为非范围查询的用户查询请求的实施步骤包括:
B1)获取用户查询请求中指定的目标“属性名”和目标“属性值”;
B2)将目标“属性名”和目标“属性值”组合为新的字符串,根据新的字符串作为键查询路径存储哈希表PathStore得到该键对应的“数据对象路径”集合,其中路径存储哈希表PathStore中存储的被查询数据的键为“属性名”和某一“属性值”组成的字符串,值为该“属性名”及“属性值”对应的“数据对象路径”集合,并将得到的“数据对象路径”集合作为查询结果返回。
9.一种面向用户自定义元数据的查询系统,包括计算机设备,其特征在于,该计算机设备被编程或配置以执行权利要求7~8中任意一项所述面向用户自定义元数据的查询方法的步骤,或者该计算机的存储器上存储有设备被编程或配置以执行权利要求7~8中任意一项所述面向用户自定义元数据的查询方法的计算机程序。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有设备被编程或配置以执行权利要求1~5中任意一项所述面向用户自定义元数据的索引方法的计算机程序,或者该计算机可读存储介质上存储有设备被编程或配置以执行权利要求7~8中任意一项所述面向用户自定义元数据的查询方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010259594.3A CN111427847B (zh) | 2020-04-03 | 2020-04-03 | 面向用户自定义元数据的索引与查询方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010259594.3A CN111427847B (zh) | 2020-04-03 | 2020-04-03 | 面向用户自定义元数据的索引与查询方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111427847A true CN111427847A (zh) | 2020-07-17 |
CN111427847B CN111427847B (zh) | 2023-04-11 |
Family
ID=71555765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010259594.3A Active CN111427847B (zh) | 2020-04-03 | 2020-04-03 | 面向用户自定义元数据的索引与查询方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111427847B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112597536A (zh) * | 2020-12-23 | 2021-04-02 | 瀚高基础软件股份有限公司 | 数据库表文件被非法删除的实时检测方法及装备 |
CN113051268A (zh) * | 2021-03-19 | 2021-06-29 | 中国工商银行股份有限公司 | 数据查询方法、数据查询装置、电子设备及存储介质 |
CN113138987A (zh) * | 2021-04-28 | 2021-07-20 | 深圳软牛科技有限公司 | 基于内存数据的数据处理方法和相关设备 |
CN113301095A (zh) * | 2020-12-08 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 提供云端对象的数据的方法以及装置 |
CN113946152A (zh) * | 2021-11-22 | 2022-01-18 | 中国重汽集团济南动力有限公司 | 一种全局路径规划方法、系统及低速商用无人车 |
CN115309947A (zh) * | 2022-08-15 | 2022-11-08 | 北京欧拉认知智能科技有限公司 | 基于图的在线分析引擎实现方法及系统 |
CN115878321A (zh) * | 2022-12-14 | 2023-03-31 | 成都信息工程大学 | 一种基于gpu加速的文件搜索方法 |
CN117112575A (zh) * | 2023-10-20 | 2023-11-24 | 杭州行芯科技有限公司 | 电路元素的名称管理方法、系统及查询方法 |
CN117909301A (zh) * | 2024-03-19 | 2024-04-19 | 上海合见工业软件集团有限公司 | 基于索引的对象查询方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8135763B1 (en) * | 2005-09-30 | 2012-03-13 | Emc Corporation | Apparatus and method for maintaining a file system index |
CN103020521A (zh) * | 2011-09-22 | 2013-04-03 | 腾讯科技(深圳)有限公司 | 木马扫描方法及系统 |
CN104462091A (zh) * | 2013-09-13 | 2015-03-25 | 方正信息产业控股有限公司 | Xml数据的操作方法与装置 |
CN108363931A (zh) * | 2018-02-13 | 2018-08-03 | 北京奇安信科技有限公司 | 一种对隔离区文件进行还原的方法及装置 |
CN110120888A (zh) * | 2019-04-26 | 2019-08-13 | 井冈山大学 | 一种云众包平台海量服务资源组合优化方法与系统 |
-
2020
- 2020-04-03 CN CN202010259594.3A patent/CN111427847B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8135763B1 (en) * | 2005-09-30 | 2012-03-13 | Emc Corporation | Apparatus and method for maintaining a file system index |
CN103020521A (zh) * | 2011-09-22 | 2013-04-03 | 腾讯科技(深圳)有限公司 | 木马扫描方法及系统 |
CN104462091A (zh) * | 2013-09-13 | 2015-03-25 | 方正信息产业控股有限公司 | Xml数据的操作方法与装置 |
CN108363931A (zh) * | 2018-02-13 | 2018-08-03 | 北京奇安信科技有限公司 | 一种对隔离区文件进行还原的方法及装置 |
CN110120888A (zh) * | 2019-04-26 | 2019-08-13 | 井冈山大学 | 一种云众包平台海量服务资源组合优化方法与系统 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113301095B (zh) * | 2020-12-08 | 2024-05-10 | 阿里巴巴集团控股有限公司 | 提供云端对象的数据的方法以及装置 |
CN113301095A (zh) * | 2020-12-08 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 提供云端对象的数据的方法以及装置 |
CN112597536A (zh) * | 2020-12-23 | 2021-04-02 | 瀚高基础软件股份有限公司 | 数据库表文件被非法删除的实时检测方法及装备 |
CN113051268A (zh) * | 2021-03-19 | 2021-06-29 | 中国工商银行股份有限公司 | 数据查询方法、数据查询装置、电子设备及存储介质 |
CN113138987A (zh) * | 2021-04-28 | 2021-07-20 | 深圳软牛科技有限公司 | 基于内存数据的数据处理方法和相关设备 |
CN113946152A (zh) * | 2021-11-22 | 2022-01-18 | 中国重汽集团济南动力有限公司 | 一种全局路径规划方法、系统及低速商用无人车 |
CN115309947A (zh) * | 2022-08-15 | 2022-11-08 | 北京欧拉认知智能科技有限公司 | 基于图的在线分析引擎实现方法及系统 |
CN115878321A (zh) * | 2022-12-14 | 2023-03-31 | 成都信息工程大学 | 一种基于gpu加速的文件搜索方法 |
CN115878321B (zh) * | 2022-12-14 | 2023-11-10 | 成都信息工程大学 | 一种基于gpu加速的文件搜索方法 |
CN117112575A (zh) * | 2023-10-20 | 2023-11-24 | 杭州行芯科技有限公司 | 电路元素的名称管理方法、系统及查询方法 |
CN117112575B (zh) * | 2023-10-20 | 2024-02-13 | 杭州行芯科技有限公司 | 电路元素的名称管理方法、系统及查询方法 |
CN117909301A (zh) * | 2024-03-19 | 2024-04-19 | 上海合见工业软件集团有限公司 | 基于索引的对象查询方法、装置、设备及介质 |
CN117909301B (zh) * | 2024-03-19 | 2024-06-07 | 上海合见工业软件集团有限公司 | 基于索引的对象查询方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111427847B (zh) | 2023-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111427847B (zh) | 面向用户自定义元数据的索引与查询方法和系统 | |
JP7309005B2 (ja) | データベーステナントマイグレーションのシステム及び方法 | |
US11899641B2 (en) | Trie-based indices for databases | |
US11468103B2 (en) | Relational modeler and renderer for non-relational data | |
CN106708993B (zh) | 基于大数据技术的空间数据存储处理中间件框架实现方法 | |
US9149054B2 (en) | Prefix-based leaf node storage for database system | |
US8626717B2 (en) | Database backup and restore with integrated index reorganization | |
US8386436B2 (en) | System and method for data storage | |
CN113986873B (zh) | 一种海量物联网数据模型化的处理、存储与共享方法 | |
JP2017507426A (ja) | 半構造データスキーマのトランスペアレントディスカバリ | |
CN103020315A (zh) | 一种基于主从分布式文件系统的海量小文件存储方法 | |
US10789228B2 (en) | Data presence/absence determination apparatus and computer-readable storage medium storing program for determination of data presence/absence | |
US11151081B1 (en) | Data tiering service with cold tier indexing | |
WO2012114531A1 (ja) | 計算機システム及びデータ管理方法 | |
US20170255708A1 (en) | Index structures for graph databases | |
CN105160039A (zh) | 一种基于大数据的查询方法 | |
CN109284273B (zh) | 一种采用后缀数组索引的海量小文件查询方法及系统 | |
CN102693286A (zh) | 一种对文件内容与元数据进行组织管理的方法 | |
US20210349850A1 (en) | Managing snapshotting of a dataset using an ordered set of b+ trees | |
CN107273443B (zh) | 一种基于大数据模型元数据的混合索引方法 | |
WO2016175880A1 (en) | Merging incoming data in a database | |
CN102955808A (zh) | 一种数据获取方法和分布式文件系统 | |
CN105468599A (zh) | 一种存储虚拟化系统的元数据层次管理方法 | |
CN117873405B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
Abdalla et al. | NoSQL: Robust and efficient data management on deduplication process by using a mobile application |
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 |