CN116483886B - 结合kv存储引擎和时序存储引擎查询olap的方法 - Google Patents

结合kv存储引擎和时序存储引擎查询olap的方法 Download PDF

Info

Publication number
CN116483886B
CN116483886B CN202310373047.1A CN202310373047A CN116483886B CN 116483886 B CN116483886 B CN 116483886B CN 202310373047 A CN202310373047 A CN 202310373047A CN 116483886 B CN116483886 B CN 116483886B
Authority
CN
China
Prior art keywords
data
time
time sequence
sequence
storage node
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
Application number
CN202310373047.1A
Other languages
English (en)
Other versions
CN116483886A (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.)
Shanghai Yunxi Technology Co ltd
Original Assignee
Shanghai Yunxi 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 Shanghai Yunxi Technology Co ltd filed Critical Shanghai Yunxi Technology Co ltd
Priority to CN202310373047.1A priority Critical patent/CN116483886B/zh
Publication of CN116483886A publication Critical patent/CN116483886A/zh
Application granted granted Critical
Publication of CN116483886B publication Critical patent/CN116483886B/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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data
    • 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/2282Tablespace storage structures; Management thereof
    • 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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/2455Query execution
    • G06F16/24552Database cache management
    • 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/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Fuzzy Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开结合KV存储引擎和时序存储引擎查询OLAP的方法,涉及分布式数据库技术领域;根据数据表类型,调用相应存储引擎存储数据:若数据表类型是时序表,则调用时序存储引擎,按照跟随分区方式将时序表转发给时序存储节点;通过时序存储节点上的时序表维护内存跳表结构,将插入的数据按照时间戳的方式排序,进行数据缓存,将缓存数据追加到分区文件;采用混合查询方式进行OLAP数据表查询,包括:扫描读取数据表,根据过滤条件读取数据表,以及利用表连接查询数据表,所述表连接查询数据表包括普通表与时序表连接方式查询和时序表连接方式查询。

Description

结合KV存储引擎和时序存储引擎查询OLAP的方法
技术领域
本发明公开方法,涉及分布式数据库技术领域,具体地说是结合KV存储引擎和时序存储引擎查询OLAP的方法。
背景技术
在企业数据量日益庞大后,线上交易(OLTP,Online Transactional Processing)和后台分析(OLAP,Online Analytical Processing)通常被分割为两个独立系统,线上交易的业务数据通过ETL工具抽取出来,导入后台分析平台。这个架构中ETL存在复杂性以及维护成本高,并且ETL是一个周期性操作,比如一天或者一个小时导入一次数据,因此无法保证后台分析的数据具有实时性。
发明内容
本发明针对现有技术的问题,提供结合KV存储引擎和时序存储引擎查询OLAP的方法,直接将在线交易业务的插入/更新数据写入时序存储引擎,同时支持普通表和时序表上的实时快速分析查询,节省维护成本且后台分析数据能够保证实时性。
本发明提出的具体方案是:
本发明提供结合KV存储引擎和时序存储引擎查询OLAP的方法,根据数据表类型,调用相应存储引擎存储数据:若数据表类型是普通表,则调用KV存储引擎根据Raft协议将普通表存入RocksDB的节点,
若数据表类型是时序表,则调用时序存储引擎,按照跟随分区方式将时序表转发给时序存储节点,所述跟随分区方式指时序表连接方式,所述时序表连接方式为一个时序表的主键为另一个时序表的外键,根据所述时序表连接方式时序表之间能够存储在同一时序存储节点;
通过时序存储节点上的时序表维护内存跳表结构,将插入的数据按照时间戳的方式排序,进行数据缓存,将缓存数据追加到分区文件;
采用混合查询方式进行OLAP数据表查询,包括:扫描读取数据表,根据过滤条件读取数据表,以及利用表连接查询数据表,
所述表连接查询数据表包括普通表与时序表连接方式查询和时序表连接方式查询。
进一步,所述的结合KV存储引擎和时序存储引擎查询OLAP的方法中所述将缓存数据追加到分区文件,包括:
统计缓存数据各列的最大最小值,
将行存转换为列存,压缩当前缓存数据,
将每个时序表对应物理磁盘上的分区文件,所述分区文件包括.data文件和.meta文件,将压缩后缓存数据作为数据块Block追加到.data文件的末尾,将各列统计数据和文件的偏移和长度更新到.meta文件。
进一步,所述的结合KV存储引擎和时序存储引擎查询OLAP的方法所述根据过滤条件读取数据表,包括:根据单表扫描的过滤条件结合.meta文件中数据块的统计信息,确定需要读取的数据块,从时序存储节点的.data文件中读取数据,跟缓存数据合并。
进一步,所述的结合KV存储引擎和时序存储引擎查询OLAP的方法所述普通表与时序表连接方式查询,包括:判断普通表是否为小表,若普通表是小表,将普通表广播到各个时序存储节点构建哈希表,扫描时序表分区作为探测表进行哈希连接,汇总各时序存储节点的连接结果集,否则利用时序表上的谓词过滤数据,将时序表数据集返回SQL层构建哈希表,扫描普通表作为探测表。
进一步,所述的结合KV存储引擎和时序存储引擎查询OLAP的方法所述时序表连接方式查询,包括:根据时序表连接方式时序表之间在同一时序存储节点存储,在各个时序存储节点上构建局部哈希表,哈希连接后汇总各时序存储节点的连接结果。
本发明还提供结合KV存储引擎和时序存储引擎查询OLAP的装置,包括分区转发模块、缓存模块、落盘模块和混合查询模块,
分区转发模块根据数据表类型,调用相应存储引擎存储数据:若数据表类型是普通表,则调用KV存储引擎根据Raft协议将普通表存入RocksDB的节点,
若数据表类型是时序表,则调用时序存储引擎,按照跟随分区方式将时序表转发给时序存储节点,其中所述跟随分区方式指时序表连接方式,所述时序表连接方式为一个时序表的主键为另一个时序表的外键,根据所述时序表连接方式时序表之间能够存储在同一时序存储节点,
缓存模块通过时序存储节点上的时序表维护内存跳表结构,将插入的数据按照时间戳的方式排序,进行数据缓存,落盘模块将缓存数据追加到分区文件,
混合查询模块采用混合查询方式进行OLAP数据表查询,包括:扫描读取数据表,根据过滤条件读取数据表,以及利用表连接查询数据表,
所述表连接查询数据表包括普通表与时序表连接方式查询和时序表连接方式查询。
进一步,所述的结合KV存储引擎和时序存储引擎查询OLAP的装置中所述落盘模块将缓存数据追加到分区文件,包括:
统计缓存数据各列的最大最小值,
将行存转换为列存,压缩当前缓存数据,
将每个时序表对应物理磁盘上的分区文件,所述分区文件包括.data文件和.meta文件,将压缩后缓存数据作为数据块Block追加到.data文件的末尾,将各列统计数据和文件的偏移和长度更新到.meta文件。
进一步,所述的结合KV存储引擎和时序存储引擎查询OLAP的装置中所述混合查询模块根据过滤条件读取数据表,包括:根据单表扫描的过滤条件结合.meta文件中数据块的统计信息,确定需要读取的数据块,从时序存储节点的.data文件中读取数据,跟缓存数据合并。
进一步,所述的结合KV存储引擎和时序存储引擎查询OLAP的装置中所述混合查询模块利用普通表与时序表连接方式查询,包括:判断普通表是否为小表,若普通表是小表,将普通表广播到各个时序存储节点构建哈希表,扫描时序表分区作为探测表进行哈希连接,汇总各时序存储节点的连接结果集,否则利用时序表上的谓词过滤数据,将时序表数据集返回SQL层构建哈希表,扫描普通表作为探测表。
进一步,所述的结合KV存储引擎和时序存储引擎查询OLAP的装置中所述混合查询模块利用时序表连接方式查询,包括:根据时序表连接方式时序表之间在同一时序存储节点存储,在各个时序存储节点上构建局部哈希表,哈希连接后汇总各时序存储节点的连接结果。
本发明的有益之处是:
本发明提供结合KV存储引擎和时序存储引擎查询OLAP的方法,与现有技术相比具有以下优点:
(1)时序数据直接放入时序存储引擎,无需通过Raft协议复制维护两套数据;
(2)OLTP提交数据直接用于OLAP分析查询,保障了数据分析管理的实时性;
(3)时序存储引擎可以利用MMAP机制将数据文件映射到内存,省略了内核态缓存到用户态的拷贝过程,加速查询分析过程;
(4)规定了多种表连接方式,特别是跟随分区的设定,在插入数据时就保证了两张表分区的一致性,哈希连接查询时不再需要Shuffle过程。
附图说明
图1是本发明装置模块功能展示示意图。
图2是本发明方法转发数据表示意图。
图3是根据数据表主键建立字典树示意图。
图4是时序表和时序表采用跟随分区后连接示意图。
具体实施方式
数据库可以通过内部参数定义大表和小表的界限,如果表的buffer大小小于内部参数的设定值,则可以认为它是小表,反之为大表。
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明提供结合KV存储引擎和时序存储引擎查询OLAP的方法,根据数据表类型,调用相应存储引擎存储数据:若数据表类型是普通表,则调用KV存储引擎根据Raft协议将普通表存入RocksDB的节点,
若数据表类型是时序表,则调用时序存储引擎,按照跟随分区方式将时序表转发给时序存储节点,所述跟随分区方式指时序表连接方式,所述时序表连接方式为一个时序表的主键为另一个时序表的外键,根据所述时序表连接方式时序表之间能够存储在同一时序存储节点;
通过时序存储节点上的时序表维护内存跳表结构,将插入的数据按照时间戳的方式排序,进行数据缓存,将缓存数据追加到分区文件;
采用混合查询方式进行OLAP数据表查询,包括:扫描读取数据表,根据过滤条件读取数据表,以及利用表连接查询数据表,
所述表连接查询数据表包括普通表与时序表连接方式查询和时序表连接方式查询。
本发明方法提高OLAP查询分析速度,可以直接把在线交易业务的插入/更新数据写入时序存储引擎,同时支持普通表和时序表上的实时快速分析查询。
具体应用中,基于本发明的技术方案,在本发明方法的一些实施例中,具体过程可参考如下:
(1)利用本发明方法在SQL层收到I/U/D语句后,根据数据表类型,调用相应存储引擎存储数据,若数据表类型是普通表,则调用KV存储引擎根据Raft协议将普通表存入RocksDB的节点,
若数据表类型是时序表,则调用时序存储引擎,按照跟随分区方式将时序表转发给时序存储节点。为了加速存储引擎中的表连接,本发明方法定义一种新的分区方式称之为跟随分区,跟随分区方式指时序表连接方式,所述时序表连接方式为一个时序表的主键为另一个时序表的外键,根据所述时序表连接方式时序表之间能够存储在同一时序存储节点,例如以TPC-H基准测试的客户表(Customer)和订单表(Orders)连接为例,客户表的主键c_custkey是订单表的外键o_custkey,c_nationkey将客户表数据按国家分区。订单表并没有国家编码的信息,但是如果订单插入时能够按照订单客户的国家分区,即保证相同o_custkey和c_custkey的客户记录和订单记录存储在同一分区时序存储节点,将对哈希连接查询性能带来很大的提升,能够省略shuffle过程。连接参考设置如下:
CREATE TABLE CUSTOMER(C_CUSTKEY INTEGER NOT NULL,
C_NAME VARCHAR(25)NOT NULL,
C_ADDRESS VARCHAR(40)NOT NULL,
C_NATIONKEY INTEGER NOT NULL,
C_PHONE CHAR(15)NOT NULL,
C_ACCTBAL DECIMAL(15,2) NOT NULL,
C_MKTSEGMENT CHAR(10)NOT NULL,
C_COMMENT VARCHAR(117)NOT NULL,PRIMARY KEY(C_CUSTKEY))
PARTITIOND BY C_NATIONKEY;
CREATE TABLE ORDERS(O_ORDERKEY INTEGER NOT NULL,
O_CUSTKEY INTEGER NOT NULL,
O_ORDERSTATUS CHAR(1)NOT NULL,
O_TOTALPRICE DECIMAL(15,2)NOT NULL,
O_ORDERDATE DATE NOT NULL,
O_ORDERPRIORITY CHAR(15)NOT NULL,
O_CLERK CHAR(15)NOT NULL,
O_SHIPPRIORITY INTEGER NOT NULL,
O_COMMENT VARCHAR(79)NOT NULL,
PRIMARY KEY(O_ORDERKEY),
FOREIGN KEY(O_CUSTKEY)REFERENCES CUSTOMER(C_CUSTKEY))
PARTITIONED FOLLOWING CUSTOMER;
客户表在插入过程中,可以根据C_CUSTKEY建立一棵字典树(Tries),参考图3,叶子节点是该C_CUSTKEY的时序存储分区节点。订单表在插入过程中,首先查询O_CUSTKEY在字典树中的分区节点值,然后转发至该时序存储引擎节点。
(2)通过时序存储节点上的时序表维护内存跳表结构,将插入的数据按照时间戳的方式排序,进行数据缓存,其中数据缓存后可进一步写请求日志写入持久化介质,当断电造成缓存数据丢失或者磁盘问题造成存储文件丢失,WAL可以帮助恢复数据,而缓存数据大小超出默认设置或者刷新间隔时间超过默认设置,可将缓存数据刷新到磁盘。
(3)将缓存数据追加到分区文件,进一步,包括:
统计缓存数据各列的最大最小值,
将行存转换为列存,压缩当前缓存数据,
将每个时序表对应物理磁盘上的分区文件,所述分区文件包括.data文件和.meta文件,将压缩后缓存数据作为数据块Block追加到.data文件的末尾,将各列统计数据和文件的偏移和长度更新到.meta文件。
(4)采用混合查询方式进行OLAP数据表查询,包括:扫描读取数据表,根据过滤条件读取数据表,以及利用表连接查询数据表,
所述表连接查询数据表包括普通表与时序表连接方式查询和时序表连接方式查询。
其中扫描读取数据表时时序存储引擎文件以MMAP的方式读取,节省了数据从内核态到用户态的拷贝过程,有利于区间或者全表的顺序扫描读取;
根据过滤条件读取数据表,包括:根据单表扫描的过滤条件结合.meta文件中数据块的统计信息,确定需要读取的数据块,从时序存储节点的.data文件中读取数据,跟缓存数据合并;
所述普通表与时序表连接方式查询,包括:判断普通表是否为小表,若普通表是小表,将普通表广播到各个时序存储节点构建哈希表,扫描时序表分区作为探测表进行哈希连接,汇总各时序存储节点的连接结果集,否则利用时序表上的谓词过滤数据,将时序表数据集返回SQL层构建哈希表,扫描普通表作为探测表。
所述时序表连接方式查询,包括:根据时序表连接方式时序表之间在同一时序存储节点存储,在各个时序存储节点上构建局部哈希表,哈希连接后汇总各时序存储节点的连接结果。
在本发明的另一些实施例中,本发明还提供结合KV存储引擎和时序存储引擎查询OLAP的装置,包括分区转发模块、缓存模块、落盘模块和混合查询模块,
分区转发模块根据数据表类型,调用相应存储引擎存储数据:若数据表类型是普通表,则调用KV存储引擎根据Raft协议将普通表存入RocksDB的节点,
若数据表类型是时序表,则调用时序存储引擎,按照跟随分区方式将时序表转发给时序存储节点,其中所述跟随分区方式指时序表连接方式,所述时序表连接方式为一个时序表的主键为另一个时序表的外键,根据所述时序表连接方式时序表之间能够存储在同一时序存储节点,
缓存模块通过时序存储节点上的时序表维护内存跳表结构,将插入的数据按照时间戳的方式排序,进行数据缓存,落盘模块将缓存数据追加到分区文件,
混合查询模块采用混合查询方式进行OLAP数据表查询,包括:扫描读取数据表,根据过滤条件读取数据表,以及利用表连接查询数据表,
所述表连接查询数据表包括普通表与时序表连接方式查询和时序表连接方式查询。
上述装置内的各模块间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
同样地,本发明装置可以将时序数据直接放入时序存储引擎,无需通过Raft协议复制维护两套数据;
将OLTP提交数据直接用于OLAP分析查询,保障了数据分析管理的实时性;
通过时序存储引擎可以利用MMAP机制将数据文件映射到内存,省略了内核态缓存到用户态的拷贝过程,加速查询分析过程;
规定了多种表连接方式,特别是跟随分区的设定,在插入数据时就保证了两张表分区的一致性,哈希连接查询时不再需要Shuffle过程。
需要说明的是,上述各流程和各装置结构中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。

Claims (6)

1.结合KV存储引擎和时序存储引擎查询OLAP的方法,其特征是根据数据表类型,调用相应存储引擎存储数据:若数据表类型是普通表,则调用KV存储引擎根据Raft协议将普通表存入RocksDB的节点,
若数据表类型是时序表,则调用时序存储引擎,按照时序表连接方式将时序表转发给时序存储节点,所述时序表连接方式指一个时序表的主键为另一个时序表的外键,按照时序表连接方式转发时序表至时序存储节点时,能够使时序表之间存储在同一时序存储节点;
通过时序存储节点上的时序表维护内存跳表结构,将插入的数据按照时间戳的方式排序,进行数据缓存,将缓存数据追加到分区文件;
采用混合查询方式进行OLAP数据表查询,包括:扫描读取数据表,根据过滤条件读取数据表,以及利用表连接查询数据表,
所述表连接查询数据表的方式包括:普通表与时序表连接的查询方式和时序表之间连接的查询方式,
所述普通表与时序表连接的查询方式,包括:判断普通表是否为小表,若普通表是小表,将普通表广播到各个时序存储节点构建哈希表,扫描时序表分区作为探测表进行哈希连接,汇总各时序存储节点的连接结果集,否则利用时序表上的谓词过滤数据,将时序表数据集返回SQL层构建哈希表,扫描普通表作为探测表,
所述时序表之间连接的查询方式,包括:根据时序表连接方式时序表之间在同一时序存储节点存储,在各个时序存储节点上构建局部哈希表,哈希连接后汇总各时序存储节点的连接结果。
2.根据权利要求1所述的结合KV存储引擎和时序存储引擎查询OLAP的方法,其特征是所述将缓存数据追加到分区文件,包括:
统计缓存数据各列的最大最小值,
将行存转换为列存,压缩当前缓存数据,
将每个时序表对应物理磁盘上的分区文件,所述分区文件包括.data文件和.meta文件,将压缩后缓存数据作为数据块Block追加到.data文件的末尾,将各列统计数据和文件的偏移和长度更新到.meta文件。
3.根据权利要求2所述的结合KV存储引擎和时序存储引擎查询OLAP的方法,其特征是所述根据过滤条件读取数据表,包括:根据单表扫描的过滤条件结合.meta文件中数据块的统计信息,确定需要读取的数据块,从时序存储节点的.data文件中读取数据,跟缓存数据合并。
4.结合KV存储引擎和时序存储引擎查询OLAP的装置,其特征是包括分区转发模块、缓存模块、落盘模块和混合查询模块,
分区转发模块根据数据表类型,调用相应存储引擎存储数据:若数据表类型是普通表,则调用KV存储引擎根据Raft协议将普通表存入RocksDB的节点,
若数据表类型是时序表,则调用时序存储引擎,按照时序表连接方式将时序表转发给时序存储节点,所述时序表连接方式指一个时序表的主键为另一个时序表的外键,按照时序表连接方式转发时序表至时序存储节点时,能够使时序表之间存储在同一时序存储节点;
缓存模块通过时序存储节点上的时序表维护内存跳表结构,将插入的数据按照时间戳的方式排序,进行数据缓存,落盘模块将缓存数据追加到分区文件,
混合查询模块采用混合查询方式进行OLAP数据表查询,包括:扫描读取数据表,根据过滤条件读取数据表,以及利用表连接查询数据表,
所述表连接查询数据表的方式包括:普通表与时序表连接的查询方式和时序表之间连接的查询方式,
所述混合查询模块利用普通表与时序表连接的查询方式,包括:判断普通表是否为小表,若普通表是小表,将普通表广播到各个时序存储节点构建哈希表,扫描时序表分区作为探测表进行哈希连接,汇总各时序存储节点的连接结果集,否则利用时序表上的谓词过滤数据,将时序表数据集返回SQL层构建哈希表,扫描普通表作为探测表,
所述时序表之间连接的查询方式,包括:根据时序表连接方式时序表之间在同一时序存储节点存储,在各个时序存储节点上构建局部哈希表,哈希连接后汇总各时序存储节点的连接结果。
5.根据权利要求4所述的结合KV存储引擎和时序存储引擎查询OLAP的装置,其特征是所述落盘模块将缓存数据追加到分区文件,包括:
统计缓存数据各列的最大最小值,
将行存转换为列存,压缩当前缓存数据,
将每个时序表对应物理磁盘上的分区文件,所述分区文件包括.data文件和.meta文件,将压缩后缓存数据作为数据块Block追加到.data文件的末尾,将各列统计数据和文件的偏移和长度更新到.meta文件。
6.根据权利要求5所述的结合KV存储引擎和时序存储引擎查询OLAP的装置,其特征是所述混合查询模块根据过滤条件读取数据表,包括:根据单表扫描的过滤条件结合.meta文件中数据块的统计信息,确定需要读取的数据块,从时序存储节点的.data文件中读取数据,跟缓存数据合并。
CN202310373047.1A 2023-04-10 2023-04-10 结合kv存储引擎和时序存储引擎查询olap的方法 Active CN116483886B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310373047.1A CN116483886B (zh) 2023-04-10 2023-04-10 结合kv存储引擎和时序存储引擎查询olap的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310373047.1A CN116483886B (zh) 2023-04-10 2023-04-10 结合kv存储引擎和时序存储引擎查询olap的方法

Publications (2)

Publication Number Publication Date
CN116483886A CN116483886A (zh) 2023-07-25
CN116483886B true CN116483886B (zh) 2024-04-02

Family

ID=87226165

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310373047.1A Active CN116483886B (zh) 2023-04-10 2023-04-10 结合kv存储引擎和时序存储引擎查询olap的方法

Country Status (1)

Country Link
CN (1) CN116483886B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105022791A (zh) * 2015-06-19 2015-11-04 华南理工大学 一种新型的kv分布式数据存储方法
CN110347726A (zh) * 2019-07-17 2019-10-18 帷幄匠心科技(杭州)有限公司 一种高效时序数据集成存储查询系统及方法
CN111045869A (zh) * 2019-12-16 2020-04-21 上海钧正网络科技有限公司 一种数据备份方法、装置及可读存储介质
CN112364278A (zh) * 2020-11-23 2021-02-12 浪潮云信息技术股份公司 一种基于CockroachDB底层键值数据分类优化方法
CN113177089A (zh) * 2021-04-16 2021-07-27 贾选选 一种分布式数据存储引擎调度方法
CN113535726A (zh) * 2021-07-15 2021-10-22 中国工商银行股份有限公司 数据库扩容方法及装置
CN113535729A (zh) * 2021-07-21 2021-10-22 浪潮云信息技术股份公司 一种基于RocksDB实现行列混合存储的方法
CN114416783A (zh) * 2022-02-10 2022-04-29 中盈优创资讯科技有限公司 一种OLAP查询引擎动态cost评估方法及装置
CN114428763A (zh) * 2020-10-29 2022-05-03 华为云计算技术有限公司 一种数据处理方法、设备及介质
CN115203230A (zh) * 2022-06-30 2022-10-18 浪潮软件集团有限公司 在kv型数据库中添加时序查询的方法及系统
CN115408149A (zh) * 2022-08-01 2022-11-29 浪潮软件集团有限公司 一种时序存储引擎内存设计及分配方法及装置
CN115543195A (zh) * 2022-09-22 2022-12-30 浪潮软件集团有限公司 一种适用于时序存储的block落盘方法及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130060612A1 (en) * 2011-09-07 2013-03-07 James Hurd Parliamentary Collaboration and Democratic Database System, Method, and Computer Program Product
CN105183735B (zh) * 2014-06-18 2019-02-19 阿里巴巴集团控股有限公司 数据的查询方法及查询装置
US20190034427A1 (en) * 2017-12-28 2019-01-31 Intel Corporation Data management system employing a hash-based and tree-based key-value data structure
CN111949650A (zh) * 2019-05-15 2020-11-17 华为技术有限公司 一种多语言融合查询方法及多模数据库系统
US20220382760A1 (en) * 2021-06-01 2022-12-01 Alibaba Singapore Holding Private Limited High-performance key-value store

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105022791A (zh) * 2015-06-19 2015-11-04 华南理工大学 一种新型的kv分布式数据存储方法
CN110347726A (zh) * 2019-07-17 2019-10-18 帷幄匠心科技(杭州)有限公司 一种高效时序数据集成存储查询系统及方法
CN111045869A (zh) * 2019-12-16 2020-04-21 上海钧正网络科技有限公司 一种数据备份方法、装置及可读存储介质
CN114428763A (zh) * 2020-10-29 2022-05-03 华为云计算技术有限公司 一种数据处理方法、设备及介质
CN112364278A (zh) * 2020-11-23 2021-02-12 浪潮云信息技术股份公司 一种基于CockroachDB底层键值数据分类优化方法
CN113177089A (zh) * 2021-04-16 2021-07-27 贾选选 一种分布式数据存储引擎调度方法
CN113535726A (zh) * 2021-07-15 2021-10-22 中国工商银行股份有限公司 数据库扩容方法及装置
CN113535729A (zh) * 2021-07-21 2021-10-22 浪潮云信息技术股份公司 一种基于RocksDB实现行列混合存储的方法
CN114416783A (zh) * 2022-02-10 2022-04-29 中盈优创资讯科技有限公司 一种OLAP查询引擎动态cost评估方法及装置
CN115203230A (zh) * 2022-06-30 2022-10-18 浪潮软件集团有限公司 在kv型数据库中添加时序查询的方法及系统
CN115408149A (zh) * 2022-08-01 2022-11-29 浪潮软件集团有限公司 一种时序存储引擎内存设计及分配方法及装置
CN115543195A (zh) * 2022-09-22 2022-12-30 浪潮软件集团有限公司 一种适用于时序存储的block落盘方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
开源软件中的大数据管理技术;江天;乔嘉林;黄向东;王建民;;科技导报(第03期);全文 *

Also Published As

Publication number Publication date
CN116483886A (zh) 2023-07-25

Similar Documents

Publication Publication Date Title
US7552130B2 (en) Optimal data storage and access for clustered data in a relational database
CA2668136C (en) Managing storage of individually accessible data units
US7650326B2 (en) Fast aggregation of compressed data using full table scans
EP2729884B1 (en) Managing storage of data for range-based searching
US8392382B2 (en) On-line transaction processing (OLTP) compression and re-compression of database data
US7243110B2 (en) Searchable archive
US20180011861A1 (en) Managing storage of individually accessible data units
WO2020192064A1 (zh) 一种增量数据一致性实现方法及装置
CN106407360B (zh) 一种数据的处理方法及装置
US9245003B2 (en) Method and system for memory efficient, update optimized, transactional full-text index view maintenance
US20110289112A1 (en) Database system, database management method, database structure, and storage medium
CN110096509A (zh) 大数据环境下实现历史数据拉链表存储建模处理的系统及方法
US7136861B1 (en) Method and system for multiple function database indexing
US8161038B2 (en) Maintain optimal query performance by presenting differences between access plans
CN116257523A (zh) 一种基于非易失存储器的列式存储索引方法及装置
CN116483886B (zh) 结合kv存储引擎和时序存储引擎查询olap的方法
US9129001B2 (en) Character data compression for reducing storage requirements in a database system
CN109800233A (zh) 一种大数据融合搜索方法
CN108984720B (zh) 基于列存储的数据查询方法、装置、服务器及存储介质
US8250108B1 (en) Method for transferring data into database systems
CN117725095B (zh) 面向数据集的数据存储和查询方法、装置、设备及介质
US20060282420A1 (en) Apparatus and method for reducing size of intermediate results by analyzing having clause information during SQL processing
CA2322603C (en) Optimizing updatable scrollable cursors in database systems
CN108363617B (zh) 一种ssr上的离线清单异步导入方法
AU2015258326B2 (en) Managing storage of individually accessible data units

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
GR01 Patent grant
GR01 Patent grant