一种支持高效海量数据分析和检索的数据装置及数据存储方法制造方法及图纸

技术编号:15746770 阅读:214 留言:0更新日期:2017-07-03 02:48
本发明专利技术公开了一种支持高效海量数据分析和检索的数据装置及数据存储方法。本装置包括若干文件夹,在每一文件夹中包含多个索引分段;每一索引分段包括一全文索引组件、一数据定位模块和一数据存储模块;全文索引组件用于存储索引分段中的记录的倒排索引信息;数据存储模块,包含多个横向分块,每个横向分块包含多个列分片,每个列分片包含多个用于存储数据记录的数据页;数据定位模块,提供针对数据存储模块的嵌套索引结构,每个横向分块索引存储了横向分块记录起始Id、横向分块位置、各列分片的位置以及列分片索引集合;每个列分片索引记录了列分片中数据页起始位置和数据页索引集合;每个数据页索引记录了数据页所在文件位置和页记录起始Id。

Data device and data storage method for supporting efficient mass data analysis and retrieval

The invention discloses a data device and a data storage method for supporting the analysis and retrieval of an efficient mass of data. The device comprises a plurality of folders containing multiple index segment in each folder; each index segment includes a full-text index component, a data location module and a data storage module; full-text indexing module for inverted index information storage section of the index record; data storage module, comprising a plurality of transverse block. Each transverse block contains multiple columns of slices, each slice contains multiple columns for data pages stored data record data; provide positioning module, data storage module for nested index structure, each horizontal block index stored transverse block record start Id, transverse block position, each slice the location and column slice index set; each column slice index record column slice data page starting position data pages and index set; each data page index record data page Where the file location and page record start Id.

【技术实现步骤摘要】
一种支持高效海量数据分析和检索的数据装置及数据存储方法
本专利技术属于数据存储组织领域,涉及一种针对海量数据高效响应分析和检索应用场景的数据装置及数据存储方法。
技术介绍
现有的海量数据处理技术在给大数据应用提供了有力支撑的同时也面临着技术困难。一方面,尽管数据分析系统在数据顺序读取方面性能出众,但是在处理带有过滤条件的查询场景时明显存在着处理性能不够的情况,而这种情况在过滤条件是全文检索条件时尤为突出;另一方面,融合数据检索和数据分析业务的应用场景在实际应用中比重越来越大,现有解决方案大多运行两套分别面向检索和分析系统来响应这种混合应用场景,然而由于各系统采用了不同的数据存储策略,这样的解决方案不但耗费了大量的存储和计算资源,而且还需要复杂的机制来保证两套系统数据的一致性。
技术实现思路
针对现有技术中存在的技术问题,本专利技术的目的在于提供一种面向海量数据的数据存储装置及数据存储方法,本专利技术主要包括三个方面:(1)结合全文索引与列式存储的数据装置。(2)针对该数据装置的合并优化技术。(3)针对该数据装置的随机访问优化技术。该专利技术包括以下内容:1)数据装置的组织框架。2)依托该数据装置的数据加载流程。3)数据合并优化技术。4)依托该数据装置的数据读取流程。5)针对读取流程的随机访问优化技术。本专利技术的技术方案为:一种支持高效海量数据分析和检索的数据装置,其特征在于,包括若干文件夹,在每一文件夹中包含多个索引分段;每一索引分段包括一全文索引组件、一数据定位模块和一数据存储模块;其中,全文索引组件,用于存储索引分段中的记录的倒排索引信息;数据存储模块,包含多个横向分块,每个横向分块包含多个列分片,每个列分片包含多个用于存储数据记录的数据页;数据定位模块,提供针对数据存储模块的嵌套索引结构,其包括记录的列数、列描述符集合、数据存储模块的压缩模式以及横向分块索引集合;每个横向分块索引存储了横向分块记录起始Id、横向分块位置、各列分片的位置以及列分片索引集合;每个列分片索引记录了列分片中数据页起始位置和数据页索引集合;每个数据页索引记录了数据页所在文件位置和页记录起始Id。进一步的,根据数据定位模块中各横向分块包含的起止Id号将有序Id片段划分到各横向分块索引中。进一步的,根据全文索引组件中记录的起止Id号,将有序的记录Id集合映射到各索引分段中,每个索引分段包含一个有序Id片段。进一步的,所述数据页存储的数据内容为采用字典编码的数据内容。进一步的,所述数据页存储的数据内容为采用类型感知的数据编码算法编码的数据内容。一种数据存储方法,其步骤为:1)从待存储的记录集合中读取一未存储的记录,获取该记录的Id号及其字段集合,然后为指定字段建立倒排索引,并将构建的倒排索引信息写入全文索引组件;2)将该字段集合中的每一字段写入数据存储模块对应的列分片中,如果当前写入的数据已满足一数据页,则将该记录的Id号和该记录所在数据存储模块的偏移记录到数据定位模块中;3)重复步骤1)、2),如果当前已写入的记录满足一个横向分块的大小,则将该记录的Id号、横向分块位置、横向分块中各列分片位置记录到数据定位模块中,并更新列分片索引集合。进一步的,步骤3)之后,获取数据量小于设定阈值的横向分块作为待合并的横向分块;如果待合并的横向分块个数为1,则直接将该横向分块追加到一新数据存储模块末端并更新数据定位模块;否则将每一待合并的横向分块对应的列数据追加到一新数据存储模块中,并更新数据定位模块。进一步的,采用字典缓存机制对待存储的记录集合中的记录进行存储。与现有技术相比,本专利技术的积极效果为:该装置融合了列式存储格式和全文索引技术的特点,一方面保证了在数据分析场景中的高吞吐,另一方面保证了在数据检索场景中的实时性,从而能够提高带有过滤条件的数据分析任务的性能并高效响应融合应用场景的需求。该数据装置适用于针对海量数据的数据分析应用场景以及融合数据分析和数据检索的应用场景。附图说明图1为该数据装置的组织框架图。具体实施方式数据装置组织框架该数据装置的组织框架如图1所示。数据装置以文件夹为单位,在每个文件夹中包含多个独立索引分段;每个分段包括全文索引组件,数据定位模块和数据存储模块。其中,全文索引组件包含了对应分段中所有记录的相关倒排索引信息,用于查询条件的快速查询,该组件以查询条件为输入,输出命中的记录ID集合。数据存储模块采用了行列混合存储的模式:每个数据存储模块包含多个横向分块,每个横向分块包含多个列分片,列分片是在横向分块内的存储特定一列数据的存储单元;每个列分片由多个数据页组成,每个数据页可以采用字典编码以及多种类型感知的数据编码算法编码数据内容,如果数据页中的数据采用了字典编码,则在该数据页所属的列分片的头部会放置字典页,采用字典编码的数据页在解码数据时会用到字典页。该数据存储模块格式继承了列式存储格式的高压缩率,高吞吐率的特点,其横向分块的组织模式避免了记录重组的开销,可以高效地应用于数据分析应用场景中。数据定位模块提供了针对数据存储模块的嵌套索引结构,该模块存储了数据列个数(即记录由多少个列组成),列描述符集合(即每一个列对应的名称,数据类型等信息),数据存储模块压缩模式以及横向分块索引集合;在横向分块级,每个横向分块索引存储了横向分块记录起始Id,横向分块位置,各列分片的字典页位置以及列分片索引集合,如果某一列分片的所有数据页都没有采用字典编码,则字典页位置为空;在列分片级,每个列分片索引记录了列分片中数据页起始位置和数据页索引集合;每个数据页索引记录了数据页所在文件位置和页记录起始Id。该数据装置的组织形式可有效支撑数据检索和数据分析两种业务场景:在给定查询条件的情况下,可通过全文索引组件获取符合查询条件的文档Id集合,借助数据定位模块采用随机访问的方式定位到包含文档Id的数据页,通过扫描数据页内部数据记录并获取相应数据;在扫描文件的情况下,通过分段个数确定需要扫描的数据存储模块个数,并依次遍历各数据存储模块,然后返回所有记录。数据加载流程给定记录集合,该装置依次读取记录,构建倒排索引信息写入全文索引组件,然后写入数据存储模块并更新数据定位信息,该过程可描述为以下步骤:1.如果还有未写入数据存储模块的记录,获取一条未处理的记录,执行步骤2;否则执行步骤6。2.获取记录Id号以及记录包含的字段集合,并为指定的字段建立倒排索引。3.如果还有未写入数据存储模块的字段,获取一个未处理的字段,执行步骤4;否则执行步骤5。4.将该字段按照用户定义的字段对应关系写入数据存储模块对应的列分片中,如果当前写入的列数据大小已满足一数据页,则将该记录的Id和该记录所在数据存储模块的偏移记录在数据定位模块中,执行步骤3。5.如果当前已写入的记录满足了一个横向分块的大小,则将该Id,横向分块位置,各列字典位置记录在数据定位模块中,并更新包含的各列分片索引集合,执行步骤1。6.将元信息(即加载所有数据后得到的统计数据,如某一字段的最大值最小值,数据个数等信息以及每一个横向分块在数据存储模块中的位置)写入数据存储模块,将数据定位信息写入数据定位模块,结束。合并优化技术为保证加载的记录集合短时间内可以被检索到,在加载过程中该装置会产生多个数据量较小的分段集合,为本文档来自技高网...
一种支持高效海量数据分析和检索的数据装置及数据存储方法

【技术保护点】
一种支持高效海量数据分析和检索的数据装置,其特征在于,包括若干文件夹,在每一文件夹中包含多个索引分段;每一索引分段包括一全文索引组件、一数据定位模块和一数据存储模块;其中,全文索引组件,用于存储索引分段中的记录的倒排索引信息;数据存储模块,包含多个横向分块,每个横向分块包含多个列分片,每个列分片包含多个用于存储数据记录的数据页;数据定位模块,提供针对数据存储模块的嵌套索引结构,其包括记录的列数、列描述符集合、数据存储模块的压缩模式以及横向分块索引集合;每个横向分块索引存储了横向分块记录起始Id、横向分块位置、各列分片的位置以及列分片索引集合;每个列分片索引记录了列分片中数据页起始位置和数据页索引集合;每个数据页索引记录了数据页所在文件位置和页记录起始Id。

【技术特征摘要】
1.一种支持高效海量数据分析和检索的数据装置,其特征在于,包括若干文件夹,在每一文件夹中包含多个索引分段;每一索引分段包括一全文索引组件、一数据定位模块和一数据存储模块;其中,全文索引组件,用于存储索引分段中的记录的倒排索引信息;数据存储模块,包含多个横向分块,每个横向分块包含多个列分片,每个列分片包含多个用于存储数据记录的数据页;数据定位模块,提供针对数据存储模块的嵌套索引结构,其包括记录的列数、列描述符集合、数据存储模块的压缩模式以及横向分块索引集合;每个横向分块索引存储了横向分块记录起始Id、横向分块位置、各列分片的位置以及列分片索引集合;每个列分片索引记录了列分片中数据页起始位置和数据页索引集合;每个数据页索引记录了数据页所在文件位置和页记录起始Id。2.如权利要求1所述的数据装置,其特征在于,根据数据定位模块中各横向分块包含的起止Id号将有序Id片段划分到各横向分块索引中。3.如权利要求1或2所述的数据装置,其特征在于,根据全文索引组件中记录的起止Id号,将有序的记录Id集合映射到各索引分段中,每个索引分段包含一个有序Id片段。4.如权利要求3所述的数据装置,其特征在于,所述数据页存储的数据内容为采用字典编码的...

【专利技术属性】
技术研发人员:王卓李波古晓艳王伟平孟丹
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1