美文网首页
Presto数据模型

Presto数据模型

作者: liuzx32 | 来源:发表于2020-06-18 18:06 被阅读0次

Presto采取三层表结构:

  1. catalog 对应某一类数据源,例如hive的数据,或mysql的数据
  2. schema 对应mysql中的数据库
  3. table 对应mysql中的表

image.png


Presto的存储单元包括:

  1. Page: 多行数据的集合,包含多个列的数据,内部仅提供逻辑行,实际以列式存储。
  2. Block:一列数据,根据不同类型的数据,通常采取不同的编码方式,了解这些编码方式,有助于自己的存储系统对接presto。

Presto中不同类型的block:

  1. Array类型block,应用于固定宽度的类型,例如int,long,double。block由两部分组成
    boolean valueIsNull[]表示每一行是否有值。
    T values[] 每一行的具体值。
  2. 可变宽度的block,应用于string类数据,由三部分信息组成

Slice : 所有行的数据拼接起来的字符串。
int offsets[] :每一行数据的起始便宜位置。每一行的长度等于下一行的起始便宜减去当前行的起始便宜。
boolean valueIsNull[] 表示某一行是否有值。如果有某一行无值,那么这一行的便宜量等于上一行的偏移量。

  1. 固定宽度的string类型的block,所有行的数据拼接成一长串Slice,每一行的长度固定。

  2. 字典block:对于某些列,distinct值较少,适合使用字典保存。主要有两部分组成:

字典,可以是任意一种类型的block(甚至可以嵌套一个字典block),block中的每一行按照顺序排序编号。
int ids[] 表示每一行数据对应的value在字典中的编号。在查找时,首先找到某一行的id,然后到字典中获取真实的值。

相关文章

  • Presto中的插件

    插件 了解了presto的数据模型,就可以给presto编写插件,来对接自己的存储系统。presto提供了一套co...

  • Presto数据模型

    Presto采取三层表结构: catalog 对应某一类数据源,例如hive的数据,或mysql的数据 schem...

  • Presto 配置

    Presto架构图 下载presto-server-317.tar.gz解压到/opt/app/presto-se...

  • presto jdbc java

    com.facebook.presto presto...

  • 目录

    基于presto0.155,以一条主线 : cli查询presto+hive返回 一、cli与presto通信机制...

  • Presto源码分析之Slice

    Slice是Presto里面用来对内存高效地、自由地进行操作的接口。它在Presto里面很关键, Presto里面...

  • presto 的安装与使用

    相关说明: Presto官网: Presto | Distributed SQL Query Engine for...

  • Presto参考

    0.zepplin中使用presto 1.presto正则表达式 2.解析json 3.presto时间 4.pr...

  • presto 连接hive

    修改hive-site.xml增加 启动 presto配置 启动presto服务 连接测试

  • OLAP引擎:基于Presto组件进行跨数据源分析

    一、Presto概述 1、Presto简介 Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数...

网友评论

      本文标题:Presto数据模型

      本文链接:https://www.haomeiwen.com/subject/lwzuxktx.html