CN109684293A - 混合文件存储方法及装置 - Google Patents
混合文件存储方法及装置 Download PDFInfo
- Publication number
- CN109684293A CN109684293A CN201811531340.1A CN201811531340A CN109684293A CN 109684293 A CN109684293 A CN 109684293A CN 201811531340 A CN201811531340 A CN 201811531340A CN 109684293 A CN109684293 A CN 109684293A
- Authority
- CN
- China
- Prior art keywords
- data
- stored
- metamessage
- page group
- detail
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种混合文件存储方法及装置。所述方法包括:读取待存储文件中的数据;分析所述数据,并生成数据明细;根据所述数据明细,生成页组元信息;根据预设存储规则,将所述数据及所述页组元信息存储至对应的存储空间中。本发明通过分析文件数据,得到数据对应的页组原信息,使得数据存储更加完善、便捷,此外还实现了既可以满足明细查询的需求,也可以满足统计查询的需求的目的。
Description
技术领域
本发明涉及混合文件存储技术领域,尤指一种混合文件存储方法及装置。
背景技术
在大数据应用场景下,通常会包含明细查询和统计查询两种应用需求。明细查询通过指定条件从结构化数据中过滤出符合条件的多行数据,比如以Hbase为例,通过建立行键索引,可以快速查询出符合条件的数据,数据通常在逻辑上以完整行的形式返回。统计查询通常通过指定条件进行数据过滤,只需返回某些列的数据即可,再加上聚合等算子操作完成最终的统计数据返回,比如通过hive执行groupby操作,完成针对parquet格式的数据聚合。Hbase的行键设计和数据以列族形式组织存储,以及针对统计查询的parquet行列存储格式可以非常有效的适用于上述两种大数据应用场景下的数据高效查询需求。但是其弊端是有时为了同时满足上述两种场景的结果响应时间要求,有时不得不存储两份数据,以空间换时间的方式满足需求。
发明内容
为了解决现有混合文件存储技术中存在的存储效率低、浪费存储空间等问题,本发明实施例提供一种混合文件存储方法,所述方法包括:
读取待存储文件中的数据;
分析所述数据,并生成数据明细;
根据所述数据明细,生成页组元信息;
根据预设存储规则,将所述数据及所述页组元信息存储至对应的存储空间中。
可选的,在本发明一实施例中,逐条读取所述待存储文件中的数据;当读取的数据条数达到预设条数时,分析所述预设条数的数据,并生成所述预设条数的数据对应的数据明细。
可选的,在本发明一实施例中,所述页组元信息包括:数据条数信息、数据长度信息、数据排序信息及加总统计值。
可选的,在本发明一实施例中,所述根据预设存储规则,将所述数据及所述页组元信息存储至对应的存储空间中包括:根据所述预设存储规则,将所述数据及所述页组元信息转换为连续的二进制数据,将所述二进制数据顺序存储在对应的存储空间中。
本发明实施例还提供一种混合文件存储装置,所述装置包括:
读取单元,用于读取待存储文件中的数据;
分析单元,用于分析所述数据,并生成数据明细;
元信息单元,用于根据所述数据明细,生成页组元信息;
存储单元,用于根据预设存储规则,将所述数据及所述页组元信息存储至对应的存储空间中。
可选的,在本发明一实施例中,所述装置还包括:逐条读取单元,用于逐条读取所述待存储文件中的数据;部分数据分析单元,用于当读取的数据条数达到预设条数时,分析所述预设条数的数据,并生成所述预设条数的数据对应的数据明细。
可选的,在本发明一实施例中,所述页组元信息包括:数据条数信息、数据长度信息、数据排序信息及加总统计值。
可选的,在本发明一实施例中,所述存储单元包括:数据转换模块,用于根据所述预设存储规则,将所述数据及所述页组元信息转换为连续的二进制数据,将所述二进制数据顺序存储在对应的存储空间中。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
读取待存储文件中的数据;
分析所述数据,并生成数据明细;
根据所述数据明细,生成页组元信息;
根据预设存储规则,将所述数据及所述页组元信息存储至对应的存储空间中。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
读取待存储文件中的数据;
分析所述数据,并生成数据明细;
根据所述数据明细,生成页组元信息;
根据预设存储规则,将所述数据及所述页组元信息存储至对应的存储空间中。
本发明通过分析文件数据,得到数据对应的页组原信息,使得数据存储更加完善、便捷,此外还实现了既可以满足明细查询的需求,也可以满足统计查询的需求的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种混合文件存储方法的流程图;
图2为本发明实施例中数据表格式示意图;
图3为本发明实施例一种混合文件存储装置的结构示意图。
具体实施方式
本发明实施例提供一种混合文件存储方法及装置。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
通常对数据的需求分析主要有以下4点要求:1、支持海量数据扫描并取其中几列;2、支持根据主键进行查找,并在亚秒级响应;3、支持在海量数据进行类似于OLAP的交互式查询,并且查询中涉及到许多过滤条件;4、支持快速地抽取单独的记录,并且从该记录中获取到所有列信息。目前现有的Hadoop生态系统中没有同时满足这4个要求的文件格式。比如Parquet/ORC的文件仅仅满足第一条要求,而其他的要求无法满足,所以基于这些事实需要设计一种满足多种要求的文件格式。
如图1所示为本发明实施例一种混合文件存储方法的流程图,图中所示方法包括:
步骤S1,读取待存储文件中的数据;
步骤S2,分析所述数据,并生成数据明细;
步骤S3,根据所述数据明细,生成页组元信息;
步骤S4,根据预设存储规则,将所述数据及所述页组元信息存储至对应的存储空间中。
在本实施例中,读取待存储文件中的数据,可以通过逐条读取的方式。在读取全部数据或一定条数数据后,对读取到的数据进行分析。分析过程可以包括例如获得数据的压缩编码、分析数据的长度、判断数据的排序等等。分析过程中可以得到数据对应的数据明细,即例如数据条数、数据压缩编码、数据长度信息及数据排序信息等。根据数据明细生成页组元信息的过程可以为例如将这些数据明细整合为页组元信息,在整合过程中,仅对数据明细的格式或排序等存储形式进行整合,并不增添新的信息。根据数据明细生成页组元信息的过程还可以为根据现有的数据明细生成一些新的数据信息,例如,根据数据长度信息生成数据最大长度值及最小长度值、根据数据条数等生成数据的页信息(页最大值、页最小值、页中行数)及对各信息进一步处理得到加总统计值等等,将这些进一步处理后得到的信息与全部或部分数据明细整合后,得到页组元信息。预设存储规则具体可以包括例如规定了数据中不同部分在存储空间中对应的位置的规则或将数据整理为可直接存储于存储空间的规则等。根据预设的存储规则将数据以及页组元信息存储于对应的存储空间中。具体的,数据分析过程为,例如一张表有1万行数据,数据分析过程中会计算行数,得到1万行;会根据程序传入参数得到是否进行压缩存储,压缩格式是什么,是否进行排序等参数信息,还会分析出1万行数据按格式整合后,根据每一条数据的长度,计算出每一个页的长度位数等信息。整合过程:程序代码按照存储格式进行信息整合,整合过程在内存中完成。
作为本发明的一个实施例,所述方法还包括:逐条读取所述待存储文件中的数据;当读取的数据条数达到预设条数时,分析所述预设条数的数据,并生成所述预设条数的数据对应的数据明细。其中,在读取数据时,当读取的条数达到预设条数后,对这些已读数据进行分析处理,得到相应的数据明细。
作为本发明的一个实施例,所述页组元信息包括:数据条数信息、数据长度信息、数据排序信息及加总统计值。进一步的,页组元信息中还可以包括数据条数、数据压缩编码等信息,加总值为对应的页中如果是数值型的数据会计算总和。
作为本发明的一个实施例,所述根据预设存储规则,将所述数据及所述页组元信息存储至对应的存储空间中包括:根据预设存储规则,将所述数据及所述页组元信息转换为连续的二进制数据,将所述二进制数据顺序存储在对应的存储空间中。
在本实施例中,数据以数据表的形式进行存储,按照预设的存储规则,将数据转换为可存储的数据表。其中,一张表的顺序若干行被组织为一个行段,若干个行段存储在HDFS的一个block中。行段是文件内的列存数据块,是最小的IO读取单元。列页组是行段内的列数据。页是列页组内的数据页,是最小的编码和解码单元。列页组中包括多个数据页,数据页中包括记载了需要存储的数据的数据页,以及每一记载了数据的数据页对应的记载了页组元信息的数据页。将数据表存储于对应的存储空间中,进一步的,可根据预设存储规则进行存储。
如图2所示为本发明实施例中数据表格式示意图,图中所述的数据表格式包括:
头注:存放版本号信息,文件更新时间戳和表的结构信息。
脚注:存放文件中的总记录行数、文件磁盘存储分段信息、行段信息和行段索引信息。其中行段信息包括每一个行段的记录行数、每一个页的偏移位置信息和每一个页的长度信息。通过行段信息可以快速定位查询到每一个列中页的磁盘存储位置,并快速读取固定长度的数据。行段索引信息包括每一个行段中每一个列的最大值和最小值,通过索引信息可以快速查询定位到需要扫描数据的行段,降低磁盘IO读取消耗。
行段:每一个行段都由若干行组成,行段的大小是可配置的,行段里面包含每列的列页组信息。
列页组:存储同一列的数据,又进一步分为很多的页,页与页之间在磁盘上连续存储,以提高IO数据读取吞吐量。除此之外,还包含每个页的元信息,元信息记录了每个页的数据压缩类型,排序方式,最大值和最小值,统计加总信息等。其中新增了加总统计信息,在进行加总统计的应用场景下,可以通过读取页中记录的加总统计信息,快速获取最终数值。
页:存储数据的单元,包含同一列的数据,是最小的编码和解码单元,也是最小可控的排序单元。
其中,数据格式生成的过程为:先从外部数据源读取数据到内存中,然后根据格式拼出每一部分的数据,包括页里面的真实列数据和元信息数据等,此时拼好的数据还在内存中,当落硬盘存储时,会把真实页中存储的各列数据按顺序存储到一个文件中,所有的元信息数据会存储到另外一个文件中。进一步的,他们的对应关系由程序负责维护。
本发明中数据存储基于列式存储的,并存储在HDFS之上,相较于其他存储格式,主要概括为以下几点优势:1、存储数据及其索引:在有过滤的查询中,可以显著地加速查询性能,减少I/O和CPU资源。索引由多级索引组成,处理框架可以利用这些索引信息来减少调度和一些处理的开销;在任务扫描数据的时候可以仅仅扫描更细粒度的单元,而不需要扫描整个文件。2、可操作的编码数据:通过支持高效的压缩和全局编码模式,可以直接在压缩或者编码的数据上查询,仅仅在需要返回结果的时候才进行转换。3、支持多种使用场景:比如支持类OLAP风格的交互式查询、顺序存取、随机访问等。
通过本发明的混合文件存储方法,利用分析文件数据,得到数据对应的页组原信息,使得数据存储更加完善、便捷,此外还实现了既可以满足明细查询的需求,也可以满足统计查询的需求的目的。
如图3所示为本发明实施例一种混合文件存储装置的结构示意图。图中所示装置包括:读取单元10,用于读取待存储文件中的数据;
分析单元20,用于分析所述数据,并生成数据明细;
元信息单元30,用于根据所述数据明细,生成页组元信息;
存储单元40,用于根据预设存储规则,将所述数据及所述页组元信息存储至对应的存储空间中。
作为本发明的一个实施例,所述装置还包括:逐条读取单元,用于逐条读取所述待存储文件中的数据;部分数据分析单元,用于当读取的数据条数达到预设条数时,分析所述预设条数的数据,并生成所述预设条数的数据对应的数据明细。
作为本发明的一个实施例,所述页组元信息包括:数据条数信息、数据长度信息、数据排序信息及加总统计值。
作为本发明的一个实施例,所述存储单元包括:数据转换模块,用于根据所述预设存储规则,将所述数据及所述页组元信息转换为连续的二进制数据,将所述二进制数据顺序存储在对应的存储空间中。
基于与上述一种混合文件存储方法相同的申请构思,本发明还提供了上述一种混合文件存储装置。由于该一种混合文件存储装置解决问题的原理与一种混合文件存储方法相似,因此该一种混合文件存储装置的实施可以参见一种混合文件存储方法的实施,重复之处不再赘述。
通过本发明的混合文件存储装置,利用分析文件数据,得到数据对应的页组原信息,使得数据存储更加完善、便捷,此外还实现了既可以满足明细查询的需求,也可以满足统计查询的需求的目的。
本发明的实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
读取待存储文件中的数据;
分析所述数据,并生成数据明细;
根据所述数据明细,生成页组元信息;
根据预设存储规则,将所述数据及所述页组元信息存储至对应的存储空间中。
本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
读取待存储文件中的数据;
分析所述数据,并生成数据明细;
根据所述数据明细,生成页组元信息;
根据预设存储规则,将所述数据及所述页组元信息存储至对应的存储空间中。
基于与上述一种混合文件存储方法相同的申请构思,本发明还提供了上述一种计算机设备及一种计算机可读存储介质。由于该一种计算机设备及一种计算机可读存储介质解决问题的原理与一种混合文件存储方法相似,因此该一种计算机设备及一种计算机可读存储介质的实施可以参见一种混合文件存储方法的实施,重复之处不再赘述。
通过本发明的一种计算机设备及计算机可读存储介质,利用分析文件数据,得到数据对应的页组原信息,使得数据存储更加完善、便捷,此外还实现了既可以满足明细查询的需求,也可以满足统计查询的需求的目的。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,比如ROM/RAM、磁碟、光盘等。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种混合文件存储方法,其特征在于,所述方法包括:
读取待存储文件中的数据;
分析所述数据,并生成数据明细;
根据所述数据明细,生成页组元信息;
根据预设存储规则,将所述数据及所述页组元信息存储至对应的存储空间中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
逐条读取所述待存储文件中的数据;
当读取的数据条数达到预设条数时,分析所述预设条数的数据,并生成所述预设条数的数据对应的数据明细。
3.根据权利要求1所述的方法,其特征在于,所述页组元信息包括:数据条数信息、数据长度信息、数据排序信息及加总统计值。
4.根据权利要求1所述的方法,其特征在于,所述根据预设存储规则,将所述数据及所述页组元信息存储至对应的存储空间中包括:根据所述预设存储规则,将所述数据及所述页组元信息转换为连续的二进制数据,将所述二进制数据顺序存储在对应的存储空间中。
5.一种混合文件存储装置,其特征在于,所述装置包括:
读取单元,用于读取待存储文件中的数据;
分析单元,用于分析所述数据,并生成数据明细;
元信息单元,用于根据所述数据明细,生成页组元信息;
存储单元,用于根据预设存储规则,将所述数据及所述页组元信息存储至对应的存储空间中。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
逐条读取单元,用于逐条读取所述待存储文件中的数据;
部分数据分析单元,用于当读取的数据条数达到预设条数时,分析所述预设条数的数据,并生成所述预设条数的数据对应的数据明细。
7.根据权利要求5所述的装置,其特征在于,所述页组元信息包括:数据条数信息、数据长度信息、数据排序信息及加总统计值。
8.根据权利要求5所述的装置,其特征在于,所述存储单元包括:
数据转换模块,用于根据所述预设存储规则,将所述数据及所述页组元信息转换为连续的二进制数据,将所述二进制数据顺序存储在对应的存储空间中。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
读取待存储文件中的数据;
分析所述数据,并生成数据明细;
根据所述数据明细,生成页组元信息;
根据预设存储规则,将所述数据及所述页组元信息存储至对应的存储空间中。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
读取待存储文件中的数据;
分析所述数据,并生成数据明细;
根据所述数据明细,生成页组元信息;
根据预设存储规则,将所述数据及所述页组元信息存储至对应的存储空间中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811531340.1A CN109684293A (zh) | 2018-12-14 | 2018-12-14 | 混合文件存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811531340.1A CN109684293A (zh) | 2018-12-14 | 2018-12-14 | 混合文件存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109684293A true CN109684293A (zh) | 2019-04-26 |
Family
ID=66186838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811531340.1A Pending CN109684293A (zh) | 2018-12-14 | 2018-12-14 | 混合文件存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109684293A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918347A (zh) * | 2019-03-07 | 2019-06-21 | 网宿科技股份有限公司 | 一种生成parquet文件的方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455631A (zh) * | 2013-09-22 | 2013-12-18 | 广州中国科学院软件应用技术研究所 | 一种数据处理方法、装置及系统 |
CN103488710A (zh) * | 2013-09-10 | 2014-01-01 | 广州巨杉软件开发有限公司 | 大数据页中高效存储非定常数据结构 |
CN106934066A (zh) * | 2017-03-31 | 2017-07-07 | 联想(北京)有限公司 | 一种元数据处理方法、装置和存储设备 |
CN107256233A (zh) * | 2017-05-16 | 2017-10-17 | 北京奇虎科技有限公司 | 一种数据存储方法和装置 |
-
2018
- 2018-12-14 CN CN201811531340.1A patent/CN109684293A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488710A (zh) * | 2013-09-10 | 2014-01-01 | 广州巨杉软件开发有限公司 | 大数据页中高效存储非定常数据结构 |
CN103455631A (zh) * | 2013-09-22 | 2013-12-18 | 广州中国科学院软件应用技术研究所 | 一种数据处理方法、装置及系统 |
CN106934066A (zh) * | 2017-03-31 | 2017-07-07 | 联想(北京)有限公司 | 一种元数据处理方法、装置和存储设备 |
CN107256233A (zh) * | 2017-05-16 | 2017-10-17 | 北京奇虎科技有限公司 | 一种数据存储方法和装置 |
Non-Patent Citations (1)
Title |
---|
董洪发: ""面向大规模关系数据的列存储优化技术研究与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918347A (zh) * | 2019-03-07 | 2019-06-21 | 网宿科技股份有限公司 | 一种生成parquet文件的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105320679B (zh) | 一种数据表索引集合生成方法及装置 | |
CN103886022B (zh) | 一种基于主键字段进行分页查询的查询设备及其方法 | |
CN106021583B (zh) | 页面流量数据的统计方法及其系统 | |
CN105608222A (zh) | 一种大规模栅格数据集的瓦片金字塔快速构建方法 | |
Breathnach et al. | Regional economic resilience in Ireland: The roles of industrial structure and foreign inward investment | |
CN109063178B (zh) | 一种自动扩展的自助分析报表的方法及装置 | |
CN105824855B (zh) | 一种对数据对象筛选分类的方法、装置以及电子设备 | |
WO2011090519A1 (en) | Accessing large collection object tables in a database | |
CN106557558A (zh) | 一种数据分析方法及装置 | |
Gupta et al. | Faster as well as early measurements from big data predictive analytics model | |
CN101739454B (zh) | 数据处理系统 | |
CN111782686A (zh) | 用户数据的查询方法、装置、电子设备及存储介质 | |
CN112765150A (zh) | 大数据异构融合提取方法及装置 | |
US8438173B2 (en) | Indexing and querying data stores using concatenated terms | |
CN111651514A (zh) | 数据导入方法及装置 | |
CN109684293A (zh) | 混合文件存储方法及装置 | |
CN117081602B (zh) | 基于区块链的资金结算数据优化处理方法 | |
CN104573002A (zh) | 基于人、事、物分类建档的数据组织模型 | |
CN106909623B (zh) | 一种支持高效海量数据分析和检索的数据装置及数据存储方法 | |
CN107665224A (zh) | 扫描hdfs冷数据的方法、系统和装置 | |
CN111221967A (zh) | 一种基于区块链架构的语言数据分类存储系统 | |
CN103488693A (zh) | 数据处理装置和数据处理方法 | |
CN106874498B (zh) | 一种金融数据的存取方法及存取装置 | |
CN112214983B (zh) | 一种数据记录查重方法及系统 | |
CN115098029A (zh) | 数据处理方法及装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190426 |
|
RJ01 | Rejection of invention patent application after publication |