CN116737666A - 一种高效的大数据存储文件结构及数据存储方法 - Google Patents
一种高效的大数据存储文件结构及数据存储方法 Download PDFInfo
- Publication number
- CN116737666A CN116737666A CN202310496183.XA CN202310496183A CN116737666A CN 116737666 A CN116737666 A CN 116737666A CN 202310496183 A CN202310496183 A CN 202310496183A CN 116737666 A CN116737666 A CN 116737666A
- Authority
- CN
- China
- Prior art keywords
- data
- page
- fingerprint
- index
- file
- 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.)
- Pending
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 46
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000012795 verification Methods 0.000 claims abstract description 6
- 238000000605 extraction Methods 0.000 claims description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000006837 decompression Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000013439 planning Methods 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/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种高效的大数据存储文件结构及数据存储方法,它包括多个文件,每个文件包括文件头单元、数据单元和索引单元;文件头单元用于记录文件的校验魔数、文件fileNum、索引数量大小和每页数据字节大小;数据单元包括多个数据页,每个数据页用于以二进制形式存储数据且按照指纹顺序紧凑地排列,依次包括指纹、指纹包含的数据长度和数据条数以及数据本身;索引单元用于按照指纹顺序紧凑地将每个数据页排列组成数组,数组中每个数据页标识有对应数据页的页索引,通过页索引查找数据位置。本发明能够有效地存储和管理大量的指纹数据,并在数据查询和检索时提高效率;能够快速定位并检索需要的指纹数据,提高了数据查询和检索的效率。
Description
技术领域
本发明涉及数据安全技术领域,尤其涉及一种高效的大数据存储文件结构及数据存储方法。
背景技术
传统的指纹数据存储方法通常采用关系数据库或文件系统进行存储和管理。基于关系数据库的存储方式,需要将指纹数据存储为二进制大对象(BLOB)或将指纹特征点提取为特征向量,以表格的形式存储在数据库中,采用SQL语句进行查询和检索。这种方式在数据存储和管理方面具有一定的灵活性和可扩展性,但是数据存储效率较低,存储空间浪费较大,同时数据查询和检索速度较慢,不适合大规模的指纹数据存储和管理。
基于文件系统的存储方式,将指纹数据以文件的形式进行存储和管理,每个文件代表一个指纹,文件名通常为指纹ID,文件内容为指纹特征点的二进制数据,采用文件系统的方式进行查询和检索。这种方式能够提高数据存储效率和查询速度,但是由于存储方式简单,无法进行高级查询和检索操作,同时也存在存储空间浪费的问题。
基于哈希索引的指纹数据存储方法将指纹数据映射为哈希值,通过哈希表进行存储和管理,能够提高数据查询和检索效率。但是对于哈希冲突的情况,可能会导致数据查询和检索效率下降。基于压缩算法的指纹数据存储方法,对指纹数据进行压缩,减小存储空间,提高数据存储效率。但是由于压缩和解压缩的时间和计算量较大,可能会导致数据查询和检索速度下降。基于分布式存储的指纹数据存储方法,将指纹数据分散存储在多个节点上,采用分布式查询方式进行数据查询和检索。这种方式能够提高数据存储和查询的效率,但是需要进行分布式存储和管理的规划和部署,具有一定的技术难度。因此,目前对于大规模的指纹数据,仍然存在存储空间浪费、查询和检索效率低下等问题。
需要说明的是,在上述背景技术部分公开的信息只用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明的目的在于克服现有技术的缺点,提供了一种高效的大数据存储文件结构及数据存储方法,解决了现有方法存在的不足。
本发明的目的通过以下技术方案来实现:一种高效的大数据存储文件结构,它包括多个文件,每个文件包括文件头单元、数据单元和索引单元;
所述文件头单元用于记录文件的校验魔数、文件fileNum、索引数量大小和每页数据字节大小;
所述数据单元包括多个数据页,每个数据页用于以二进制形式存储数据且按照指纹顺序紧凑地排列,依次包括指纹、指纹包含的数据长度和数据条数以及数据本身,在检索时根据确定的数据大小顺序读取根据索引定位到的数据;
所述索引单元用于按照指纹顺序紧凑地将每个数据页排列组成数组,数组中每个数据页标识有对应数据页的页索引,通过页索引查找数据位置。
所述索引单元通过页索引查找数据位置包括:在通过指纹查找数据时,首先通过读取所有的索引信息加载到内存后进行二分查找确定指纹数据的起始位置offest所在的数据页,根据索引标识对应到相应的数据页直接随机访问到该数据页的起始位置进行数据读取。
一种基于高效的大数据存储文件结构的数据存储方法,所述数据存储方法包括:
S1、通过流量特征提取算法抓取流量数据根据规则生成指纹,根据数据量的大小确定所需的文件数量;
S2、顺序读取指纹数据,以一个指纹以及对应的所有数据作为一个单位写入到文件的数据页中,该单位的数据依次包括指纹和后续数据长度,数据条数和数据以紧凑排列的形式存储;
当前所写的数据页是否为一页数据页的开始,如果是,则该数据页对应的索引值等于该指纹值,如果不是,则继续判断当前数据页的剩余存储容量的大小是否大于该指纹对应的数据,如果可以,则将该指纹对应的数据写入到该数据页中,否则跳过该数据页从下一页数据页写入;
如果该指纹对应的数据大小大于一个数据页的存储容量,即该指纹对应的数据横跨多个数据页,则每多跨一个数据页其对应的索引值就加1。
所述文件包括文件头单元、数据单元和索引单元;所述文件头单元用于记录文件的校验魔数、文件fileNum、索引数量大小和每页数据字节大小;所述数据单元包括多个数据页,每个数据页用于以二进制形式存储数据且按照指纹顺序紧凑地排列,依次包括指纹、指纹包含的数据长度和数据条数以及数据本身,在检索时根据确定的数据大小顺序读取根据索引定位到的数据;所述索引单元用于按照指纹顺序紧凑地将每个数据页排列组成数组,数组中每个数据页标识有对应数据页的页索引,通过页索引查找数据位置。
所述数据存储方法还包括:根据检索规则进行快速检索数据位置的步骤,该步骤执行于步骤S2之后。
所述根据检索规则进行快速检索数据位置的步骤包括:
根据指纹hash值确定读取的文件,索引二分查找索引定位到该指纹数据所在的数据页,并根据确定的每页数据字节大小和索引数量大小定位到该数据页的起始位置;
判断该数据页的实时位置是否为一个指纹数据的开始,如果不是则数据页减1,直到满足条件后开始读取数据;
读取一个指纹的长度判断读取到的指纹是否为被检索的指纹,如果是,则读取四个字节,即该指纹对应数据的长度,开始读取该部分数据,如果不是,则读取四个字节,即该指纹对应数据的长度,跳过该长度字节,直接找到或者读取到的指纹大于被检索指纹,则说明该指纹数据不存在。
本发明具有以下优点:一种高效的大数据存储文件结构及数据存储方法,能够有效地存储和管理大量的指纹数据,并在数据查询和检索时提高效率;能够在不影响数据存储的前提下,节约存储空间,降低了数据存储成本;能够快速定位并检索需要的指纹数据,提高了数据查询和检索的效率。
附图说明
图1为本发明文件结构的示意图;
图2为本发明指纹数据写入文件的流程示意图;
图3为本发明检索数据的流程示意图;
图4为本发明索引的示例图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下结合附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的保护范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。下面结合附图对本发明做进一步的描述。
如图1所示,本发明其中一种实时方式涉及一种高效的大数据存储文件结构,它包括多个文件,每个文件包括header、data、index;
其中,header是文件头,记录了该文件的基础信息,包含校验魔数、文件fileNum、索引数量大小、每页数据字节大小;
data是数据,按照指纹顺序紧凑地排列,依次为指纹、指纹包含的数据的长度、包含的数据条数、数据。数据是以二进制形式紧挨着进行存储,所以会节省大量的数据空间,在检索时根据确定的数据大小顺序读取到根据索引定位到的数据。
其中,每一页数据不一定装满,会有一定的空白剩余,这是为了保证在检索时可以更快地定位到指纹所在的页,然后从该页的起始位置开始向后检索。
index是索引,按照指纹顺序紧凑地排列组成一个数组,数组下标即为对应的pageindex。index数据是索引的关键,在通过指纹查找数据时,首先通过读取所有的索引信息加载到内存然后进行二分查找确定指纹数据的起始位置offset所在的page页,因为每个page页的大小是确定的,所以可以根据index下标即所在的page页数直接随机访问到该page的起始位置进行数据读取。
本发明的另一种实施方式涉及一种基于高效的大数据存储文件结构的数据存储方法,所述数据存储方法包括:
S1、通过流量特征提取算法抓取流量数据根据规则生成指纹,根据数据量的大小确定所需的文件数量;
其中,流量特征提取算法是用于从网络流量数据中提取特征并生成指纹信息的技术。这些指纹信息可以用于识别和分类不同的网络流量,如网络攻击和正常的网络通信。常见的流量特征包括:包头信息、包的大小、协议类型、源IP地址和目标IP地址等等。这些特征可以通过各种算法和技术进行提取。流量特征提取算法的指纹信息通常包括多个特征值的组合,这些特征值可以表示网络流量的不同方面。
进一步地,以一段流量特征指纹为例,主要包括该段流量特征的哈希值、源IP、目的IP、协议等信息。例如,一段流量特征的数据如下,每个数组依次是该段流量特征的哈希值、源IP、目的IP。
S2、如图2所示,顺序读取指纹数据,以一个指纹以及对应的所有数据作为一个单位写入到文件的数据页(page)中,该单位的数据依次包括指纹和后续数据长度,数据条数和数据以紧凑排列的形式存储;
当前所写的数据页是否为一页数据页的开始,如果是,则该数据页对应的索引值等于该指纹值,如果不是,则继续判断当前数据页的剩余存储容量的大小是否大于该指纹对应的数据,如果可以,则将该指纹对应的数据写入到该数据页中,否则跳过该数据页从下一页数据页写入;
如果该指纹对应的数据大小大于一个数据页的存储容量,即该指纹对应的数据横跨多个数据页,则每多跨一个数据页其对应的索引值就加1;这是为了在检索时通过其指纹二分查找索引页时可以定位到该指纹数据所在的page页。
进一步地,数据存储方法还包括:根据检索规则进行快速检索数据位置的步骤,该步骤执行于步骤S2之后。
如图3所示,根据检索规则进行快速检索数据位置的步骤包括:
根据指纹hash值确定读取的文件,索引二分查找索引定位到该指纹数据所在的数据页(page),并根据确定的每页数据字节大小和索引数量大小定位到该数据页的起始位置;
根据index[page]&totalFileNum==fileNumber判断该数据页的实时位置是否为一个指纹数据的开始,如果不是则数据页减1,直到满足条件后开始读取数据;
其中,index[page]&totalFileNum==fileNumber是判断该数据页的开始是否为一个完整指纹数据的开始,例如一个系统计划存储数据的总文件个数为32个,从0开始totalFileNum=31,那么在fileNumber为16的文件中,根据之前设定的文件格式,只要某一页对应的索引值(索引和数据页是一一对应)除以总文件数32的余数不等于16,index[page]&totalFileNum==fileNumber等价于取余fileNumber除以totalFileNum+1取余,例如17%32!=17,那么就代表该页的数据开始不是一个指纹数据的开始,就只能往上页开始寻找一个真正以一个完整指纹数据开始的页进行检索。
读取一个指纹的长度判断读取到的指纹是否为被检索的指纹,如果是,则读取四个字节,即该指纹对应数据的长度,开始读取该部分数据,如果不是,则读取四个字节,即该指纹对应数据的长度,跳过该长度字节,直接找到或者读取到的指纹大于被检索指纹,则说明该指纹数据不存在。
本发明首先利用二分查找到一个page,但是这个page不一定是数据所在的page,这是因为有些指纹数据会横跨多页,导致不一定每一页的起始位置都是一个指纹数据的开始,如图4所示,以总文件数n为8,fileNumer为0的文件举例,在检索指纹为24的数据时,二分查找首先会定位到fp2,然后发现fp2的值为17,(17&n-1)!=0,所以page减一定位到fp1,然后从fp1对应的起始位置开始读取数据,一直读到所匹配到的指纹或者读到大于该指纹的数据(说明该指纹不存在)结束。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (6)
1.一种高效的大数据存储文件结构,其特征在于:它包括多个文件,每个文件包括文件头单元、数据单元和索引单元;
所述文件头单元用于记录文件的校验魔数、文件fileNum、索引数量大小和每页数据字节大小;
所述数据单元包括多个数据页,每个数据页用于以二进制形式存储数据且按照指纹顺序紧凑地排列,依次包括指纹、指纹包含的数据长度和数据条数以及数据本身,在检索时根据确定的数据大小顺序读取根据索引定位到的数据;
所述索引单元用于按照指纹顺序紧凑地将每个数据页排列组成数组,数组中每个数据页标识有对应数据页的页索引,通过页索引查找数据位置。
2.根据权利要求1所述的一种高效的大数据存储文件结构,其特征在于:所述索引单元通过页索引查找数据位置包括:在通过指纹查找数据时,首先通过读取所有的索引信息加载到内存后进行二分查找确定指纹数据的起始位置offset所在的数据页,根据索引标识对应到相应的数据页直接随机访问到该数据页的起始位置进行数据读取。
3.一种基于高效的大数据存储文件结构的数据存储方法,其特征在于:所述数据存储方法包括:
S1、通过流量特征提取算法抓取流量数据根据规则生成指纹,根据数据量的大小确定所需的文件数量;
S2、顺序读取指纹数据,以一个指纹以及对应的所有数据作为一个单位写入到文件的数据页中,该单位的数据依次包括指纹和后续数据长度,数据条数和数据以紧凑排列的形式存储;
当前所写的数据页是否为一页数据页的开始,如果是,则该数据页对应的索引值等于该指纹值,如果不是,则继续判断当前数据页的剩余存储容量的大小是否大于该指纹对应的数据,如果可以,则将该指纹对应的数据写入到该数据页中,否则跳过该数据页从下一页数据页写入;
如果该指纹对应的数据大小大于一个数据页的存储容量,即该指纹对应的数据横跨多个数据页,则每多跨一个数据页其对应的索引值就加1。
4.根据权利要求3所述的一种基于高效的大数据存储文件结构的数据存储方法,其特征在于:所述文件包括文件头单元、数据单元和索引单元;所述文件头单元用于记录文件的校验魔数、文件fileNum、索引数量大小和每页数据字节大小;所述数据单元包括多个数据页,每个数据页用于以二进制形式存储数据且按照指纹顺序紧凑地排列,依次包括指纹、指纹包含的数据长度和数据条数以及数据本身,在检索时根据确定的数据大小顺序读取根据索引定位到的数据;所述索引单元用于按照指纹顺序紧凑地将每个数据页排列组成数组,数组中每个数据页标识有对应数据页的页索引,通过页索引查找数据位置。
5.根据权利要求3所述的一种基于高效的大数据存储文件结构的数据存储方法,其特征在于:所述数据存储方法还包括:根据检索规则进行快速检索数据位置的步骤,该步骤执行于步骤S2之后。
6.根据权利要求5所述的一种基于高效的大数据存储文件结构的数据存储方法,其特征在于:所述根据检索规则进行快速检索数据位置的步骤包括:
根据指纹hash值确定读取的文件,索引二分查找索引定位到该指纹数据所在的数据页,并根据确定的每页数据字节大小和索引数量大小定位到该数据页的起始位置;
判断该数据页的实时位置是否为一个指纹数据的开始,如果不是则数据页减1,直到满足条件后开始读取数据;
读取一个指纹的长度判断读取到的指纹是否为被检索的指纹,如果是,则读取四个字节,即该指纹对应数据的长度,开始读取该部分数据,如果不是,则读取四个字节,即该指纹对应数据的长度,跳过该长度字节,直接找到或者读取到的指纹大于被检索指纹,则说明该指纹数据不存在。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310496183.XA CN116737666A (zh) | 2023-05-05 | 2023-05-05 | 一种高效的大数据存储文件结构及数据存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310496183.XA CN116737666A (zh) | 2023-05-05 | 2023-05-05 | 一种高效的大数据存储文件结构及数据存储方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116737666A true CN116737666A (zh) | 2023-09-12 |
Family
ID=87914074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310496183.XA Pending CN116737666A (zh) | 2023-05-05 | 2023-05-05 | 一种高效的大数据存储文件结构及数据存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116737666A (zh) |
-
2023
- 2023-05-05 CN CN202310496183.XA patent/CN116737666A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8335889B2 (en) | Content addressable storage systems and methods employing searchable blocks | |
CN111190904B (zh) | 一种图-关系数据库混合存储的方法和装置 | |
CN106874348B (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
CN107368527B (zh) | 基于数据流的多属性索引方法 | |
CN104881481A (zh) | 一种存取海量时间序列数据的方法及装置 | |
WO2010096750A2 (en) | Hybrid hash tables | |
CN107357843B (zh) | 基于数据流结构的海量网络数据查找方法 | |
CN116450656B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN114610708A (zh) | 一种向量数据处理方法及装置、电子设备及存储介质 | |
CN109150962B (zh) | 一种通过关键字快速识别http请求头的方法 | |
JP4233564B2 (ja) | データ処理装置、データ処理用のプログラムおよび記録媒体 | |
US7222129B2 (en) | Database retrieval apparatus, retrieval method, storage medium, and program | |
CN117763077A (zh) | 数据查询方法及装置 | |
CN116975006A (zh) | 基于磁盘缓存及b树索引的数据去重方法、系统及介质 | |
CN116126997B (zh) | 一种文献去重存储方法、系统、设备及存储介质 | |
CN117435912A (zh) | 基于网络数据包属性值长短特征的数据包索引与检索方法 | |
CN108614879A (zh) | 小文件处理方法与装置 | |
CN116737666A (zh) | 一种高效的大数据存储文件结构及数据存储方法 | |
CN110825747A (zh) | 一种信息存取方法、装置和介质 | |
CN115495462A (zh) | 批量数据更新方法、装置、电子设备和可读存储介质 | |
CN115455040A (zh) | 提高数据库sql查询效率的方法、装置、设备、介质 | |
CN114416741A (zh) | 基于多级索引的kv数据写入读取方法、装置及存储介质 | |
CN112364017A (zh) | 一种利用布隆过滤器过滤黑白名单的方法 | |
EP2164005B1 (en) | Content addressable storage systems and methods employing searchable blocks | |
US20070088719A1 (en) | System and method for storing multi-dimensional network and security event data |
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 |