CN110362572A - 一种基于列式存储的时序数据库系统 - Google Patents

一种基于列式存储的时序数据库系统 Download PDF

Info

Publication number
CN110362572A
CN110362572A CN201910554845.8A CN201910554845A CN110362572A CN 110362572 A CN110362572 A CN 110362572A CN 201910554845 A CN201910554845 A CN 201910554845A CN 110362572 A CN110362572 A CN 110362572A
Authority
CN
China
Prior art keywords
data
column
storage
block
plan
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
CN201910554845.8A
Other languages
English (en)
Other versions
CN110362572B (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.)
Zhejiang Bang Sheng Technology Co Ltd
CRRC Tangshan Co Ltd
Original Assignee
Zhejiang Bang Sheng Technology 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 Zhejiang Bang Sheng Technology Co Ltd filed Critical Zhejiang Bang Sheng Technology Co Ltd
Priority to CN201910554845.8A priority Critical patent/CN110362572B/zh
Publication of CN110362572A publication Critical patent/CN110362572A/zh
Application granted granted Critical
Publication of CN110362572B publication Critical patent/CN110362572B/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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries

Abstract

本发明公开了一种基于列式存储的时序数据库系统,包括SQL解析器:将SQL通过解析转换为抽象语法树;逻辑计划生成器:利用抽象语法树生成逻辑查询计划,逻辑查询计划由关系代数表示;查询优化器:利用数据库的状态信息进行查询计划的优化,输出改写后的查询计划;执行器:以块迭代方式执行查询计划,负责与存储层进行交互,获取用户查询的数据;存储引擎:以行+列的方式存储数据。本发明采用列方式存储数据库中的数据,并基于列存储与rocksdb的结合实现了高速插入数据特性与传统数据库的索引功能,在执行器方面,改进了部分算子以与存储引擎的特性深度结合,同时利用现代处理器的新特性为查询加速。

Description

一种基于列式存储的时序数据库系统
技术领域
本发明属于数据存储及处理领域,尤其涉及一种基于列式存储的时序数据库系统的设计。
背景技术
目前市面上已有数款时序数据库,如influxDB等,但是该类数据库多使用基于LSMtree 的存储方案,如influxDB就使用了LSMtree的变种TSM,LSMtree的优点是写入速度快,但是由于要分层查找,其读数据性能并不理想。
发明内容
考虑到时序数据的特点(多写入多读,但更新删除很少),本发明在传统数据库架构上提出基于列式存储的存储引擎与查询执行器,能够提高数据库系统的查询效率。
本发明的目的是通过以下技术方案来实现的:一种基于列式存储的时序数据库系统,包括:
SQL解析器:将SQL通过解析转换为抽象语法树;
逻辑计划生成器:利用抽象语法树生成逻辑查询计划,逻辑查询计划由关系代数表示;
查询优化器:利用数据库的状态信息(表中数据量,已有索引)进行查询计划的优化,输出改写后的查询计划;
执行器:以块迭代方式执行查询计划,负责与存储层进行交互,获取用户查询的数据;
存储引擎:以行+列的方式存储数据。
进一步地,所述SQL解析器的具体实现方式如下:读取用户输入的文本,根据lex&yacc 将文本转换为抽象语法树,其中lex负责语法分析,将用户文本转换为对应的标识符,yacc 接收上述的标识符进行语义分析,将SQL转换为对应的抽象语法树。
进一步地,该系统还包括元数据管理器,元数据管理器负责存储数据库中的一系列元数据,包括表名到表id的映射、表的列名到列id的映射、每个数据表的数据行数、表中列是否存在索引。
进一步地,所述查询优化器的工作分为两个阶段:
阶段一:替换掉关系代数执行计划中的表名、列名,以表id与表中的列id取代。
阶段二:优先使用带有索引的列。
进一步地,所述存储引擎以行列混合的方式存储所有表的数据;
在每一列中,数据被分为若干个块,每个块包含固定数量的数据以及对应该块的统计信息,每一行分配一个rowid;对每个块中的数据进行压缩;
行存储部分采用rocksdb部分实现,每一行在rocksdb中按照kv方式存储,其中key为(数据库名,表名,主键名,主键值)组成的元组,value为该表主键之外其他列的数据。
进一步地,在存储引擎存储的表中,行存储部分用于存储最近被插入表中的数据库,在行存储部分被插入行超过阈值之后,将该表在行存储中的所有数据按照列方式划分,产出一系列列存储中的数据块,之后将这些数据块写入到磁盘,同时删除行存储部分的数据。
进一步地,存储引擎支持对指定列建立索引,建立索引的列要求该列中不能出现多个相同的数据,构建索引时,数据库将扫描列存储部分该列的所有数据,在rocksdb中对每个数据插入一个kv对,key为(数据库名,表名,列名,数据),value为rowid。
进一步地,所述查询计划执行器中,首先通过统计信息判断每个块是否有符合条件的元组,如果没有则不从磁盘加载该块,若不能确定没有符合条件的元组,则将对应的块加载到内存并且解压,若需要对多个列同时进行查询,执行器同时查看多个块的状态,对于每个块划分为三个状态:ALL,表示该块中所有数据均符合本次查询的条件;SOME,块中可能存在一些数据符合本次查询的条件;NONE,该块中没有数据符合本次查询的条件;执行器对多个列的块状态进行合并,合并规则如下:ALL&&SOME=SOME,ALL&&NONE=NONE, ALL&&ALL=ALL;对于合并后状态为NONE与ALL的数据块不做处理,执行器将仅仅从磁盘读取并解压状态为SOME的块,利用这些块进行查询。
进一步地,所述查询计划执行器中,依靠向量化技术加速相同数据类型的数据处理。
进一步地,所述查询计划执行器针对多表查询,采用基于块的nest loop join算法,每次迭代一块数据,在两个数据块内部根据数据的不同特性采用不同块内join算法:如果join操作利用了两个join表其中一个表的主键做连接,那么在块内使用sorted mergejoin进行两个块内的连接,否则使用hash join进行连接。
本发明的有益效果是:本发明采用列方式存储数据库中的数据,并基于列存储与rocksdb 的结合实现了高速插入数据特性与传统数据库的索引功能,在执行器方面,改进了部分算子以与存储引擎的特性深度结合,同时利用现代处理器的新特性为查询加速。
附图说明
图1为本发明基于列式存储的时序数据库系统结构框图;
图2为SQL语句转换为抽象语法树示例;
图3为列存储部分在存储引擎中的布局示意图;
图4为存储引擎中存储的表的完整结构图;
图5为行存储和列存储流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所述实施例是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的其他实施例,都属于本发明的保护范围。
如图1所示,本发明提供的一种基于列式存储的时序数据库系统,包括用于发送SQL的客户端与执行SQL、传送查询结果到客户端的数据库服务器;本发明对数据库中的数据采用列式存储,能够减少存储占用;在执行查询时,采用经过优化的执行计划与针对列存储的算法进行加速,为查询的执行加速。具体模块设计如下:
一、SQL解析器
SQL解析器用于读取用户输入的文本,将文本转换为抽象语法树,这可以依靠lex&yacc 进行,其中lex负责语法分析,将用户文本转换为对应的标识符,yacc接收上述的标识符进行语义分析,将SQL转换为对应的抽象语法树,可以借鉴MySQL的开源代码中的SQLParser 部分,抽象语法树的格式并没有定式,图2给出一个SQL语句转换为抽象语法树的示例。
二、逻辑计划生成器
逻辑计划生成器负责利用SQL解析器生成的抽象语法树生成基于关系代数的执行计划,在这里不进行任何额外的处理,直接将转换后的关系代数执行计划发送到优化器。
三、元数据管理器
元数据管理器负责存储数据库中的一系列元数据,如表名到表id的映射、表的列名到列 id的映射、每个数据表的数据行数、表中列是否存在索引等。主要用于为优化器提供足够的优化信息。
四、查询优化器
优化器的工作分为两个阶段:
阶段一:替换掉关系代数执行计划中的表名、列名,以表id与表中的列id取代,这一阶段的工作主要依靠元数据管理器提供的映射。
阶段二:针对元数据管理器提供的索引信息进行优化,如优先使用带有索引的列。另一方面也可以做一些已有的简单的优化,例如将选择运算符下推到连接运算符的下面,更多该方面的优化可以参考apache calcite,该优化器中拥有大量关于关系代数的优化规则。
五、查询执行器与存储引擎
该模块负责执行上述查询中经过优化的执行计划,其包括两部分:存储引擎与执行器:
1.存储引擎
该存储引擎以行列混合的方式存储所有表的数据,一个表的大部分数据被按列划分,例如一个三个列的表,其列存储部分在存储引擎中的布局如图3。
在每一列中,数据被分为若干个块,每个块包含固定数量的数据,逻辑上的每一行会分配一个rowid,假设一块中含有10000数据,那么rowid=25000指第三块数据块的第5000个数据(2*10000+5000),以及对应该块的统计信息,例如最大值、最小值、平均值、bloom filter 等等。其中对于每个块中的数据会经过压缩算法处理,可以使用snappy、zstd算法等,以减小数据的磁盘占用。
行存储部分采用rocksdb部分实现,在这部分的数据不按列划分存储,而是一行一行的存储,每一行在rocksdb中按照kv方式存储,其中key为(数据库名,表名,主键名,主键值) 组成的元组,value为该表主键之外其他列的数据,若数据库名为dbname,表名为tablename,主键为x,那么在rocksdb中的key即为:dbname|tablename|primary|x。该部分数据与之前所述的列数据结合,从而组成完整的一张表,所以完整的一张表结构如图4。
在这个表中,行存储部分用于存储最近被插入表中的数据库,在行存储部分被插入行超过阈值之后,将该表在行存储中的所有数据按照列方式划分,产出一系列列存储中的数据块,之后将这些数据块写入到磁盘,同时删除行存储部分的数据,其流程图如图5。
该存储引擎支持对指定列建立索引,建立索引的列要求该列中不能出现多个相同的数据,构建索引时,数据库将扫描列存储部分该列的所有数据,在rocksdb中对每个数据插入一个 kv对,key为(数据库名,表名,列名,数据),value为rowid。
2.查询计划执行器
查询计划执行器不同于传统的查询计划执行器,该执行器的最小处理单元不是一行数据而是一个块,同时只获取需要的列而不是全部的列以减少磁盘的IO,另一方面,该执行器将利用每个块对应的统计信息来加速查询的执行。
执行器会先通过统计信息判断每个块是否有符合条件的元组,如果没有就不会从磁盘加载该块,以避免不必要的磁盘IO,若不能确定没有符合条件的元组,就将对应的块加载到内存并且解压,若需要对多个列同时进行查询,例如:Select*from T where T.c1>xand T.c2>y and T.c3>z。执行器将会同时查看三个块的状态,对于每个块划分为三个状态:ALL,表示该块中所有数据都符合本次查询的条件;SOME,块中可能存在一些数据符合本次查询的条件;NONE,该块中没有数据符合本次查询的条件。在每次为三个块确定状态之后,执行器将对三个状态做一个结合。
对于结合后状态为NONE与ALL的数据块将不做处理,因为我们已经知道他们符合/不符合条件,执行器将仅仅从磁盘读取并解压标记为SOME的块,利用这些块进行查询。
由于每个块只含有一列的一部分数据,所以我们可以依靠向量化技术加速相同数据类型的数据处理,例如AVX-512集可以一次处理512bit的数据,以64bit的整数为例,该指令集可以一次处理8个整数,而非传统的循环一条指令处理,从底层加快执行计划的执行速度。
以上讲述了执行器执行单表查询时的操作,现在详细描述执行器在面对多表查询的操作,只需要细描执行器的join算子即可,本发明设计的执行器针对join采用基于块的nest loop join 算法,即区别于传统的每次迭代一行的nest loop join,该算法每次迭代一块数据,在两个数据块内部根据数据的不同特性采用不同块内join算法:如果join操作利用了两个join表其中一个表的主键做连接,那么由于rocksdb基于LSM tree的实现,可以推断出每个块内的数据都是按主键排序的,那么在块内使用sorted merge join进行两个块内的连接,否则使用hash join 进行连接。
本发明的关键点概括如下:
1.存储方案
对于结构化的数据,本存储方案将一行数据拆散为若干列,在每一列中有若干块,每个块含有若干条记录,每个块会采用压缩算法进行压缩,并且每个块会对应存放一些统计信息 (最大值,最小值,布隆过滤器等等)用于查询加速。
2.对于结构化数据写操作的实现
insert:缓存至rocksdb,由于rocksdb能保持数据一旦写入就不会丢失,我们不需要做额外的支持,在rocksdb中缓存的数据达到阈值时将数据取出,进行块压缩后存储到磁盘,同时将rocksdb的数据删除。
3.索引
基于rocksdb实现索引功能,索引在rocksdb中以<数据库名/表名/主键,rowid>格式存储在rocksdb中,由于rocksdb基于的LSMtree中的数据是天然有序的,所以相当于一个顺序的索引。
4.查询方案
对于每个查询,我们不采用传统关系型数据库的volcano模型一行行的数据流处理方式,而采用块迭代+向量化处理的方式,与传统的方式相比,不仅可以更好的发挥CPU的性能,并且减少了函数调用的开销,同时可以利用索引与前文提到的统计信息加速查询,具体方案如下:对于单一列的过滤条件考虑使用块统计信息进行过滤,每个块针对过滤条件可以有三种状态:ALL、SOME、NONE。在单一过滤条件下,简单的过滤掉所有状态NONE的块,对于状态为ALL的块也可以直接跳过等到后期一次取出所有记录即可,仅仅对于状态为 SOME的块需要取出进行逐个检验。若含有多个列的过滤条件,例如:a>1and b<2,我们可以分别计算两个列的过滤条件,在将两个列的块状态合并,合并规则如下:ALL&&SOME =SOME,ALL&&NONE=NONE,ALL&&ALL=ALL等。利用这些状态即可过滤大量不满足的块,从而大量减少磁盘IO,若过滤条件针对主键或建立了索引的列,则可以直接利用之前提到的索引加速查询。

Claims (10)

1.一种基于列式存储的时序数据库系统,其特征在于,包括:
SQL解析器:将SQL通过解析转换为抽象语法树;
逻辑计划生成器:利用抽象语法树生成逻辑查询计划,逻辑查询计划由关系代数表示;
查询优化器:利用数据库的状态信息(表中数据量,已有索引)进行查询计划的优化,输出改写后的查询计划;
执行器:以块迭代方式执行查询计划,负责与存储层进行交互,获取用户查询的数据;
存储引擎:以行+列的方式存储数据。
2.根据权利要求1所述的一种基于列式存储的时序数据库系统,其特征在于,所述SQL解析器的具体实现方式如下:读取用户输入的文本,根据lex&yacc将文本转换为抽象语法树,其中lex负责语法分析,将用户文本转换为对应的标识符,yacc接收上述的标识符进行语义分析,将SQL转换为对应的抽象语法树。
3.根据权利要求1所述的一种基于列式存储的时序数据库系统,其特征在于,该系统还包括元数据管理器,元数据管理器负责存储数据库中的一系列元数据,包括表名到表id的映射、表的列名到列id的映射、每个数据表的数据行数、表中列是否存在索引。
4.根据权利要求1所述的一种基于列式存储的时序数据库系统,其特征在于,所述查询优化器的工作分为两个阶段:
阶段一:替换掉关系代数执行计划中的表名、列名,以表id与表中的列id取代。
阶段二:优先使用带有索引的列。
5.根据权利要求1所述的一种基于列式存储的时序数据库系统,其特征在于,所述存储引擎以行列混合的方式存储所有表的数据;
在每一列中,数据被分为若干个块,每个块包含固定数量的数据以及对应该块的统计信息,每一行分配一个rowid;对每个块中的数据进行压缩;
行存储部分采用rocksdb部分实现,每一行在rocksdb中按照kv方式存储,其中key为(数据库名,表名,主键名,主键值)组成的元组,value为该表主键之外其他列的数据。
6.根据权利要求5所述的一种基于列式存储的时序数据库系统,其特征在于,在存储引擎存储的表中,行存储部分用于存储最近被插入表中的数据库,在行存储部分被插入行超过阈值之后,将该表在行存储中的所有数据按照列方式划分,产出一系列列存储中的数据块,之后将这些数据块写入到磁盘,同时删除行存储部分的数据。
7.根据权利要求5所述的一种基于列式存储的时序数据库系统,其特征在于,存储引擎支持对指定列建立索引,建立索引的列要求该列中不能出现多个相同的数据,构建索引时,数据库将扫描列存储部分该列的所有数据,在rocksdb中对每个数据插入一个kv对,key为(数据库名,表名,列名,数据),value为rowid。
8.根据权利要求1所述的一种基于列式存储的时序数据库系统,其特征在于,所述查询计划执行器中,首先通过统计信息判断每个块是否有符合条件的元组,如果没有则不从磁盘加载该块,若不能确定没有符合条件的元组,则将对应的块加载到内存并且解压,若需要对多个列同时进行查询,执行器同时查看多个块的状态,对于每个块划分为三个状态:ALL,表示该块中所有数据均符合本次查询的条件;SOME,块中可能存在一些数据符合本次查询的条件;NONE,该块中没有数据符合本次查询的条件;执行器对多个列的块状态进行合并,合并规则如下:ALL&&SOME=SOME,ALL&&NONE=NONE,ALL&&ALL=ALL;对于合并后状态为NONE与ALL的数据块不做处理,执行器将仅仅从磁盘读取并解压状态为SOME的块,利用这些块进行查询。
9.根据权利要求1所述的一种基于列式存储的时序数据库系统,其特征在于,所述查询计划执行器中,依靠向量化技术加速相同数据类型的数据处理。
10.根据权利要求1所述的一种基于列式存储的时序数据库系统,其特征在于,所述查询计划执行器针对多表查询,采用基于块的nest loop join算法,每次迭代一块数据,在两个数据块内部根据数据的不同特性采用不同块内join算法:如果join操作利用了两个join表其中一个表的主键做连接,那么在块内使用sorted merge join进行两个块内的连接,否则使用hash join进行连接。
CN201910554845.8A 2019-06-25 2019-06-25 一种基于列式存储的时序数据库系统 Active CN110362572B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910554845.8A CN110362572B (zh) 2019-06-25 2019-06-25 一种基于列式存储的时序数据库系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910554845.8A CN110362572B (zh) 2019-06-25 2019-06-25 一种基于列式存储的时序数据库系统

Publications (2)

Publication Number Publication Date
CN110362572A true CN110362572A (zh) 2019-10-22
CN110362572B CN110362572B (zh) 2022-07-01

Family

ID=68217489

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910554845.8A Active CN110362572B (zh) 2019-06-25 2019-06-25 一种基于列式存储的时序数据库系统

Country Status (1)

Country Link
CN (1) CN110362572B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111143403A (zh) * 2019-12-10 2020-05-12 跬云(上海)信息科技有限公司 Sql转换方法及装置、存储介质
CN111159176A (zh) * 2019-11-29 2020-05-15 中国科学院计算技术研究所 一种海量流数据的存储和读取的方法和系统
CN111209321A (zh) * 2019-12-25 2020-05-29 北京永洪商智科技有限公司 一种针对复杂查询的分组入数据集市方法
CN111291235A (zh) * 2020-05-13 2020-06-16 成都四方伟业软件股份有限公司 一种基于时序数据库的元数据存储方法及装置
CN111813801A (zh) * 2020-09-10 2020-10-23 天云融创数据科技(北京)有限公司 一种数据检索方法及装置
CN112035257A (zh) * 2020-08-31 2020-12-04 浪潮云信息技术股份公司 基于KV存储的mergejoin异步块运算方法
CN112364278A (zh) * 2020-11-23 2021-02-12 浪潮云信息技术股份公司 一种基于CockroachDB底层键值数据分类优化方法
CN112416926A (zh) * 2020-11-02 2021-02-26 浙商银行股份有限公司 支持国产cpu simd指令的分布式数据库高性能执行器设计方法
CN112632111A (zh) * 2021-03-08 2021-04-09 北京鼎石纵横科技有限公司 一种基于向量化执行引擎的数据库表达式计算的复用方法
CN112632073A (zh) * 2020-12-24 2021-04-09 第四范式(北京)技术有限公司 一种时序特征数据表的存储方法及装置
CN112783927A (zh) * 2021-01-27 2021-05-11 浪潮云信息技术股份公司 一种数据库查询方法及系统
CN113297244A (zh) * 2020-05-29 2021-08-24 阿里巴巴集团控股有限公司 数据库操作方法、装置、设备及存储介质
CN113360551A (zh) * 2021-08-11 2021-09-07 南京赛宁信息技术有限公司 一种靶场中时序数据的存储与快速统计方法及系统
CN113535729A (zh) * 2021-07-21 2021-10-22 浪潮云信息技术股份公司 一种基于RocksDB实现行列混合存储的方法
CN113626464A (zh) * 2021-08-02 2021-11-09 浪潮云信息技术股份公司 基于ClickHouse数据库内存数据的查询支持方法及系统
CN114706861A (zh) * 2022-06-08 2022-07-05 天津南大通用数据技术股份有限公司 一种在列存储引擎中按列动态分组存储的方法
CN115062028A (zh) * 2022-07-27 2022-09-16 中建电子商务有限责任公司 一种OLTP领域多表join查询的方法

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040039729A1 (en) * 2002-08-20 2004-02-26 International Business Machines Corporation Metadata manager for database query optimizer
US20100169381A1 (en) * 2008-12-31 2010-07-01 International Business Machines Corporation Expression tree data structure for representing a database query
CN104133858A (zh) * 2014-07-15 2014-11-05 武汉邮电科学研究院 基于列存储的智能双引擎分析系统及方法
CN104572893A (zh) * 2014-12-24 2015-04-29 天津南大通用数据技术股份有限公司 一种数据库中的数据混合存储方法
CN105574643A (zh) * 2015-11-23 2016-05-11 江苏瑞中数据股份有限公司 一种电网实时数据中心与大数据平台融合方法
CN105718593A (zh) * 2016-01-28 2016-06-29 长春师范大学 一种数据库查询优化方法及系统
US20160275199A1 (en) * 2015-03-20 2016-09-22 Kabushiki Kaisha Toshiba Data processing device, data processing method, and non-transitory computer readable medium
CN106383893A (zh) * 2016-09-23 2017-02-08 上海携程商务有限公司 时间序列数据管理方法及系统
CN107729410A (zh) * 2017-09-26 2018-02-23 广西电网有限责任公司电力科学研究院 一种适用于电力设备大数据的数据库引擎
CN108182244A (zh) * 2017-12-28 2018-06-19 清华大学 一种基于多层次列式存储结构的时序数据存储方法
CN109542828A (zh) * 2017-09-22 2019-03-29 国网上海市电力公司 一种电力大数据实验平台
US20190130293A1 (en) * 2017-10-31 2019-05-02 Tata Consultancy Services Limited Method and system for multi-core processing based time series management with pattern detection based forecasting
US10783186B2 (en) * 2017-08-31 2020-09-22 Micron Technology, Inc. Heterogenous key-value sets in tree database

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040039729A1 (en) * 2002-08-20 2004-02-26 International Business Machines Corporation Metadata manager for database query optimizer
US20100169381A1 (en) * 2008-12-31 2010-07-01 International Business Machines Corporation Expression tree data structure for representing a database query
CN104133858A (zh) * 2014-07-15 2014-11-05 武汉邮电科学研究院 基于列存储的智能双引擎分析系统及方法
CN104572893A (zh) * 2014-12-24 2015-04-29 天津南大通用数据技术股份有限公司 一种数据库中的数据混合存储方法
US20160275199A1 (en) * 2015-03-20 2016-09-22 Kabushiki Kaisha Toshiba Data processing device, data processing method, and non-transitory computer readable medium
CN105574643A (zh) * 2015-11-23 2016-05-11 江苏瑞中数据股份有限公司 一种电网实时数据中心与大数据平台融合方法
CN105718593A (zh) * 2016-01-28 2016-06-29 长春师范大学 一种数据库查询优化方法及系统
CN106383893A (zh) * 2016-09-23 2017-02-08 上海携程商务有限公司 时间序列数据管理方法及系统
US10783186B2 (en) * 2017-08-31 2020-09-22 Micron Technology, Inc. Heterogenous key-value sets in tree database
CN109542828A (zh) * 2017-09-22 2019-03-29 国网上海市电力公司 一种电力大数据实验平台
CN107729410A (zh) * 2017-09-26 2018-02-23 广西电网有限责任公司电力科学研究院 一种适用于电力设备大数据的数据库引擎
US20190130293A1 (en) * 2017-10-31 2019-05-02 Tata Consultancy Services Limited Method and system for multi-core processing based time series management with pattern detection based forecasting
CN108182244A (zh) * 2017-12-28 2018-06-19 清华大学 一种基于多层次列式存储结构的时序数据存储方法

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159176A (zh) * 2019-11-29 2020-05-15 中国科学院计算技术研究所 一种海量流数据的存储和读取的方法和系统
CN111143403B (zh) * 2019-12-10 2021-05-14 跬云(上海)信息科技有限公司 Sql转换方法及装置、存储介质
CN111143403A (zh) * 2019-12-10 2020-05-12 跬云(上海)信息科技有限公司 Sql转换方法及装置、存储介质
CN111209321A (zh) * 2019-12-25 2020-05-29 北京永洪商智科技有限公司 一种针对复杂查询的分组入数据集市方法
CN111291235A (zh) * 2020-05-13 2020-06-16 成都四方伟业软件股份有限公司 一种基于时序数据库的元数据存储方法及装置
CN113297244B (zh) * 2020-05-29 2022-05-06 阿里巴巴集团控股有限公司 数据库操作方法、装置、设备及存储介质
CN113297244A (zh) * 2020-05-29 2021-08-24 阿里巴巴集团控股有限公司 数据库操作方法、装置、设备及存储介质
CN112035257A (zh) * 2020-08-31 2020-12-04 浪潮云信息技术股份公司 基于KV存储的mergejoin异步块运算方法
CN112035257B (zh) * 2020-08-31 2022-05-31 浪潮云信息技术股份公司 基于KV存储的mergejoin异步块运算方法
CN111813801A (zh) * 2020-09-10 2020-10-23 天云融创数据科技(北京)有限公司 一种数据检索方法及装置
CN112416926A (zh) * 2020-11-02 2021-02-26 浙商银行股份有限公司 支持国产cpu simd指令的分布式数据库高性能执行器设计方法
CN112364278A (zh) * 2020-11-23 2021-02-12 浪潮云信息技术股份公司 一种基于CockroachDB底层键值数据分类优化方法
CN112632073A (zh) * 2020-12-24 2021-04-09 第四范式(北京)技术有限公司 一种时序特征数据表的存储方法及装置
CN112783927A (zh) * 2021-01-27 2021-05-11 浪潮云信息技术股份公司 一种数据库查询方法及系统
CN112632111A (zh) * 2021-03-08 2021-04-09 北京鼎石纵横科技有限公司 一种基于向量化执行引擎的数据库表达式计算的复用方法
CN113535729A (zh) * 2021-07-21 2021-10-22 浪潮云信息技术股份公司 一种基于RocksDB实现行列混合存储的方法
CN113626464A (zh) * 2021-08-02 2021-11-09 浪潮云信息技术股份公司 基于ClickHouse数据库内存数据的查询支持方法及系统
CN113360551A (zh) * 2021-08-11 2021-09-07 南京赛宁信息技术有限公司 一种靶场中时序数据的存储与快速统计方法及系统
CN114706861A (zh) * 2022-06-08 2022-07-05 天津南大通用数据技术股份有限公司 一种在列存储引擎中按列动态分组存储的方法
CN115062028A (zh) * 2022-07-27 2022-09-16 中建电子商务有限责任公司 一种OLTP领域多表join查询的方法
CN115062028B (zh) * 2022-07-27 2023-01-06 中建电子商务有限责任公司 一种OLTP领域多表join查询的方法

Also Published As

Publication number Publication date
CN110362572B (zh) 2022-07-01

Similar Documents

Publication Publication Date Title
CN110362572A (zh) 一种基于列式存储的时序数据库系统
US6505188B1 (en) Virtual join index for relational databases
US7171427B2 (en) Methods of navigating a cube that is implemented as a relational object
US8868544B2 (en) Using relational structures to create and support a cube within a relational database system
Thusoo et al. Hive-a petabyte scale data warehouse using hadoop
EP2605158B1 (en) Mixed join of row and column database tables in native orientation
US8126870B2 (en) System and methodology for parallel query optimization using semantic-based partitioning
US5619692A (en) Semantic optimization of query order requirements using order detection by normalization in a query compiler system
US6009432A (en) Value-instance-connectivity computer-implemented database
CN105117417B (zh) 一种读优化的内存数据库Trie树索引方法
US6374232B1 (en) Method and mechanism for retrieving values from a database
CA2388515C (en) System for managing rdbm fragmentations
JP3914662B2 (ja) データベース処理方法及び実施装置並びにその処理プログラムを記憶した媒体
Scholl et al. Supporting Flat Relations by a Nested Relational Kernel.
US6343286B1 (en) Efficient technique to defer large object access with intermediate results
KR20060112191A (ko) 컬렉션값을 가지는 열 및 스칼라값을 가지는 열을 단일문으로 수정하기 위한 sql 언어 확장
CN101710336A (zh) 一种利用关系中间件加速数据处理的方法
Kolev et al. Benchmarking polystores: the CloudMdsQL experience
Arnold et al. HRDBMS: Combining the best of modern and traditional relational databases
Carter et al. Nanosecond indexing of graph data with hash maps and VLists
WO2023086322A1 (en) Late materialization of queried data in database cache
Zhu et al. Developing a dynamic materialized view index for efficiently discovering usable views for progressive queries
Shi et al. SQLiteKV: An efficient LSM-tree-based SQLite-like database engine for mobile devices
US8332373B1 (en) Representing user-defined routines with defined data structures
Mershad MQL: mixed query language for querying mySQL and HBase databases

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
TA01 Transfer of patent application right

Effective date of registration: 20191230

Address after: 310012 Xihu District, Hangzhou, West Gate Road, No., Paradise Software Park, building D, block 17, block ABCD, 3

Applicant after: Zhejiang Bang Sheng Technology Co., Ltd.

Applicant after: CRRC TANGSHAN CO., LTD.

Address before: 310012 Xihu District, Hangzhou, West Gate Road, No., Paradise Software Park, building D, block 17, block ABCD, 3

Applicant before: Zhejiang Bang Sheng Technology Co., Ltd.

TA01 Transfer of patent application right
CB02 Change of applicant information

Address after: Room ABCD, 17th floor, building D, Paradise Software Park, No.3 xidoumen Road, Xihu District, Hangzhou City, Zhejiang Province, 310012

Applicant after: Zhejiang Bangsheng Technology Co.,Ltd.

Applicant after: CSR Tangshan Rolling Stock Co., Ltd

Address before: Room ABCD, 17th floor, building D, Paradise Software Park, No.3 xidoumen Road, Xihu District, Hangzhou City, Zhejiang Province, 310012

Applicant before: ZHEJIANG BANGSUN TECHNOLOGY Co.,Ltd.

Applicant before: CSR Tangshan Rolling Stock Co., Ltd

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant