CN117435776A - 元数据存储和查询方法、装置、计算机设备及存储介质 - Google Patents

元数据存储和查询方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN117435776A
CN117435776A CN202311755927.1A CN202311755927A CN117435776A CN 117435776 A CN117435776 A CN 117435776A CN 202311755927 A CN202311755927 A CN 202311755927A CN 117435776 A CN117435776 A CN 117435776A
Authority
CN
China
Prior art keywords
metadata
information
target
key
target key
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
Application number
CN202311755927.1A
Other languages
English (en)
Other versions
CN117435776B (zh
Inventor
王淏舟
杨峻峰
赵园
韩冰
秦轶群
郭罡
冯雷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Tuoshupai Technology Development Co ltd
Original Assignee
Hangzhou Tuoshupai Technology Development Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Tuoshupai Technology Development Co ltd filed Critical Hangzhou Tuoshupai Technology Development Co ltd
Priority to CN202311755927.1A priority Critical patent/CN117435776B/zh
Publication of CN117435776A publication Critical patent/CN117435776A/zh
Application granted granted Critical
Publication of CN117435776B publication Critical patent/CN117435776B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种元数据存储和查询方法、装置、计算机设备及存储介质,其中,该元数据存储方法包括:基于每个元数据块中的身份标识信息,构建与各个元数据块对应的霍夫曼编码树;生成霍夫曼编码树中每条编码路径对应的目标键,确定与目标键对应的目标磁盘页;进一步地,将每条编码路径对应的原始数据信息作为相关值,并将目标键与对应的相关值关联存储至目标磁盘页。通过本申请,解决了无法高效利用存储空间,导致数据存储成本较高的问题,实现了降低数据存储成本。

Description

元数据存储和查询方法、装置、计算机设备及存储介质
技术领域
本申请涉及信息处理技术领域,特别是涉及元数据存储和查询方法、装置、计算机设备及存储介质。
背景技术
元数据用于提供数据的属性和特征信息,其包含了数据的结构、格式以及内容等信息,利用元数据可以实现数据查询和数据质量管理等操作。不仅如此,元数据作为数据库中的关键数据,若元数据发生损坏,数据库将停止服务且不可恢复。因此,需要对元数据进行安全存储。
目前的元数据存储方法,判断所获取的待存储元数据的类型,根据待存储元数据的类型,利用不同的存储格式对待存储元数据进行处理,得到新的元数据,并将新的元数据存储在预设元数据存储***中。但是,上述存储方法无法高效利用存储空间,导致数据存储成本较高。
针对相关技术中存在无法高效利用存储空间,导致数据存储成本较高的问题,目前还没有提出有效的解决方案。
发明内容
在本实施例中提供了一种元数据存储和查询方法、装置、计算机设备及存储介质,以解决相关技术中无法高效利用存储空间,导致数据存储成本较高的问题。
第一个方面,在本实施例中提供了一种元数据存储方法,所述方法包括:
基于每个元数据块中的身份标识信息,构建与各个所述元数据块对应的霍夫曼编码树;
生成所述霍夫曼编码树中每条编码路径对应的目标键,确定与所述目标键对应的目标磁盘页;
将每条所述编码路径对应的原始数据信息作为相关值,并将所述目标键与对应的所述相关值关联存储至所述目标磁盘页。
在其中的一些实施例中,所述基于每个元数据块中的身份标识信息,构建与各个所述元数据块对应的霍夫曼编码树,包括:
获取每个所述元数据块中的所述身份标识信息;所述身份标识信息包括元数据标识、数据库标识、视图标识以及域标识;
对每个所述元数据块中的所述身份标识信息进行编码处理,得到对应的所述霍夫曼编码树;
其中,所述霍夫曼编码树的各层级分别与不同类别的所述身份标识信息相对应。
在其中的一些实施例中,所述生成所述霍夫曼编码树中每条编码路径对应的目标键,包括:
获取所述霍夫曼编码树中的每条所述编码路径;
获取所述编码路径对应的数据特征信息;所述数据特征信息包括版本信息和数据区特征编码;
确定所述编码路径中每个节点的编码,并基于每个所述节点的编码和所述数据特征信息,生成对应的所述目标键。
在其中的一些实施例中,在所述将所述目标键和对应的所述相关值关联存储至所述目标磁盘页之后,还包括:
在检测到所述目标磁盘页中各个所述元数据块的所述目标键存在相同编码段时,生成与所述相同编码段对应的标记值;所述标记值与所述相同编码段的引用地址相关联;
将所述元数据块中的所述相同编码段更新为所述标记值。
在其中的一些实施例中,在所述将所述目标键与对应的所述相关值关联存储至所述目标磁盘页之后,还包括:
在接收到新的元数据块时,生成所述新的元数据块对应的查询键;
获取所述查询键对应的编码树信息,并基于所述编码树信息对所述查询键进行编码处理,得到目标键;
将所述新的元数据块中原始数据信息作为相关值;
确定所述目标键对应的数据节点,将所述目标键和对应的所述相关值关联存储至所述数据节点。
第二个方面,在本实施例中提供了一种元数据查询方法,所述方法包括:
根据接收到的用户需求数据生成对应的查询键,并获取所述查询键对应的编码树信息;
基于所述编码树信息对所述查询键进行编码处理,得到目标键;
确定所述目标键对应的目标磁盘页,从所述目标磁盘页中获取与所述目标键对应的相关值;所述相关值存储有元数据块中的原始数据信息。
在其中的一些实施例中,所述获取所述查询键对应的编码树信息,包括:
在编码树缓存器中,检索所述查询键对应的编码树信息;
在未检索到所述编码树信息时,从元数据索引节点中提取所述编码树信息。
第三个方面,在本实施例中提供了一种元数据存储装置,所述装置包括:构建模块、生成模块和存储模块;
所述构建模块,用于基于每个元数据块中的身份标识信息,构建与各个所述元数据块对应的霍夫曼编码树;
所述生成模块,用于生成所述霍夫曼编码树中每条编码路径对应的目标键,确定与所述目标键对应的目标磁盘页;
所述存储模块,用于将每条所述编码路径对应的原始数据信息作为相关值,并将所述目标键与对应的所述相关值关联存储至所述目标磁盘页。
第四个方面,在本实施例中提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的元数据存储方法。
第五个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的元数据存储方法。
与相关技术相比,在本实施例中提供的元数据存储和查询方法、装置、计算机设备及存储介质,通过基于每个元数据块中的身份标识信息,构建与各个元数据块对应的霍夫曼编码树;生成霍夫曼编码树中每条编码路径对应的目标键,确定与目标键对应的目标磁盘页;进一步地,将每条编码路径对应的原始数据信息作为相关值,并将目标键与对应的相关值关联存储至目标磁盘页,解决了无法高效利用存储空间,导致数据存储成本较高的问题,实现了降低数据存储成本。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请一实施例提供的元数据存储方法的终端设备的硬件结构框图;
图2是本申请一实施例提供的元数据存储方法的流程图;
图3是本申请一实施例提供的霍夫曼编码树的结构示意图;
图4是本申请一实施例提供的子节点内联的结构示意图;
图5是本申请一实施例提供的元数据查询方法的流程图;
图6是本申请一优选实施例提供的元数据存储方法的流程图;
图7是本申请一实施例提供的元数据查询***的结构框图;
图8是本申请一实施例提供的元数据存储装置的结构框图;
图9是本申请一实施例提供的元数据查询装置的结构框图。
图中:102、处理器;104、存储器;106、传输设备;108、输入输出设备;10、构建模块;20、生成模块;30、存储模块;40、获取模块;50、编码模块;60、查询模块;100、控制模块;200、输入模块;300、编码器;400、编码树缓存器;500、元数据索引节点;600、处理器;700、元数据存储节点。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和***、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是本实施例的元数据存储方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的元数据存储方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(RadioFrequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种元数据存储方法,图2是本实施例的元数据存储方法的流程图,如图2所示,该流程包括如下步骤:
步骤S210,基于每个元数据块中的身份标识信息,构建与各个元数据块对应的霍夫曼编码树。
需要知道的是,在键值对(Key-Value,简称为KV)分布式存储***中,每个键Key与唯一的值Value相对应。而通过KV形式存储元数据时,将每个元数据块的转换为对应的KV数据,相关值Value用于保存元数据块的原始数据信息,目标键Key为元数据特征值,用于检索和查询对应的数据。
具体地,获取每个元数据块中的身份标识信息,该身份标识信息包括四个数据区域,分别为元数据标识、数据库标识、视图标识以及域标识,并对每个元数据块中的身份标识信息进行编码处理,得到对应的霍夫曼编码树。
其中,霍夫曼编码树是一种用于数据压缩的编码树结构,且霍夫曼编码树的各层级分别与不同类别的身份标识信息相对应,即霍夫曼编码树的每一层级只负责编码同一类别的身份标识信息。
步骤S220,生成霍夫曼编码树中每条编码路径对应的目标键,确定与目标键对应的目标磁盘页。
具体地,遍历上述霍夫曼编码树的各个层级,得到霍夫曼编码树中的每条编码路径。对于每条编码路径,获取与其对应的数据特征信息,其中,数据特征信息包括版本信息和数据区特征编码。
进一步地,提取编码路径中每个节点的编码,基于每个节点的编码,以及相关联的版本信息和数据区特征编码,组合生成对应的目标键,并确定与目标键对应的目标磁盘页。
需要说明的是,本实施例仅对元数据块中的身份标识信息执行编码操作,元数据块的版本信息和数据区特征编码保持原始形式不变。
步骤S230,将每条编码路径对应的原始数据信息作为相关值,并将目标键与对应的相关值关联存储至目标磁盘页。
具体地,每条编码路径对应不同的元数据块,所以在生成与编码路径对应的目标键之后,将相关联元数据块中的原始数据信息作为相关值,并将目标键与对应的相关值关联存储至目标磁盘页,以此实现元数据块的有序存储。此外,在查询元数据时,只需获取对应的磁盘页位置即可完成查询,避免扫描所有磁盘页,提高了后续数据查询效率。
需要知道的是,目标磁盘页与数据节点相对应,所有元数据按照目标键进行数据分片,存放于不同的数据节点,以此支持数据库***的负载均衡。另外,霍夫曼编码树中所有叶节点均存储有对应的数据节点位置信息,进一步提高了元数据查询性能。
目前的元数据存储方法,判断所获取的待存储元数据的类型,根据待存储元数据的类型,利用不同的存储格式对待存储元数据进行处理,得到新的元数据,并将新的元数据存储在预设元数据存储***中。但是,上述存储方法无法高效利用存储空间,导致数据存储成本较高。
而本申请相较于现有技术,对每个待存储的元数据块进行霍夫曼编码,得到对应的霍夫曼编码树,并在霍夫曼编码树中,生成每条编码路径对应的目标键。基于此,将每条编码路径对应的原始数据信息作为相关值,并确定与目标键对应的目标磁盘页,将目标键与对应的相关值关联存储至目标磁盘页,从而通过将构成目标键的数据信息转换为霍夫曼编码,降低了每个目标键所需的存储空间,解决了无法高效利用存储空间,导致数据存储成本较高的问题,实现了降低数据存储成本。
在其中的一些实施例中,基于每个元数据块中的身份标识信息,构建与各个元数据块对应的霍夫曼编码树,包括如下步骤:
步骤S211,获取每个元数据块中的身份标识信息;身份标识信息包括元数据标识、数据库标识、视图标识以及域标识;
步骤S212,对每个元数据块中的身份标识信息进行编码处理,得到对应的霍夫曼编码树;其中,霍夫曼编码树的各层级分别与不同类别的身份标识信息相对应。
具体地,每个待存储的元数据块,由多种身份标识信息、版本信息以及相应的原始数据信息组成。其中,身份标识信息包括元数据标识、数据库标识、视图标识和域标识,分别用于标识不同元数据块、区分同一数据库***中各个元数据块所在的不同数据库、与元数据块相关联的视图以及所属的不同域。
进一步地,扫描待存储的各个元数据块,将其包含的身份标识信息进行编码处理,以生成对应的霍夫曼编码树。以图3为例对元数据块的编码过程进行说明,首先获取待存储元数据块的元数据标识,将元数据标识编码为A作为编码树的根节点;获取元数据块的数据库标识,将其编码为节点A下的某一子节点;依次获取元数据块的视图标识和域标识,均编码为上一层级某一节点下的子节点。
通过本实施例,获取每个元数据块中的身份标识信息,该身份标识信息包括元数据标识、数据库标识、视图标识以及域标识,并对每个元数据块中的身份标识信息进行编码处理,得到对应的霍夫曼编码树,且霍夫曼编码树的各层级分别与不同类别的身份标识信息相对应,以此优化霍夫曼编码树,有效降低了霍夫曼编码树的层数,提高元数据块的编码和解码能力。
在其中的一些实施例中,生成霍夫曼编码树中每条编码路径对应的目标键,包括如下步骤:
步骤S221,获取霍夫曼编码树中的每条编码路径;
步骤S222,获取编码路径对应的数据特征信息;数据特征信息包括版本信息和数据区特征编码;
步骤S223,确定编码路径中每个节点的编码,并基于每个节点的编码和数据特征信息,生成对应的目标键。
具体地,遍历霍夫曼编码树的各个层级,得到霍夫曼编码树中的每条编码路径。如图3所示,“A-B-AB-AAA”、“A-B-AB-AAB”以及“A-B-AB-AAC”分别为三条不同的编码路径,且每条编码路径中的各个编码与同一元数据块中的不同身份标识信息相对应。
进一步地,获取与编码路径对应的数据特征信息,该数据特征信息包括元数据块的版本信息和数据区特征编码。其中,版本信息包含元数据块的版本号或时间戳等信息;而数据区特征编码是用于验证元数据块完整性和一致性的编码。
基于此,在生成每个元数据块的目标键时,获取当前元数据块中第一个数据区域,即元数据标识,从霍夫曼编码树中查找与元数据标识对应的根节点,并从根节点上提取相应的编码;其次,获取当前元数据块中第二个数据区域,即数据库标识,遍历根节点下的子节点,确定与数据库标识对应的子节点,并从该子节点上提取相应的编码;依次对第三个数据区域即视图标识、第四个数据区域即域标识执行上述相同的操作,分别得到与视图标识、域标识对应的编码。
获取元数据块中每个数据区域的编码后,结合获取的各个编码与数据特征信息,重新生成与元数据块对应的目标键。例如,元数据块中版本信息和数据区特征编码为010OPENPIECLOUDDB…,第一个数据区域至第四个数据区域的标识依次为314、00100000560000、000000000787899、00000005768000,而各个标识对应的编码分别为A、A、AA和AAA,此时重新生成的目标键为“A-A-AA-AAA-010OPENPIECLOUDDB…”。
需要知道的是,每个数据库***中包含多个数据库,每个数据库包含多个视图,每个视图包含多个域,而在每个域中保存有大量元数据块。在现有的键值对存储方式中,元数据块的目标键需要包含足够多的数据对自身进行标记,使得目标键的数据量较大,而本实施例利用优化后的霍夫曼编码树,将“314-00100000560000-000000000787899-00000005768000-010OPENPIECLOUDDB…”编码为“A-A-AA-AAA-010OPENPIECLOUDDB…”进行存储,在保证元数据安全存储的同时,降低了每个目标键所需的存储空间。
通过本实施例,获取霍夫曼编码树中的每条编码路径,并获取编码路径对应的数据特征信息,其中数据特征信息包括版本信息和数据区特征编码,进而确定编码路径中每个节点的编码,基于每个节点的编码和数据特征信息,生成对应的目标键,以此通过将用于生成目标键的数据信息转换为存储空间较小的霍夫曼编码,降低每个目标键所需的存储空间,实现了高效利用存储空间,并降低数据存储成本。
在其中的一些实施例中,在将目标键和对应的相关值关联存储至目标磁盘页之后,还包括如下步骤:
在检测到目标磁盘页中各个元数据块的目标键存在相同编码段时,生成与相同编码段对应的标记值;标记值与相同编码段的引用地址相关联;
将元数据块中的相同编码段更新为标记值。
具体地,在每个存储有元数据块的目标磁盘页中,判断页内各个元数据块的目标键是否存在相同编码段。若检测到各个元数据块的目标键存在相同编码段,则生成与相同编码段对应的标记值。
示例性地,当目标磁盘页中存储的元数据块包括“314-A-AA-AAA-…”、“314-A-AA-AAA-…”、“314-A-AA-AAB-…”以及“314-A-AB-AAA-…”,此时相同编码段为“314-A-AA”,生成该编码段对应的标记值Ref,并将上述元数据块中的相同编码段更新为标记值Ref,更新后的目标磁盘页包括“314-A-AA-AAA-…”、“Ref-AAA-…”、“Ref-AAB-…”以及“314-A-AB-AAA-…”。
需要说明的是,更新元数据块时,目标磁盘页中存在相同编码段的首个元数据块保持原有形式不变,将该元数据块中的相同编码段作为待引用的数据,且标记值与相同编码段的引用地址相关联。
通过本实施例,在检测到目标磁盘页中各个元数据块的目标键存在相同编码段时,生成与相同编码段对应的标记值,该标记值与相同编码段的引用地址相关联,并将元数据块中的相同编码段更新为标记值,以此实现存储数据的连续去重压缩,进一步减少元数据存储占用的空间。
在其中的一些实施例中,在将目标键与对应的相关值关联存储至目标磁盘页之后,还包括如下步骤:
步骤S241,在接收到新的元数据块时,生成新的元数据块对应的查询键;
步骤S242,获取查询键对应的编码树信息,并基于编码树信息对查询键进行编码处理,得到目标键;
步骤S243,将新的元数据块中原始数据信息作为相关值;
步骤S244,确定目标键对应的目标磁盘页,将目标键和对应的相关值关联存储至目标磁盘页。
具体地,存在新的元数据块需要***到数据节点时,生成与新的元数据块对应的查询键,并将查询键传输至编码器,编码器则根据接收到的查询键,在编码树缓存器中查询对应的编码树信息。若缓存命中,编码树缓存器将编码器所需的编码树信息发送至编码器;若缓存未命中,编码树缓存器从元数据索引节点获取所需的编码树信息,并返回至编码器。
编码器获取查询键对应的编码树信息之后,基于编码树信息对查询键进行编码处理,生成目标键并发送至处理器。其中,编码树信息用于提供编码格式等信息,以生成与本地存储方式相适应的目标键。
进一步地,将新的元数据块中原始数据信息作为相关值,处理器向编码树缓存器获取上述目标键对应的目标磁盘页所在位置,并将目标键和对应的相关值关联存储至目标磁盘页,完成元数据块的***存储。另外,删除元数据块与***元数据块的操作原理相同。
需要知道的是,若新的元数据块所需的编码树信息不在本地的编码树中,则执行编码树扩容。例如,基于新的元数据块所需的编码树信息,需要增加一个数据库标识对应的编码,则在现有的霍夫曼编码树中,数据库标识所在层级增加一个子节点,得到最新版本的编码树。此时,由处理器向元数据索引节点发送最新版本的编码树,元数据索引节点更新编码树版本,同时处理器重新刷新编码树缓存器,实现滚动式更新。
通过本实施例,在接收到新的元数据块时,生成新的元数据块对应的查询键;获取查询键对应的编码树信息,并基于编码树信息对查询键进行编码处理,得到目标键;将新的元数据块中原始数据信息作为相关值;进而确定目标键对应的目标磁盘页,将目标键和对应的相关值关联存储至目标磁盘页,实现了元数据块的***。
在其中的一些实施例中,在霍夫曼编码树中,每个节点下的各个子节点通过内联数据指针相关联。
具体地,在霍夫曼编码树中,数据库标识、视图标识以及域标识对应的层级均包含多个子节点。对于同一节点下的子节点,设置内联数据指针使各个子节点相关联。
以图4为例进行说明,节点AA、节点AB和节点AC均为节点A下的子节点,利用内联数据指针将节点AA、节点AB和节点AC相关联。基于此,在遍历霍夫曼编码树的各个层级时,可以在同一节点下的各个子节点之间进行查询,不需要回溯到父节点。
通过本实施例,在霍夫曼编码树中,每个节点下的各个子节点通过内联数据指针相关联,以此提高同层数据的查找效率,减小对霍夫曼编码树的遍历开销。
在本实施例中提供了一种元数据查询方法,图5是本实施例的元数据查询方法的流程图,如图5所示,该流程包括如下步骤:
步骤S510,根据接收到的用户需求数据生成对应的查询键,并获取查询键对应的编码树信息;
步骤S520,基于编码树信息对查询键进行编码处理,得到目标键;
步骤S530,确定目标键对应的目标磁盘页,从目标磁盘页中获取与目标键对应的相关值;相关值存储有元数据块中的原始数据信息。
具体地,在接收到用户需求数据时,根据用户需求数据生成对应的查询键,将查询键发送至编码器,并通过编码器查询到查询键所需的编码树信息。
获取编码树信息之后,基于编码树信息对查询键进行编码处理,得到目标键。其中,编码树信息用于提供编码格式等信息,以生成与本地存储方式相适应的目标键。
需要知道的是,在元数据存储过程中,为了支持数据库***的负载均衡,所有元数据按照目标键进行数据分片,存放于不同的数据节点,且所有数据节点放置于元数据存储节点。基于此,向编码树缓存器获取与目标键对应的目标数据节点以及对应目标磁盘页所在位置,并在元数据存储节点中,从目标磁盘页提取目标键所对应的相关值,该相关值存储有元数据块中的原始数据信息。
不仅如此,若在元数据查询过程中检测到目标键存在标记值,则获取与标记值相关联的引用地址,即可根据引用地址还原被压缩存储的编码段,在减小存储空间的同时,保证元数据的准确查询。
通过本实施例,根据接收到的用户需求数据生成对应的查询键,并获取查询键对应的编码树信息;基于编码树信息对查询键进行编码处理,得到目标键;进一步地,确定目标键对应的目标磁盘页,从目标磁盘页中获取与目标键对应的相关值,其中相关值存储有元数据块中的原始数据信息,从而在查询元数据时,只需获取对应的磁盘页位置即可完成查询,避免扫描所有磁盘页,提高了元数据查询效率。
在其中的一些实施例中,获取查询键对应的编码树信息,包括如下步骤:
步骤S511,在编码树缓存器中,检索查询键对应的编码树信息;
步骤S512,在未检索到编码树信息时,从元数据索引节点中提取编码树信息。
具体地,在接收到用户需求数据时,根据用户需求数据生成对应的查询键,将查询键发送至编码器,并通过编码器查询编码树缓存器是否包含查询键所需的编码树信息。
若缓存命中,即在编码树缓存器中检索到当前所需的编码树信息,则编码树缓存器将编码器所需的编码树信息发送至编码器;若缓存未命中,即在编码树缓存器中未检索到当前所需的编码树信息,则编码树缓存器从元数据索引节点获取所需的编码树信息,并返回至编码器。
通过本实施例,在编码树缓存器中,检索查询键对应的编码树信息,在未检索到编码树信息时,从元数据索引节点中提取编码树信息,从而能够编码得到与本地元数据存储方式相适应的目标键。
下面通过优选实施例对本实施例进行描述和说明。
图6是本优选实施例的元数据存储方法的流程图,如图6所示,该元数据存储方法包括如下步骤:
步骤S610,获取每个元数据块中的身份标识信息;身份标识信息包括元数据标识、数据库标识、视图标识以及域标识;
步骤S620,对每个元数据块中的身份标识信息进行编码处理,得到对应的霍夫曼编码树;其中,霍夫曼编码树的各层级分别与不同类别的身份标识信息相对应;
步骤S630,获取霍夫曼编码树中的每条编码路径;
步骤S640,获取编码路径对应的数据特征信息;数据特征信息包括版本信息和数据区特征编码;
步骤S650,确定编码路径中每个节点的编码,并基于每个节点的编码和数据特征信息,生成对应的目标键;
步骤S660,将每条编码路径对应的原始数据信息作为相关值,并将目标键与对应的相关值进行关联存储。
通过本实施例,获取每个元数据块中的身份标识信息;身份标识信息包括元数据标识、数据库标识、视图标识以及域标识;对每个元数据块中的身份标识信息进行编码处理,得到对应的霍夫曼编码树;其中,霍夫曼编码树的各层级分别与不同类别的身份标识信息相对应,有效降低了霍夫曼编码树的层数,提高元数据块的编码和解码能力。
之后,获取霍夫曼编码树中的每条编码路径,并获取编码路径对应的数据特征信息,数据特征信息包括版本信息和数据区特征编码;确定编码路径中每个节点的编码,并基于每个节点的编码和数据特征信息,生成对应的目标键;将每条编码路径对应的原始数据信息作为相关值,并将目标键与对应的相关值进行关联存储,从而通过将构成目标键的数据信息转换为霍夫曼编码,降低了每个目标键所需的存储空间,解决了无法高效利用存储空间,导致数据存储成本较高的问题,实现了降低数据存储成本。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中还提供了一种元数据查询***,图7是本实施例的元数据存储***的结构框图,如图7所示,该***包括:控制模块100、输入模块200、编码器300、编码树缓存器400、元数据索引节点500、处理器600以及元数据存储节点700;
在输入模块200接收到用户需求数据时,由控制模块100控制其根据用户需求数据生成对应的查询键,将查询键发送至编码器300,并通过编码器300查询编码树缓存器400是否包含查询键所需的编码树信息。若缓存命中,编码树缓存器400将编码器300所需的编码树信息发送至编码器300;若缓存未命中,编码树缓存器400从元数据索引节点500获取所需的编码树信息,并返回至编码器300。
编码器300获取查询键对应的编码树信息之后,基于编码树信息对查询键进行编码处理,生成目标键并发送至处理器600。其中,编码树信息用于提供编码格式等信息,以生成与本地存储方式相适应的目标键。
进一步地,由处理器600向编码树缓存器400获取目标键对应的目标磁盘页所在位置,并在元数据存储节点700中,从目标磁盘页提取与目标键对应的相关值,相关值存储有元数据块中的原始数据信息。需要说明的是,元数据存储节点700用于存储所有数据节点。
通过本实施例,根据接收到的用户需求数据生成对应的查询键,并获取查询键对应的编码树信息;基于编码树信息对查询键进行编码处理,得到目标键;并确定目标键对应的目标磁盘页,从目标磁盘页中获取与目标键对应的相关值,其中相关值存储有元数据块中的原始数据信息,以此提高了元数据查询效率。
在本实施例中还提供了一种元数据存储装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是本实施例的元数据存储装置的结构框图,如图8所示,该装置包括:构建模块10、生成模块20和存储模块30;
构建模块10,用于基于每个元数据块中的身份标识信息,构建与各个元数据块对应的霍夫曼编码树;
生成模块20,用于生成霍夫曼编码树中每条编码路径对应的目标键,确定与目标键对应的目标磁盘页;
存储模块30,用于将每条编码路径对应的原始数据信息作为相关值,并将目标键与对应的相关值关联存储至目标磁盘页。
通过本实施例提供的装置,基于每个元数据块中的身份标识信息,构建与各个元数据块对应的霍夫曼编码树;生成霍夫曼编码树中每条编码路径对应的目标键,确定与目标键对应的目标磁盘页;进一步地,将每条编码路径对应的原始数据信息作为相关值,并将目标键与对应的相关值关联存储至目标磁盘页,解决了无法高效利用存储空间,导致数据存储成本较高的问题,实现了降低数据存储成本。
在其中的一些实施例中,在图8的基础上,该装置还包括编码模块,用于获取每个元数据块中的身份标识信息;身份标识信息包括元数据标识、数据库标识、视图标识以及域标识;对每个元数据块中的身份标识信息进行编码处理,得到对应的霍夫曼编码树;其中,霍夫曼编码树的各层级分别与不同类别的身份标识信息相对应。
在其中的一些实施例中,在图8的基础上,该装置还包括组合模块,用于获取霍夫曼编码树中的每条编码路径;获取编码路径对应的数据特征信息;数据特征信息包括版本信息和数据区特征编码;确定编码路径中每个节点的编码,并基于每个节点的编码和数据特征信息,生成对应的目标键。
在其中的一些实施例中,在图8的基础上,该装置还包括更新模块,用于在检测到目标磁盘页中各个元数据块的目标键存在相同编码段时,生成与相同编码段对应的标记值;标记值与相同编码段的引用地址相关联;将元数据块中的相同编码段更新为标记值。
在其中的一些实施例中,在图8的基础上,该装置还包括查询模块,用于在接收到新的元数据块时,生成新的元数据块对应的查询键;获取查询键对应的编码树信息,并基于编码树信息对查询键进行编码处理,得到目标键;将新的元数据块中原始数据信息作为相关值;确定目标键对应的数据节点,将目标键和对应的相关值关联存储至数据节点。
在本实施例中还提供了一种元数据查询装置,图9是本实施例的元数据存储装置的结构框图,如图9所示,该装置包括:获取模块40、编码模块50和查询模块60;
获取模块40,用于根据接收到的用户需求数据生成对应的查询键,并获取查询键对应的编码树信息;
编码模块50,用于基于编码树信息对查询键进行编码处理,得到目标键;
查询模块60,用于确定目标键对应的目标磁盘页,从目标磁盘页中获取与目标键对应的相关值;相关值存储有元数据块中的原始数据信息。
通过本实施例提供的装置,根据接收到的用户需求数据生成对应的查询键,并获取查询键对应的编码树信息;基于编码树信息对查询键进行编码处理,得到目标键;进一步地,确定目标键对应的目标磁盘页,从目标磁盘页中获取与目标键对应的相关值,其中相关值存储有元数据块中的原始数据信息,以此提高了元数据查询效率。
在其中的一些实施例中,在图9的基础上,该装置还包括检索模块,用于在编码树缓存器中,检索查询键对应的编码树信息;在未检索到编码树信息时,从元数据索引节点中提取编码树信息。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在本实施例中还提供了一种计算机设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述计算机设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
此外,结合上述实施例中提供的元数据存储方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种元数据存储方法。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种元数据存储方法,其特征在于,所述方法包括:
基于每个元数据块中的身份标识信息,构建与各个所述元数据块对应的霍夫曼编码树;
生成所述霍夫曼编码树中每条编码路径对应的目标键,确定与所述目标键对应的目标磁盘页;
将每条所述编码路径对应的原始数据信息作为相关值,并将所述目标键与对应的所述相关值关联存储至所述目标磁盘页。
2.根据权利要求1所述的元数据存储方法,其特征在于,所述基于每个元数据块中的身份标识信息,构建与各个所述元数据块对应的霍夫曼编码树,包括:
获取每个所述元数据块中的所述身份标识信息;所述身份标识信息包括元数据标识、数据库标识、视图标识以及域标识;
对每个所述元数据块中的所述身份标识信息进行编码处理,得到对应的所述霍夫曼编码树;
其中,所述霍夫曼编码树的各层级分别与不同类别的所述身份标识信息相对应。
3.根据权利要求1所述的元数据存储方法,其特征在于,所述生成所述霍夫曼编码树中每条编码路径对应的目标键,包括:
获取所述霍夫曼编码树中的每条所述编码路径;
获取所述编码路径对应的数据特征信息;所述数据特征信息包括版本信息和数据区特征编码;
确定所述编码路径中每个节点的编码,并基于每个所述节点的编码和所述数据特征信息,生成对应的所述目标键。
4.根据权利要求1所述的元数据存储方法,其特征在于,在所述将所述目标键和对应的所述相关值关联存储至所述目标磁盘页之后,还包括:
在检测到所述目标磁盘页中各个所述元数据块的所述目标键存在相同编码段时,生成与所述相同编码段对应的标记值;所述标记值与所述相同编码段的引用地址相关联;
将所述元数据块中的所述相同编码段更新为所述标记值。
5.根据权利要求1所述的元数据存储方法,其特征在于,在所述将所述目标键与对应的所述相关值关联存储至所述目标磁盘页之后,还包括:
在接收到新的元数据块时,生成所述新的元数据块对应的查询键;
获取所述查询键对应的编码树信息,并基于所述编码树信息对所述查询键进行编码处理,得到目标键;
将所述新的元数据块中原始数据信息作为相关值;
确定所述目标键对应的所述目标磁盘页,将所述目标键和对应的所述相关值关联存储至所述目标磁盘页。
6.一种元数据查询方法,其特征在于,所述方法包括:
根据接收到的用户需求数据生成对应的查询键,并获取所述查询键对应的编码树信息;
基于所述编码树信息对所述查询键进行编码处理,得到目标键;
确定所述目标键对应的目标磁盘页,从所述目标磁盘页中获取与所述目标键对应的相关值;所述相关值存储有元数据块中的原始数据信息。
7.根据权利要求6所述的元数据查询方法,其特征在于,所述获取所述查询键对应的编码树信息,包括:
在编码树缓存器中,检索所述查询键对应的编码树信息;
在未检索到所述编码树信息时,从元数据索引节点中提取所述编码树信息。
8.一种元数据存储装置,其特征在于,所述装置包括:构建模块、生成模块和存储模块;
所述构建模块,用于基于每个元数据块中的身份标识信息,构建与各个所述元数据块对应的霍夫曼编码树;
所述生成模块,用于生成所述霍夫曼编码树中每条编码路径对应的目标键,确定与所述目标键对应的目标磁盘页;
所述存储模块,用于将每条所述编码路径对应的原始数据信息作为相关值,并将所述目标键与对应的所述相关值关联存储至所述目标磁盘页。
9.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至权利要求5中任一项所述的元数据存储方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至权利要求5中任一项所述的元数据存储方法的步骤。
CN202311755927.1A 2023-12-20 2023-12-20 元数据存储和查询方法、装置、计算机设备及存储介质 Active CN117435776B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311755927.1A CN117435776B (zh) 2023-12-20 2023-12-20 元数据存储和查询方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311755927.1A CN117435776B (zh) 2023-12-20 2023-12-20 元数据存储和查询方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN117435776A true CN117435776A (zh) 2024-01-23
CN117435776B CN117435776B (zh) 2024-04-30

Family

ID=89552048

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311755927.1A Active CN117435776B (zh) 2023-12-20 2023-12-20 元数据存储和查询方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN117435776B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117687970A (zh) * 2024-02-02 2024-03-12 济南浪潮数据技术有限公司 一种元数据检索方法、装置及电子设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105975498A (zh) * 2016-04-27 2016-09-28 华为技术有限公司 数据查询的方法、装置和***
CN112835896A (zh) * 2021-01-27 2021-05-25 浙江中智达科技有限公司 一种实时数据库数据热点均衡方法、装置、设备及介质
CN112948717A (zh) * 2021-05-13 2021-06-11 北京电信易通信息技术股份有限公司 一种基于多因素约束的海量空间poi搜索方法及***
US11086524B1 (en) * 2018-06-27 2021-08-10 Datadirect Networks, Inc. System and method for non-volatile memory based optimized, versioned, log-structured metadata storage with efficient data retrieval
CN114900193A (zh) * 2022-04-08 2022-08-12 博流智能科技(南京)有限公司 适应性霍夫曼编码***及方法
CN116560581A (zh) * 2023-05-19 2023-08-08 济南浪潮数据技术有限公司 一种虚拟机磁盘文件迁移方法、***、存储介质及设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105975498A (zh) * 2016-04-27 2016-09-28 华为技术有限公司 数据查询的方法、装置和***
US11086524B1 (en) * 2018-06-27 2021-08-10 Datadirect Networks, Inc. System and method for non-volatile memory based optimized, versioned, log-structured metadata storage with efficient data retrieval
CN112835896A (zh) * 2021-01-27 2021-05-25 浙江中智达科技有限公司 一种实时数据库数据热点均衡方法、装置、设备及介质
CN112948717A (zh) * 2021-05-13 2021-06-11 北京电信易通信息技术股份有限公司 一种基于多因素约束的海量空间poi搜索方法及***
CN114900193A (zh) * 2022-04-08 2022-08-12 博流智能科技(南京)有限公司 适应性霍夫曼编码***及方法
CN116560581A (zh) * 2023-05-19 2023-08-08 济南浪潮数据技术有限公司 一种虚拟机磁盘文件迁移方法、***、存储介质及设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WEILI WANG ET AL: "A Self-index GML Storage Approach based on Element coding", 《2011 19TH INTERNATIONAL CONFERENCE ON GEOINFOMATICS》, 11 August 2011 (2011-08-11), pages 1 - 6 *
田冰: "基于XML的关键字查询算法研究", 《万方学位论文》, 30 October 2013 (2013-10-30), pages 1 - 64 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117687970A (zh) * 2024-02-02 2024-03-12 济南浪潮数据技术有限公司 一种元数据检索方法、装置及电子设备和存储介质

Also Published As

Publication number Publication date
CN117435776B (zh) 2024-04-30

Similar Documents

Publication Publication Date Title
CN109165215B (zh) 一种云环境下时空索引的构建方法、装置及电子设备
CN103177111B (zh) 重复数据删除***及其删除方法
US10620830B2 (en) Reconciling volumelets in volume cohorts
CN111339382B (zh) 字符串数据检索方法、装置、计算机设备及存储介质
CN101324896B (zh) 一种矢量数据的存储方法、查询方法和管理***
CN109104405B (zh) 二进制协议编码、解码方法和装置
CN102170455A (zh) 用于在本地装置和远程装置间更新对象的方法和***
CN110737663B (zh) 一种数据存储方法、装置、设备及存储介质
CN106681995B (zh) 数据缓存方法、数据查询方法及装置
CN108647266A (zh) 一种异构数据快速分布存储、交互方法
CN109325089A (zh) 一种非定点对象查询方法、装置、终端设备及存储介质
CN114610708A (zh) 一种向量数据处理方法及装置、电子设备及存储介质
CN115563409A (zh) 一种地址行政区划识别方法、装置、设备及介质
CN105005567A (zh) 兴趣点查询方法和***
CN117435776B (zh) 元数据存储和查询方法、装置、计算机设备及存储介质
WO2012119339A1 (zh) 搜索方法及装置
CN104915394A (zh) 更新黄页信息的方法和装置
CN104301182A (zh) 一种慢速网站访问异常信息的查询方法及装置
CN110972258A (zh) 一种位置指纹库的建立方法及装置
CN116126928A (zh) 一种基于可变指纹布谷鸟过滤器的信息查找***
CA2934041C (en) Reconciling volumelets in volume cohorts
CN104753972A (zh) 网络资源收藏处理的方法和服务器
CN113905252A (zh) 直播间的数据存储方法、装置、电子设备及存储介质
US20170048303A1 (en) On the fly statistical delta differencing engine
KR101529270B1 (ko) 검색 엔진을 이용한 데이터베이스 관리방법 및 그 시스템

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