【presto权威指南】presto介绍

需求:如何从众多数据源中快速处理数据

在这里插入图片描述

现实生产架构多源异构,需要一个强有力的工具(抽象)统一数据查询/分析
这也是presto/trino从诞生之初便贴数据湖查询工具 tag的原因,presto生来为此

生产环境的困境
1.数据源众多,没有一个统一的视角来处理/生产数据
2.很多系统查询/计算性能堪忧

presto的能力
1.不同系统联邦查询,众多插件支持多种数据源
2.并行计算,横向扩展集群

presto优势
Presto 是一个开源的分布式 SQL 查询引擎,它是为了高效查询不同系统和各种规模(从 GB 级到 PB 级)的数据源而从头开始设计和编写的一套系统。
在这里插入图片描述

性能和规模
Presto相比于hive能快速查询TB甚至PB级数据。而用户只要写标准SQL即可使用这一能力(OLAP分析)。

​Presto 内存并行处理、跨集群节点管线执行、多线程执行模型(以充分利用所有 CPU 核心)、高效的扁平内存数据结构(以最小化 Java 的垃圾回收)和 Java 字节码生成等技术来提升性能。

Presto本身结构决定他能快速,轻易实现水平扩展。

sql-on-anything
prsto使用原地查询,可以直接查询生产系统中的存储系统,且支持大量数据源。
用户只要使用一套sql即可查询海量存储系统,甚至可以跨存储系统查询。

​对象存储系统包括 Amazon Web Services(AWS)提供的 Simple Storage Service(S3)、Microsoft Azure Blob Storage、Google Cloud Storage 和 S3 兼容的存储系统(如 MinIO 和 Ceph)。Presto 可以查询传统的 RDBMS,如 Microsoft SQL Server、PostgreSQL、MySQL、Oracle、Teradata 和 Amazon Redshift,还可以查询 NoSQL 数据库系统,如 Apache Cassandra、Apache Kafka、MongoDB 和 Elasticsearch。Presto 几乎可以查询任何东西,是一个真正的 SQL-on-Anything 系统。

存算分离
presto不存储数据,只进行计算。使用presto构成的系统可以独立扩展存储的数据存储层和presto计算层。
presto集群支持动态扩缩容。

Presto使用场景

  • 区别于生产系统的快速查询
  • 单一sql语法的访问节点
  • 联邦查询
  • 成为任何上游工具的数据入口

在这里插入图片描述

基础概念
Presto 使你可以使用 SQL 访问外部数据源,如关系数据库、键值存储和对象存储等。理解以下 Presto 概念非常重要。

​connector
使 Presto 适配一个数据源。每一个 catalog 对应于一个特定的连接器。

catalog
定义连接到一个数据源的细节。它包含了 schema 并配置了一个连接器来使用。

schema
组织表的一种方式。catalog 和 schema 一起定义了一个集合的表,这些表可以查询。类似于"库"


表是无序的行的集合。这些行内容被组织成带有数据类型的有名称的列。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/478350.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue中$root的使用方法

查看本专栏目录 关于作者 还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas&#x…

自动化上位机开发C#100例:如何用面向对象的方式封装雷赛运动控制卡EtherCAT总线卡(C#代码)

自动化上位机开发C#100例:雷赛运动控制卡EtherCAT总线卡C#封装类 文章目录 LTDMC.dll下载LTDMC.cs LTDMC.dll C#调用封装下载ICard.cs 运动控制卡接口Card.cs 运动控制卡抽象类CardLTDMC.cs 雷赛运动控制卡EtherCAT总线卡实现类CardList.cs 总线卡列表封装 LTDMC.dll下载 最新…

政安晨:【完全零基础】认知人工智能(五)【超级简单】的【机器学习神经网络】 —— 数据训练

回顾 作为这个系列文章的最后一篇,咱们先回顾一下建立神经网络的整体步骤,以实现对机器学习神经网络的整体认知: 在人工智能领域中,机器学习神经网络的数据训练部分是指通过将大量的输入数据输入到神经网络中,利用反…

Linux RabbitMQ 安装及卸载

一、安装 1、前景 RabbitMQ是用Erlang编写的,所以需要先安装Erlang的编译环境 注意 Erlang和RabbitMQ的版本是有一些版本匹配关系的,如果不匹配会导致RabbitMQ无法启动 2、安装Erlang # 下载 wget https://packages.erlang-solutions.com/erlang/r…

使用go-llama.cpp 运行 yi-01-6b大模型,使用本地CPU运行,速度挺快的

1,视频地址 2,关于llama.cpp 项目 https://github.com/ggerganov/llama.cpp LaMA.cpp 项目是开发者 Georgi Gerganov 基于 Meta 释出的 LLaMA 模型(简易 Python 代码示例)手撸的纯 C/C 版本,用于模型推理。所谓推理…

pwn学习笔记(4)ret2libc

pwn学习笔记(4) 静态链接: ​ 静态链接是由链接器在链接时将库的内容加入到可执行程序中的做法。链接器是一个独立程序,将一个或多个库或目标文件(先前由编译器或汇编器生成)链接到一块生成可执行程序。这…

AtCoder Beginner Contest 341 D - Only one of two (Java)

AtCoder Beginner Contest 341 D - Only one of two (Java) 比赛链接:AtCoder Beginner Contest 341 D题传送门AtCoder:D - Only one of two D题传送门洛谷:[ABC341D] Only one of two 题目:[ABC341D】 Only one of two 题目…

牛客网 HJ100 等差数列

题目&#xff1a; 答案: #include <stdio.h> #include<assert.h> int main() {int n0;while (scanf("%d", &n) ! EOF) //多组输入{ assert(n>1&&n<1000); //判断是否符合题目要求范围int sum2; //初始化首项for(int i1,j2;i…

Java中的线程(创建多线程的三种方法)

Java中的线程——创建 创建多线程方式一&#xff1a;继承Thread类方式二&#xff1a;实现Runnable接口方式三&#xff1a;实现Callable接口 线程的常用API 创建多线程 方式一&#xff1a;继承Thread类 定义一个子类MyThread继承线程类java.lang.Thread&#xff0c;重写run方法…

图形渲染基础学习

原文链接&#xff1a;游戏开发入门&#xff08;三&#xff09;图形渲染_如果一个面只有三个像素进行渲染可以理解为是定点渲染吗?-CSDN博客 游戏开发入门&#xff08;三&#xff09;图形渲染笔记&#xff1a; 渲染一般分为离线渲染与实时渲染&#xff0c;游戏中我们用的都是…

Docker Desktop 链接windos 安装的redis和mysql

1.1.先在容器安装项目 2.链接redis和mysql配置 redis和mysql是在windos安装的&#xff0c;使用的是小p管理器安装的 项目链接 DB_DRIVERmysql DB_HOSThost.docker.internal DB_PORT3306 DB_DATABASEyunxc_test DB_USERNAMEyunxc_test DB_PASSWORDtest123456... DB_CHARSETutf…

《汇编语言》- 读书笔记 - 第10章-CALL 和 RET 指令

《汇编语言》- 读书笔记 - 第10章-CALL 和 RET 指令 10.1 ret 和 retf检测点 10.1 10.2 call 指令10.3 依据位移进行转移的 call 指令检测点 10.2 10.4 转移的目的地址在指令中的 call 指令检测点 10.3 10.5 转移地址在寄存器中的 call 指令10.6 转移地址在内存中的 call 指令检…