- 一个 Catalog 包含 Schema 和 Connector。例如,配置 JMX 的 Catalog,通过 JXM Connector 访问 JXM 信息。当执行一条SQL语句时,可以同时运行在多个 Catalog。
- Presto 处理 table 时,是通过表的完全限定(fully-qualified)名来找到 Catalog。例如,一个表的权限定名是 hive.test_data.test,则 test 是表名,test_data 是 Schema,Hive 是 Catalog。
- Catalog 的定义文件是在 Presto 的配置目录中。
- Schema
n. [计][心理] 模式;计划;图解;概要
- Schema 是用于组织 table。当通过 Presto 访问 Hive 或 MySQL 时,一个 Schema 会同时转为 Hive 或 MySQL 的同等概念。
- Table
- Table 跟关系型的表定义一样,但数据和表的映射是交给 Connector。
2.4 数据模型
1)Presto 的三层表结构
- Catalog:对应某一类数据源,例如 Hive 的数据,或 MySQL 的数据。
- Schema:对应特定数据源中的数据库。
- Table:对应特定数据库中的表。
2)Presto 的存储单元
- Page:多行数据的集合,包含多个列的数据,内部仅提供逻辑行,实际以列式存储。
- Block:一列数据,根据不同类型的数据,通常采取不同的编码方式,了解这些编码方式,有助于自己的存储系统对接 Presto。
3)不同类型的Block
- Array 类型的,应用于固定宽度的类型,例如 int,long,double。Block 由两部分组成:
- boolean valueIsNull[] 表示每一行是否有值。
- T values[] 每一行的具体值。
- 可变宽度的,应用于 String 类数据,由三部分信息组成
- Slice:所有行的数据拼接起来的字符串。
- int offsets[]:每一行数据的起始便宜位置。每一行的长度等于下一行的起始便宜减去当前行的起始便宜。
- boolean valueIsNull[] 表示某一行是否有值。如果有某一行无值,那么这一行的便宜量等于上一行的偏移量。
- 固定宽度的String类型的,所有行的数据拼接成一长串Slice,每一行的长度固定。
- 字典:对于某些列,distinct 值较少,适合使用字典保存。主要有两部分组成:
- 字典,可以是任意一种类型的 block(甚至可以嵌套一个字典block),block 中的每一行按照顺序排序编号。
- int ids[]表示每一行数据对应的 value 在字典中的编号。在查找时,首先找到某一行的id,然后到字典中获取真实的值。
3. 特点
3.1 与MapReduce对比
Presto 中 SQL 运行过程与 MapReduce 对比:
所有阶段均采用管道连接,无需等待时间,无需容错系统,内存到内存数据传输,无需磁盘IO,数据块必须适合内存。
3.2 与Hive对比
1)Presto 与 Hive 对比,都能够处理PB级别的海量数据分析,由于 Presto 是基于内存运算,所以减少没必要的硬盘 IO,所以更快。【硬件成本较高】
2)能够连接多个数据源,跨数据源连表查询,如从 Hive 查询部分,然后从 MySQL 中匹配相关信息。
3)部署也比 Hive 简单,因为 Hive 是基于 HDFS 的,需要先部署 HDFS。
3.3 缺点
1)虽然能够处理PB级别的海量数据分析,但不是代表 Presto 把PB级别都放在内存中计算的。而是根据场景,如 count,avg等聚合运算,是边读数据边计算,再清内存,再读数据再计算,这种耗的内存并不高。但是连表查,就可能产生大量的临时数据,因此速度会变慢,反而 Hive 此时会更擅长。
2)为了达到实时查询,可能会想到用它直连 MySQL 来操作查询,这效率并不会提升,瓶颈依然在MySQL,此时还引入网络瓶颈,所以会比原本直接操作数据库要慢。
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
需要这份系统化资料的朋友,可以点击这里获取
体系化!**
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新