前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >打造次世代分析型数据库(二):这,不只是列存表

打造次世代分析型数据库(二):这,不只是列存表

作者头像
腾讯云大数据
发布于 2022-08-26 08:13:53
发布于 2022-08-26 08:13:53
7550
举报
文章被收录于专栏:腾讯云大数据腾讯云大数据

作者介绍

作者介绍:marklv(吕夫洋),腾讯云数据库高级工程师,专注于数据库存储、事务、高可用方向,具有多年的数据库内核研发经验。曾供职于华为2012高斯实验室;加入腾讯后负责CDW PG数据库全新存储引擎的设计和研发工作。

Effective Storage Engine设计背景

传统数据库按行进行表的存储和访问。由于表中每行的数据连续地存储在一起,对于交易性业务(OLTP)这样频繁以行作为单位存储表中数据的负载,行存储性能较好。

但是对于分析性业务(OLAP)这种经常对表中某些列进行查询计算的负载,行存储会将不相关的列数据读入内存中,导致性能欠佳。列存储模型通过将表中的列连续地存储在一起,能够很好地解决这个问题,减少不必要数据的读取与解析带来的磁盘I/O代价、数据压缩解压代价以及CPU执行代价,提高磁盘存储和使用效率,从而提升查询性能。

在混合的业务负载(Hybrid transaction/analytical processing,HTAP)场景下,针对OLTP优势的行存与针对OLAP优势的列存都无法很好地同时应对两种类型的业务,大多需要牺牲其中一种场景下的表现,或是最终造成两种场景下的能力都无法达到业务的预期。

应对两种完全不同的业务负载的实现往往无法避免以下问题:

  • 需要额外的系统资源(存储资源、计算资源);
  • 难以兼顾数据的实时性和强一致性;
  • 需要业务/应用层面针对特殊配置进行识别和适配。

为了满足CDW PG在OLAP传统数仓场景超大集群下的目标业务负载,并且具备能够良好处理数据混合负载的能力,Effective Storage Engine(下文简称“Estore”存储引擎)应运而生。

Effective Storage Engine基础架构设计

Estore的基础“三角形”组

Estore表基础架构由元信息表(“registry”表)、列文件(”silo”组成的文件)以及临时区表(”stash”表)组成。

在创建表create table时于reloptions “orientation”处填写”column”即可创建,创建后以上基础组成部分会自动创建。

  1. Silo是Estore表中基本的数据存储单元,承载存储数据的基本职责。 每个Silo包含一组数据中其中一列的数据,方便系统对其进行批量操作、压缩、存储。Silo自身存储与行存储的数据页面不同,不是固定的存储空间,而是存储固定的行数,实际存储空间大小可变。 Silo存储的是一组数据中的一列内容,同列数据能够提供更接近的数据特征以及更好的数据筛选,进而提供更好的压缩率。同时由于Silo的概念是固定行数而不是固定空间的概念,因此在尽量满足Silo填充至上限的情况下,Silo可以为压缩提供更大的上下文空间,以便提高数据的压缩率。 同时,Silo可以根据自身的数据类型、数据特征以及表级别/列级别,指定使用最合适的压缩算法或压缩算法的组合。
  2. registry表实际上是一张行存表,承担一张Estore表的存储引擎的主体组织结构与核心角色,存储了一张表中承载数据的各个Silo的相关信息。
  3. stash则是为了应对碎片数据、流数据以及混合负载下OLTP负载而准备的一张行存表,也可以认为是一个使用行存储承载数据的临时区域。

Effective Storage Engine 混合负载

混合负载设计背景

在分析性数据库的使用场景中,除去分析型业务常见的大数据量批量导入操作(bulkload)之外,数据库也常常会承接来自用户应用逻辑、数据管道或者ETL工具端的碎片化增量数据,亦或是流数据的持续输入。不同于批量数据操作中单个事务内GB-TB数量级的数据规模,碎片化的增量数据往往由多个小事务组成,每个事务中仅含有KB以下的数据量。

同时,在部分客户的应用场景中,用户逻辑会针对特定数据/近期数据/部分热数据进行类交易型的调用与处理,包括频繁的增删改;在完成相关业务后,又希望针对这部分数据或针对全部历史数据进行进一步的BI分析

业界常见的支持混合负载的数据库,大部分都是采用两套或更多套存储引擎或组件来实现,中间通过COW或Raft协议副本的方式来进行数据的同步。有没有办法可以用一份数据搞定两种业务呢?

以Stash表为核心的混合负载基础理念

Stash表的设计初衷即是应对以上场景。Stash表是Estore表创建后同步创建的一张行存表,与原表有着相同的表定义,但使用行存表作为存储。Stash表的作用是充当Estore表的“临时区“角色,针对单次行数在一定阈值下的操作,其相关数据会先被放入Stash表中,以行存储的形式存储起来,避免碎片化数据对Estore表的registry/silo存储模式的直接冲击。

同时,由于放在Stash表中的都是近期单条/小批量插入或更新的数据,Stash表也就在实际上起到了Estore表类似“热数据分片”的概念。通过Stash表作为行存储的机制支持,Estore存储引擎自身就可以为混合负载中的OLTP部分提供良好的支持,而不需要额外在其他存储方式上创建副本。后续按照用户配置或通过用户主动执行,用户可以按照自己的应用逻辑将Stash表数据合并入registry/silo的存储模式中,获得更好的分析性业务负载性能。

用户操作中对数据的归属性质不进行感知,即发起query或DML时无需对stash进行特殊处理,底层逻辑会自动扫描registry/silo以及stash中的数据。

Stash表的“自动沉降“ —— Auto Stashmerge

为了保证表中数据能够借助高效存储组织结构以及各类优化对应用提供优秀的分析性业务负载性能,Estore存储引擎在数据库实例中实现并封装了Estore表的自动合并机制,定期合并stash数据至silo中。用户可以根据不同应用场景对“沉降”进行配置,业务无需感知, 后台进程的动作也不会影响用户对表正常的增删改查。

Stash表的“手动沉降” —— Vacuum Stashmerge

适用于部分用户或业务在交易性与分析性间存在较为明确的分水岭的场景,执行时会将指定表或库中所有Estore表的Stash全量数据合并至其对应的registry/silo存储结构中,可以近似地理解为系统中“flush buffer”一样的操作。

总结

综上,为大家介绍了CDW PG的新型列存储引擎Effective Storage Engine的整体设计,以及Estore引擎如何同时为传统的OLAP数仓场景以及HTAP混合负载的业务提供稳定且优质的存储支持与保障。

推荐阅读

关注腾讯云大数据公众号

邀您探索数据的无限可能

点击“阅读原文”,了解相关产品最新动态

↓↓↓

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云大数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
打造次世代分析型数据库(七):向量化计算层缓存
作者介绍 azurezhao(赵阳),腾讯云数据库高级工程师,具备多年存储经验,包括文件存储、kv存储、数据库存储等。目前在腾讯专注于CDW PG数据库内核相关的研发。 1. 整体架构和设计目标 向量化计算层缓存(VectorTableSlot Cache, 下面简称VTS-Cache)。和传统的OLTP数据按行聚簇方式不同,在OLAP场景下,查询大多数是对某些列进行的,数据存储按照列式存储,查询运算时的数据也是按照列式存储,如下图所示。当前每次执行都需要去存储层读取数据,会有开销,所以考虑引入一层缓存层
腾讯云大数据
2022/09/27
5670
打造次世代分析型数据库(七):向量化计算层缓存
打造次世代分析型数据库(一):CDW PG全面升级
作者介绍 ericxwu(伍鑫),腾讯云数据库专家工程师,在数据库内核、数据复制、大数据计算等领域有丰富经验,曾发表多篇相关论文、专利。加入腾讯前曾在IBM DB2团队工作多年,后加入Hashdata云数仓公司。加入腾讯后,负责TDSQL PG系数据库研发工作。 CDW PG总体介绍 CDW PG作为腾讯首款自研MPP分析型数据库,在政务、公安、电信、金融等多个企业级项目中崭露头角。作为国内分析型数据库里的破局者,CDW PG在发布后继续面向行业前沿构架进行大幅优化。经过团队过去一年的深入探索和改进,CD
腾讯云大数据
2022/08/26
7840
打造次世代分析型数据库(一):CDW PG全面升级
云数据库架构思维升级,看这篇就够了!
近期,ArchSummit 全球架构师峰会(以下简称:AS峰会)北京站圆满落幕。AS峰会是极客邦科技旗下 InfoQ 中国团队推出的重点面向高端技术管理者、架构师的技术会议。AS峰会北京站以“升级架构思维,支撑业务发展”为目标,邀请各厂商展示先进技术在行业中的典型实践,以及技术在企业转型、发展中的推动作用。在此次AS峰会上,腾讯云数据库专家团亮相“云数据库的架构设计与技术演进”专场,由腾讯云数据库专家工程师伍鑫担任专场出品人。 数据库作为基础软件的三驾马车之一,是IT行业的必争之地。云时代下,云原生技术和数
腾讯云数据库 TencentDB
2022/09/01
8820
云数据库架构思维升级,看这篇就够了!
加快企业级能力国产化,腾讯云数据库做了这些事情
今年6月,腾讯云数据库TDSQL PG版 Oracle兼容能力以及TDSQL-A两大引擎全新升级,Oracle兼容性和海量数据查询分析能力再上新台阶。为帮助开发者更清楚的了解到腾讯云数据库究竟做了什么,特推出"DBTalk数据库企业级能力国产化”专场,就数据库引擎在Oracle兼容核心能力构建、海量数据分析引擎构架设计、下一代列式存储原理、复杂查询执行优化等方面进行深入解读。 本期带来各讲师分享精华及直播回顾视频。想要讲师ppt的小伙伴,可在腾讯云数据库公众号后台发送"610讲师课件",即可获得哦! 《深入
腾讯云数据库 TencentDB
2022/06/24
1.8K0
加快企业级能力国产化,腾讯云数据库做了这些事情
腾讯云数据库伍鑫:MPP数据库HTAP技术探索
本文根据伍鑫在【第十三届中国数据库技术大会(DTCC2022)】线上演讲内容整理而成。
用户6543014
2023/03/02
1.6K0
腾讯云数据库伍鑫:MPP数据库HTAP技术探索
C-Store:一个列存数据库
今天介绍《C-Store: A Column-oriented DBMS》,这篇文章是VLDB 2005的,作者 Mike Stonebraker,2015年图灵奖获得者。这篇文章很硬,是一个内容很丰富的系统论文,今天只介绍其中几个部分。
Apache IoTDB
2020/09/27
1.1K0
C-Store:一个列存数据库
打造次世代分析型数据库(三):列存表最佳实践
作者介绍 作者介绍:jennyerchen(陈再妮),PostgreSQL ACE成员,TDSQL PG开源版负责人,有多年分布式数据库内核研发经验,曾供职于百度数据库团队,加入腾讯后参与了TDSQL PG版异地多活、读写分离、Oracle兼容等多个核心模块的研发,当前主要负责CDW PG的存算分离相关特性的研发工作。 背景简介 CDW PG是腾讯自主研发的新一代分布式数据库,其具备业界领先的数据分析能力,在提供大型数据仓库处理能力的同时还能完整支持事务, 采用无共享的集群架构,适用于PB级海量 OLAP
腾讯云大数据
2022/08/26
7360
打造次世代分析型数据库(三):列存表最佳实践
复合型数据库设计思路 与 需求满足 --MatrixDB时序性数据库
接着昨天的说,当下数据库的设计思路已经从“我都行” 到 “分工合并” 型的设计思路。
AustinDatabases
2021/07/15
7920
复合型数据库设计思路 与  需求满足  --MatrixDB时序性数据库
Greenplum性能优化之路 --(二)存储格式
Greenplum(以下简称GP)有2种存储格式,Heap表和AO表(AORO表,AOCO表)。
lambgong
2019/02/20
17.8K3
Greenplum性能优化之路 --(二)存储格式
《数据密集型型系统设计》LSM-Tree VS BTree
本文为《数据密集型应用系统设计》的读书笔记第一部分第三章的笔记整理,也是个人认为的这本书第一部分最重要的内容。本文将会针对目前数据库系统两个主要阵营进行展开,分别是采用日志型存储结构高速读写的LSM-Tree和面向OLTP的事务数据库BTree两种数据结构对比。
阿东
2022/04/08
5090
架构选型之痛,如何构造 HTAP 数据库来收敛技术栈?
近日,国际顶级专业分析机构 451 Research 发表了一篇关于 TiDB 的报告《PingCAP eyes US market with database targeting operational and analytical workloads》,其中就提到 TiDB 是一款同时面对在线处理业务和数据分析业务的混合数据库,也就是现在流行的新理念 HTAP。
Spark学习技巧
2019/10/10
1.2K0
架构选型之痛,如何构造 HTAP 数据库来收敛技术栈?
OceanBase 列存的现在与未来
OceanBase 4.3 正式推出列存功能,打造满足实时分析业务的列存能力。本文将作为《列存能力深入剖析解读》的延伸,进一步探讨列存在 OceanBase 数据库架构中应用和演进,以及未来的发展方向。
公众号:码到三十五
2024/07/15
2020
OceanBase 列存的现在与未来
听说Mysql你很豪横?-------------深入解析mysql数据库中的事务!
2、 确保表中的每列都和主键相关(不然东一句西一句就乱了) 每张表中只有一个主键 建立在第一范式之上的,一个表中只能保存一种数据 不可以把多种数据保存在同一张数据库表中~
不吃小白菜
2020/09/03
7570
听说Mysql你很豪横?-------------深入解析mysql数据库中的事务!
打造次世代分析型数据库(四):几十张表关联?小Case!
作者介绍 qiannzhang(张倩),腾讯云数据库专家工程师,具备多年数据库内核研发经验,在大数据分析领域深耕多年。加入腾讯后,主要负责CDW PG数据库SQL引擎相关特性的研发工作。 背景介绍 CDW PG是腾讯自主研发的新一代分布式数据库,采用无共享的MPP集群架构,具备业界领先的数据分析查询处理能力,适用于PB级海量数据的OLAP应用场景。 在OLAP场景中,多表连接查询是最主要的查询类型之一。CDW PG支持多种连接类型,包括left join、right join、inner join和fu
腾讯云大数据
2022/09/02
7040
打造次世代分析型数据库(四):几十张表关联?小Case!
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(4)
传统行存储数据压缩率低,必须按行读取,即使读取一列也必须读取整行。在分析性的作业以及业务负载的情况下,数据库往往会遇到针对大量表的复杂查询,而这种复杂查询中往往仅涉及一个较宽(表列数较多)的表中个别列。此类场景下,行存储以行作为操作单位,会引入与业务目标数据无关的数据列的读取与缓存,造成了大量IO的浪费,性能较差。因此openGauss提供了列存储引擎的相关功能。创建表的时候,可以指定行存储还是列存储。
数据和云
2021/12/22
7940
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(4)
CDB for MySQL 8.0列存引擎CSTORE介绍
「 第一部分 概述 」 数据库中存在两种典型的业务访问场景,一种以在线事务处理为主,称为OLTP(On-Line Transaction Processing);另一种以在线分析处理为主,称为OLAP(On-Line Analytical Processing)。下面具体介绍他们的区别。 1.1 OLTP OLTP业务的主要特点是有较多的增删改查操作,并且在大部分业务中,写相对于读的比例还很高。并发的事务数较多,而且事务的响应时间要求比较高。此外,每个增删改语句通常只操作少数几行数据;每个查询语句通常也只
腾讯数据库技术
2020/08/25
2.4K0
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(1)
OLTP(联机事务处理系统)以高并发读写为主,数据实时性要求非常高,数据以行的形式组织,最适合面向外存设计的行存储引擎。随着内存逐渐变大,服务器上万亿字节(TB)大小的内存已经很常见,内存引擎面向大内存而设计,提高系统的吞吐量和降低业务时延。OLAP联机数据分析处理系统主要面向大数据量分析场景,对数据存储效率、复杂计算效率的要求非常高。列存储引擎可以提供很高的压缩比,同时面向列的计算,CPU指令高速缓存和数据高速缓存的命中率比较高,计算性能比较好,按需读取列数据,大大减少不必要的磁盘读取,非常适合数据分析场景。openGauss整个系统设计是可插拔、自组装的,并支持多个存储引擎来满足不同场景的业务诉求,目前支持行存储引擎、列存储引擎和内存引擎。
数据和云
2021/12/08
6290
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(1)
报告解读下载 | 墨天轮六月数据库行业报告,智能风起,列存更生
编者: 本系列分析行业动态,关注“数据和云( OraNews )”回复:下载。可以找到文档链接。 近日,墨天轮社区发布了《2022年6月中国数据库行业分析报告-智能风起,列存更生》,该报告对中国数据库市场的发展进行了分析。以下从报告中摘录部分描述作为分享。 关键信息: 2022年6月的"中国数据库流行度排行榜"共有231个数据库参与排名。本月排行榜,TiDB 重登第一, 达梦挺进前三,人大金仓跻身六强,AnalyticDB继续稳居第十。 本月排行榜引入了微信指数,其所反映的热度变化来源于对微信搜索、公众号
数据和云
2022/06/27
8900
报告解读下载 | 墨天轮六月数据库行业报告,智能风起,列存更生
字节跳动基础架构团队参会报告:一文看懂VLDB'22技术趋势及精选论文
作者 | 字节跳动基础架构团队 1 前言 VLDB 会议,全称 International Conference on Very Large Data Bases,是全球数据库系统领域最负盛名的三大顶会之一。从 1975 年开始举办,每年一次,全球各地顶尖高校的大量研究者、各大高科技公司都会将自己的学术研究进展或工业界成果以论文形式投递到 VLDB 组委会,而组委会会审阅并接收其中最前沿、最具影响力的一批,并召开线下会议,供论文作者们分享、交流。 今年的 VLDB 在 9 月 5 号到 9 号,在澳大利
深度学习与Python
2023/03/29
1.2K0
字节跳动基础架构团队参会报告:一文看懂VLDB'22技术趋势及精选论文
读 TiDB 论文有感 | 数据强一致性且资源隔离的 HTAP 数据库
陈现麟,伴鱼技术中台负责人,从 0 到 1 搭建伴鱼技术中台,对分布式架构、服务治理、稳定性建设、高并发高 QPS 系统和中台化的组织架构搭建有一定的经验,崇尚简单优雅的设计,关注云原生和分布式数据库。
PingCAP
2020/09/10
1.1K0
读 TiDB 论文有感 | 数据强一致性且资源隔离的 HTAP 数据库
推荐阅读
相关推荐
打造次世代分析型数据库(七):向量化计算层缓存
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档