人大金仓kingbasees列式数据库技术概述

人大金仓kingbasees列式数据库技术概述

ID:18260600

大小:193.50 KB

页数:7页

时间:2018-09-16

人大金仓kingbasees列式数据库技术概述_第1页
人大金仓kingbasees列式数据库技术概述_第2页
人大金仓kingbasees列式数据库技术概述_第3页
人大金仓kingbasees列式数据库技术概述_第4页
人大金仓kingbasees列式数据库技术概述_第5页
资源描述:

《人大金仓kingbasees列式数据库技术概述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、金仓列式数据库技术概述一、概述列式数据库是基于列存储的、主要面向OLAP型应用的关系型数据库。列数据库的特点是可以更好的应对海量关系数据中列的查询,占用更少的存储空间和更少的I/O,这些特点使其成为构建数据仓库的理想架构。KingbaseES也选择了这种适合数据仓库应用的技术,用于海量数据的分析。KingbaseES实现了列存储引擎和列执行引擎,和现有的行存储引擎和行执行引擎组成双执行引擎、双存储引擎。执行引擎接收优化器生成的执行计划,按照计划通过存取接口操作数据、进行计算并返回结果。存储引擎提供可靠、可

2、扩展的存储功能,定义了数据在内存和磁盘上的组织方式;同时为执行引擎提供高效的存取接口来操作数据。在KingbaseES中:l列执行引擎可以使用列存储引擎;l行执行引擎可以使用行存储引擎、列存储引擎或两种存储引擎混合使用。多引擎方式带来如下好处:l为优化器提供了更灵活的选择方式,可以在更多场景下给出更优的选择。例如当在列存储表上做结果集很大并包含大多数列的连接时,列执行引擎就没有优势,而且会额外存储中间结果的位置信息。这时使用行执行引擎就更合适;l针对特定的业务需求,可以处理OLAP、OLTP的混合场景。二

3、、技术特点下面介绍一下KingbaseES的列存储、执行引擎使用到的技术。1.列式存储如图中的Customer表,行存储数据库中将数据按行存储在磁盘上:101259797SMITHJUNO892375862CHINPOMONA318370701HANDUCHICAGO列式存储则将同一列的数据存储在一起:101259797892375862318370701SMITHCHINHANDUJUNOPOMONACHICAGO在磁盘上的组织方式如上图,可以看出,这种按列组织的存储方式可以带来最显著的好处,就是当操作

4、只涉及较少列时相比行存储需要更少的I/O,例如:l对少量列的查询、聚集操作,这些操作是OLAP应用中的常见操作;l在少量列上的更新操作。KingbaseES实现了列式存储,并将每一列分成若干段分别存储,这种分段式的存储方式是为了达到如下效果:l数据压缩后如果查询只涉及一部分数据或是有数据的修改,可以不用解压整个列数据;l便于建立稀疏索引,更好地过滤查询中不涉及的数据。1.数据压缩数据压缩并不是列式数据库的专项技术,行存储数据也可以使用数据压缩来减少数据量。但是列存储的数据同一列的数据存储在一起,数据间的相

5、似度更高,具有的熵值更小。按照数据压缩理论,无损编码的效果在熵值小的数据上效果更好。KingbaseES提供自动的用户透明的多种压缩算法,可以根据数据的特点自动选择一种或多种压缩算法来压缩数据,压缩比可以达到10:1~40:1。数据压缩可以带来更少的存储空间占用,对于海量数据存储来说很重要。更重要的是,压缩可以降低I/O的开销,虽然压缩/解压缩会带来CPU的开销,但是在目前的CPU和存储设备发展来看,使用CPU开销换取I/O开销在很多情况下是值得的。2.稀疏索引在海量数据中,使用传统行存储使用的稠密索引会

6、带来问题:为了适应各种即席查询,管理员需要在很多列或列的组合上建立索引,而索引本身占用的空间巨大,管理复杂。KingbaseES将列存储数据分段存储,每65536个列数据存储在一个数据段中,每个数据段对应一个索引项。索引中的信息包括(以数值型数据为例):l该数据段中的数据最小值、最大值;l从最小值到最大值划分成若干范围,用位图标记是否有数据在这个范围中;l该数据段中数据的统计信息,如数据的和。这样索引所占的空间就会很少。如下图,TPC-H@SF=10场景下part表原始数据、压缩后的数据和在全部列上使用稀

7、疏索引占用的空间比例如下图所示:可以看出,稀疏索引的存储空间占用是非常少的,所以可以在全部的数据上建立稀疏索引,也减少了索引的管理的复杂性。稀疏索引的效率同样很高,对于范围查询,可以根据索引中的最小值、最大值和位图来判断数据段中是否包含满足查询条件的值。索引中的统计信息可以用于聚集函数的计算。举例如下:关系part(p_partkeyint,p_sizeint),包含三个数据段,每个数据段的索引内容如下:查询SELECTavg(p_size)FROMpartWHEREp_partkey>65536;通过索

8、引将过滤掉数据段1,并且判断数据段2和数据段3都满足过滤条件,随后的avg运算可以直接使用索引中的统计信息(600000+800000)/(65536×2)完成。1.延时物化这里的物化是指将列数据从磁盘读入内存组成一条元组。物化的策略大致有两种,提前物化和延时物化。提前物化是指尽早组成逻辑元组,例如在执行计划的扫描阶段就将查询中使用的全部列值取出组成元组,后续的执行将和行存储执行过程相同,这种方式更适合于传统行存储类型的数据库

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。