Vertica系列: Vertica 数仓简单介绍
作者:互联网
从多个博主那里简单学习一下下,复制粘贴的文字,粗略了解
1、简介
Vertica是一款基于列存储的MPP(massively parallel processing)架构的数据库。它可以支持存放多至PB(Petabyte)级别的结构化数据。
是由关系数据库大师Michael Stonebraker(2014 年图灵奖获得者)所创建,于2011年被惠普收购并成为其核心大数据平台软件
Vertica 采用无共享的MPP 架构,基于工业标准的x86 服务器,拥有高可扩展性。
Vertica 集群中的所有节点100%对等,集群中没有主节点或其他共享资源。通过增加节点,就可以线性地扩展集群的计算能力和数据处理容量。
2、特性
1)列式存储
vertica以列格式存储数据, 以便在查 询时获得最佳性能。相比基于行的存储, 列存储可减少磁盘I/O, 非常适合读取 密集型工作负载
SELECT avg(price)FROM tickstore WHERE symbol ='AAPL' and date ='5/31/13';
对于此示例查询,列存储只读取三列,而行存储读取所有列:
2)高级压缩
压缩会将数据转换为紧凑的格式。 Vertica 使用多种不同的压缩方法, 并 且可以根据要压缩的数据自动选择最 佳方法
3)高可用
Vertica 使用类似RAID 的功能为数据库 提供高可用性。
4)自动数据库设计
Vertica数据库参数几乎无需二次配置
5)海量并行处理
支持海量的事务并行分析处理
6)应用程序集成
集成了DBD分析引擎、Vertica MC控制 管理平台、Vertica WLM资源控制、 scheduler任务计划对接kafka等
3、vertica组件介绍
wos:将未经压缩或建立索引的数据存储在内存中。
ros:将数据存储在磁盘上;这些数据会经过分段,排序,压缩,以便提高优化水平
tuple mover
moveout ‐ 将数据从WOS 复制到Tuple Mover, 然后再复制到ROS; 数据在列式文件中会经过排序、编码和压缩
mergeout ‐ 将若干较小的ROS 容器组合成一个较大的容器, 以 便减少碎片
4、Projection简介
Projection是Vertica 存储数据的方式 – 由一个或多个表中的列集组成
由Vertica 自动维护 – 不进行夜间Projection重建
每个Projection存储单独的数据副本 – 编码和压缩最大程度地降低存储需求
5、vertica对象层次化:
1 、Projection类型
(1)超级Projection (Super projection) – 包含一个逻辑表的所有列的Projection
(2)特定于查询的Projection (Query-specific projection) – 针对特定查询或一类查询优化 – 可以包括列子集
(3)预联接Projection (Pre-Join projection) – 存储一个事实表与一个或多个维度表之间的联接结果
(4)分支Projection (Buddy projection) – 具有相同列和分段的Projection位于不同的节点上,可提供高可用性(HA)
2、如何创建projection
(1)首次将数据加载到表中时自动创建 – 未经优化的超级Projection (Super projection)
(2)使用Database Designer 自动创建 – 经优化的超级Projection (Super projection) – 可能是特定于查询的Projection (Query-specific projection)
(3)在vsql语句中使用CREATE PROJECTION 语法手动创建
3、编码/压缩与排序
(1)每个列始终经过编码、压缩,或者编码并压缩。
(2)Vertica 可以直接处理编码的数据;压缩的数据则必须首先解压缩。
(3)在ORDER BY 语句中,所有Projection至少包含一个列
4、对于小型Projection,会将完整Projection复制到每个节点 – 本质上提供了此Projection的高可用性
5、对于大型Projection,将Projection数据分布在多个节点上
标签:数仓,存储,系列,projection,压缩,Vertica,数据,Projection 来源: https://blog.csdn.net/qq_38603049/article/details/111560654