CN102890721B - 基于列存储技术的数据库建立方法及系统 - Google Patents
基于列存储技术的数据库建立方法及系统 Download PDFInfo
- Publication number
- CN102890721B CN102890721B CN201210391988.XA CN201210391988A CN102890721B CN 102890721 B CN102890721 B CN 102890721B CN 201210391988 A CN201210391988 A CN 201210391988A CN 102890721 B CN102890721 B CN 102890721B
- Authority
- CN
- China
- Prior art keywords
- row
- file
- array
- block
- metadata
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于列存储技术的数据库建立方法及系统,其中,所述方法包括:建立表;在所述表中建立描述数据结构的组成列信息的列文件;存储所述组成列信息的列元数据至所述列文件,并对所述列文件分块,每块存储固定数量的列元数据;对表中所有的字节数组列,生成一个数组,对该数组的每个数组元数据计算一个散列值并存储这个散列值至列文件。相比于现有技术,本发明基于列存储技术进行建库,极大的提高了数据库的存储、分析检索的便捷性。
Description
【技术领域】
本发明涉及一种基于列存储技术的数据库建立方法及系统。
【背景技术】
随着互联网技术的发展,IT技术的不断更新,社会信息化的不断深入,数据迎来了爆发式的增长,传统的关系型数据库已经不适用这种巨大存储和计算要求。新兴的大数据存储数据库有两种选择:基于“记录”的行存储和列存储。
对于行存储技术,基本操作数据是一条记录(多列构成),其数据的结构性更强,对数据的更改操作(如:删除、修改)、数据的强一致性的实现更方便,但对大批量数据的存储、分析检索的便捷性较差,不适合用于建立数据库。
有鉴于此,本发明提供一种基于列存储技术的数据库建立方法及系统。
【发明内容】
为了解决上述问题,本发明的目的是提供一种基于列存储技术的数据库建立方法。
本发明的另一目的是提供一种基于列存储技术的数据库建立系统。
其中,本发明的基于列存储技术的数据库建立方法包括以下步骤:
建立表;
在所述表中建立描述数据结构的组成列信息的列文件;
存储所述组成列信息的列元数据至所述列文件,并对所述列文件分块,每块存储固定数量的列元数据;
对表中所有的字节数组列,生成一个数组,对该数组的每个数组元数据计算一个散列值并存储这个散列值至列文件。
作为本发明的进一步改进,所述表是对应关系数据库中的一个二维表,其以目录的形式存储,目录名为表名。
作为本发明的进一步改进,所述列文件分块后,每块有一个信息“索引区”,记录该块的位置、长度、热点词是否有出现及出现频率的信息;每个列文件中有块索引区的区域链表,记录各块索引区的位置,长度。
作为本发明的进一步改进,在所述“存储所述组成列信息的列元数据至所述列文件,并对所述列文件分块,每块存储固定数量的列元数据”步骤后,还包括:
增加一个记录删除标记列文件,对列文件中的每条记录生成一个记录删除标记标记列,对删除的列文件中的记录进行标记。
作为本发明的进一步改进,所述“对表中所有的字节数组列,生成一个数组,对该数组的每个数组元数据计算一个散列值并存储这个散列值至列文件”步骤还包括:
对于字节数组元数据,如果数量大于预设阈值,则单独存储该数组元文件(多有大于阈值的,放在一个单独的块中)。
相应地,本发明的基于列存储技术的数据库建立系统包括:
表建立单元,用于建立表;
列文件建立单元,用于在所述表中建立描述数据结构的组成列信息的列文件;
存储单元,用于存储所述组成列信息的列元数据至所述列文件,并对所述列文件分块,每块存储固定数量的列元数据;
数组单元,用于对表中所有的字节数组列,生成一个数组,对该数组的每个数组元数据计算一个散列值并存储这个散列值至列文件。
作为本发明的进一步改进,所述表是对应关系数据库中的一个二维表,其以目录的形式存储,目录名为表名。
作为本发明的进一步改进,所述存储单元还用于,所述列文件分块后,每块有一个信息“索引区”,记录该块的位置、长度、热点词是否有出现及出现频率的信息;每个列文件中有块索引区的区域链表,记录各块索引区的位置,长度。
作为本发明的进一步改进,所述系统还包括记录删除标记单元,用于增加一个列文件,对列文件中的每条记录生成一个标记列,对删除的列文件中的记录进行标记。
作为本发明的进一步改进,所述数组单元还用于对于字节数组元数据,如果数量大于预设阈值,则单独存储该数组元文件。
相比于现有技术,本发明基于列存储技术进行建库,极大的提高了数据库的存储、分析检索的便捷性。
【附图说明】
图1是本发明一实施例的基于列存储技术的数据库建立方法的流程图;
图2是本发明一实施例的基于列存储技术的数据库建立系统的模块图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
如图1所示,在本发明一实施例中的基于列存储技术的数据库建立方法包括:
S1、建立表,所述表是对应关系数据库中的一个二维表,其以目录的形式存储,目录名为表名(系统中唯一);
S2、在所述表中建立描述数据结构的组成列信息的列文件;这个列文件在表被创建的时候建立,它记录如下信息:
选项 | 性质 | 说明 |
列的名称 | 必须 | 表中唯一 |
数据类型 | 必须 | 支持字节数组、字节、short(2字节整形)、int(4字节整形)、long(8字节整形) |
数据范围 | 可选 | 对指定列数据进行完整性监测,剔除列值不在范围内的记录 |
热点词 | 可选 | 对指定列中元数据,按指定热点词的指定操作进行统计。操作可以是表达式、可以是系统提供的函数方法(如统计出现的次数,在每小时时间范围内出现次数,出现的最大值,出现的最小值,出现的平均值…) |
S3、存储所述组成列信息的列元数据至所述列文件,并对所述列文件分块,每块存储固定数量的列元数据;优选地,每块有一个信息“索引区”,记录该块的位置、长度、热点词是否有出现及出现频率(根据指定操作进行统计)等信息;每个列文件中有块索引区的区域链表,记录各块索引区的位置,长度;
S4、增加一个列文件,对列文件中的每条记录生成一个“标记列”,对删除的列文件中的记录进行“标记”;
S5、对表中所有的字节数组列,生成一个数组——数字映射文件(reflectfile),对该数组的每个数组元数据计算一个散列值(8字节,一个散列值可对应多个元数据)并存储这个散列值至列文件;优选地,数字映射文件按散列值排序,按散列值范围分块;对于字节数组元数据,如果数量大于预设阈值,则单独存储该数组元文件(多有大于阈值的,放在一个单独的块中)。
如图2所示,在本发明一实施例中的基于列存储技术的数据库建立系统包括:
表建立单元,用于建立表,所述表是对应关系数据库中的一个二维表,其以目录的形式存储,目录名为表名(系统中唯一);
列文件建立单元,用于在所述表中建立描述数据结构的组成列信息的列文件;这个列文件在表被创建的时候建立,它记录如下信息:
选项 | 性质 | 说明 |
列的名称 | 必须 | 表中唯一 |
数据类型 | 必须 | 支持字节数组、字节、short(2字节整形)、int(4字节整形)、long(8字节整形) |
数据范围 | 可选 | 对指定列数据进行完整性监测,剔除列值不在范围内的记录 |
热点词 | 可选 | 对指定列中元数据,按指定热点词的指定操作进行统计。操作可以是表达式、可以是系统提供的函数方法(如统计出现的次数,在每小时时间范围内出现次数,出现的最大值,出现的最小值,出现的平均值…) |
存储单元,用于存储所述组成列信息的列元数据至所述列文件,并对所述列文件分块,每块存储固定数量的列元数据;优选地,每块有一个信息“索引区”,记录该块的位置、长度、热点词是否有出现及出现频率(根据指定操作进行统计)等信息;每个列文件中有块索引区的区域链表,记录各块索引区的位置,长度;
标记单元,用于增加一个列文件,对列文件中的每条记录生成一个“标记列”,对删除的列文件中的记录进行“标记”;
数组单元,用于对表中所有的字节数组列,生成一个数组——数字映射文件(reflectfile),对该数组的每个数组元数据计算一个散列值(8字节,一个散列值可对应多个元数据)并存储这个散列值至列文件;优选地,数字映射文件按散列值排序,按散列值范围分块;对于字节数组元数据,如果数量大于预设阈值,则单独存储该数组元文件。
综上所述,本方法以列为操作单位,在检索这种结构的数据时只需操作相关列的相关索引块;在存储时,各列可以并发独立操作,提高效率。以列为操作单位,可以方便的对列指定“热点词”,以提供常用词的快速检索;可以方便的对列数据进型压缩共享处理,减少磁盘空间的占用,总而言之,本发明数据库的存储结构对存储、分析检索的便捷性均有较大提升。
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于列存储技术的数据库建立方法,其特征在于,所述方法包括:
建立表;
在所述表中建立描述数据结构的组成列信息的列文件;
存储所述组成列信息的列元数据至所述列文件,并对所述列文件分块,每块存储固定数量的列元数据;
对表中所有的字节数组列,生成一个数组,对该数组的每个数组元数据计算一个散列值并存储这个散列值至列文件,
所述表是对应关系数据库中的一个二维表,其以目录的形式存储,目录名为表名,
所述列文件分块后,每块有一个信息“索引区”,记录该块的位置、长度、热点词是否有出现及出现频率的信息;每个列文件中有块索引区的区域链表,记录各块索引区的位置,长度。
2.根据权利要求1所述的基于列存储技术的数据库建立方法,其特征在于,在所述“存储所述组成列信息的列元数据至所述列文件,并对所述列文件分块,每块存储固定数量的列元数据”步骤后,还包括:
增加一个记录删除标记列文件,对记录删除标记列文件中的每条记录生成一个标记列,对删除的列文件中的记录进行标记。
3.根据权利要求1所述的基于列存储技术的数据库建立方法,其特征在于,所述“对表中所有的字节数组列,生成一个数组,对该数组的每个数组元数据计算一个散列值并存储这个散列值至列文件”步骤还包括:
对于字节数组元数据,如果数量大于预设阈值,则单独存储该数组元文件。
4.一种基于列存储技术的数据库建立系统,其特征在于,所述系统包括:
表建立单元,用于建立表;
列文件建立单元,用于在所述表中建立描述数据结构的组成列信息的列文件;
存储单元,用于存储所述组成列信息的列元数据至所述列文件,并对所述列文件分块,每块存储固定数量的列元数据;
数组单元,用于对表中所有的字节数组列和记录删除标记列,生成一个数组,对该数组的每个数组元数据计算一个散列值并存储这个散列值至列文件,
所述表是对应关系数据库中的一个二维表,其以目录的形式存储,目录名为表名,
所述存储单元还用于,所述列文件分块后,每块有一个信息“索引区”,记录该块的位置、长度、热点词是否有出现及出现频率的信息;每个列文件中有块索引区的区域链表,记录各块索引区的位置,长度。
5.根据权利要求4所述的基于列存储技术的数据库建立系统,其特征在于,所述系统还包括记录删除标记单元,用于增加一个列文件,对列文件中的每条记录生成一个标记列,对删除的列文件中的记录进行标记。
6.根据权利要求4所述的基于列存储技术的数据库建立系统,其特征在于,所述数组单元还用于对于字节数组元数据,如果数量大于预设阈值,则单独存储该数组元文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210391988.XA CN102890721B (zh) | 2012-10-16 | 2012-10-16 | 基于列存储技术的数据库建立方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210391988.XA CN102890721B (zh) | 2012-10-16 | 2012-10-16 | 基于列存储技术的数据库建立方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102890721A CN102890721A (zh) | 2013-01-23 |
CN102890721B true CN102890721B (zh) | 2016-03-30 |
Family
ID=47534223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210391988.XA Active CN102890721B (zh) | 2012-10-16 | 2012-10-16 | 基于列存储技术的数据库建立方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102890721B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678556B (zh) * | 2013-12-06 | 2017-10-10 | 华为技术有限公司 | 列式数据库处理的方法和处理设备 |
CN105404634B (zh) * | 2014-09-15 | 2019-02-22 | 南京理工大学 | 基于Key-Value数据块的数据管理方法及系统 |
CN104572933B (zh) * | 2014-12-30 | 2018-02-23 | 北京像素软件科技股份有限公司 | 一种处理数据的方法 |
CN108572788A (zh) * | 2017-03-13 | 2018-09-25 | 广州市动景计算机科技有限公司 | 数据存取方法、装置及系统 |
CN110019191A (zh) * | 2017-09-21 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 数据库信息处理方法及装置 |
CN107864404A (zh) * | 2017-11-20 | 2018-03-30 | 四川长虹电器股份有限公司 | 在机顶盒数据库实现不掉数据升级的方法 |
CN110032894B (zh) * | 2019-04-09 | 2021-07-20 | 北京信安世纪科技股份有限公司 | 一种数据库日志记录方法及系统和数据库日志检测方法 |
CN110968585B (zh) * | 2019-12-20 | 2023-11-03 | 深圳前海微众银行股份有限公司 | 面向列的存储方法、装置、设备及计算机可读存储介质 |
CN114185934B (zh) * | 2021-12-15 | 2022-10-14 | 广州辰创科技发展有限公司 | 一种基于天盾数据库列存储的索引及查询方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727465A (zh) * | 2008-11-03 | 2010-06-09 | 中国移动通信集团公司 | 分布式列存储数据库索引建立、查询方法及装置与系统 |
CN101814045A (zh) * | 2010-04-22 | 2010-08-25 | 华中科技大学 | 一种用于备份服务的数据组织方法 |
-
2012
- 2012-10-16 CN CN201210391988.XA patent/CN102890721B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727465A (zh) * | 2008-11-03 | 2010-06-09 | 中国移动通信集团公司 | 分布式列存储数据库索引建立、查询方法及装置与系统 |
CN101814045A (zh) * | 2010-04-22 | 2010-08-25 | 华中科技大学 | 一种用于备份服务的数据组织方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102890721A (zh) | 2013-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102890721B (zh) | 基于列存储技术的数据库建立方法及系统 | |
CN111125089B (zh) | 时序数据存储方法、装置、服务器及存储介质 | |
CN103488704B (zh) | 一种数据存储方法及装置 | |
CN107423422B (zh) | 基于网格的空间数据分布式存储及检索方法和系统 | |
CN102682108B (zh) | 一种行列混合的数据库存储方法 | |
US10204111B2 (en) | System and method for compressing data in a database | |
CN102375853A (zh) | 分布式数据库系统、在其中建立索引的方法和查询方法 | |
CN103366015A (zh) | 一种基于Hadoop的OLAP数据存储与查询方法 | |
CN103488684A (zh) | 基于缓存数据多线程处理的电力可靠性指标快速计算方法 | |
CN102402602A (zh) | 一种实时数据库的b+树索引方法及装置 | |
CN103399945A (zh) | 一种基于云计算数据库系统的数据结构 | |
CN102779138B (zh) | 实时数据的硬盘存取方法 | |
CN103198151A (zh) | 区域性城市公交车辆运行信息的索引查询系统及方法 | |
CN103914449A (zh) | 一种多源时间序列数据压缩存储方法 | |
CN103744913A (zh) | 一种基于搜索引擎技术的数据库检索方法 | |
CN104035956A (zh) | 一种基于分布式列存储的时间序列数据存储方法 | |
CN104112011B (zh) | 一种海量数据提取的方法及装置 | |
CN107451233A (zh) | 时间属性优先的时空轨迹数据文件在辅助存储设备中的存储方法 | |
CN102446184A (zh) | 一种基于时间序列的工业数据存储及索引方法 | |
CN101256579A (zh) | 一种数据库范围查询数据组织的方法 | |
CN101963993A (zh) | 一种数据库单表记录快速查找的方法 | |
CN103279530A (zh) | 时间序列数据的组合查询缓存的建立方法、方法及系统 | |
CN107273443B (zh) | 一种基于大数据模型元数据的混合索引方法 | |
CN103780263A (zh) | 数据压缩装置、数据压缩方法及记录介质 | |
CN104731779A (zh) | 一种面向实时数据库的实时文件系统数据组织管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder |
Address after: Room 301-302, 3rd Floor, Tiancheng Information Building, No. 88 South Tiancheng Road, High Speed Rail New City, Xiangcheng District, Suzhou City, Jiangsu Province, 215133 Patentee after: SUZHOU MAXNET NETWORK SAFETY TECHNOLOGY Co.,Ltd. Address before: 215021 International Science and Technology Park Phase III 8B, No. 1355 Jinjihu Avenue, Suzhou City, Jiangsu Province Patentee before: SUZHOU MAXNET NETWORK SAFETY TECHNOLOGY Co.,Ltd. |
|
CP02 | Change in the address of a patent holder |