trino(prestoSQL 329)文档 - 1.概览

2023-10-21 04:38

本文主要是介绍trino(prestoSQL 329)文档 - 1.概览,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概览

  • 1.1 使用案例
    • Prosto 不能做什么
    • Presto可以做什么
  • 1.2 Presto概念
    • 介绍
    • Server类型
      • Coordinator
      • worker
    • 数据源
      • Connector
      • Catalog
      • Schema
      • Table
    • 查询模型
      • Statement
      • Query
      • Stage
      • Task
      • split
      • Driver
    • Operator
      • Exchange

Presto 是一个分布SQL查询引擎,设计用来查询大的分布式数据集,分布在一个或更多不同总类的数据源.

1.1 使用案例

这节全面介绍Presto,这样潜在的管理员和用户知道可以在Presto得到什么期待.

Prosto 不能做什么

至从Presto被社区很多成员称为数据库,这是有意义的开始定义Presto不是什么.

不要误解事实上Presto 解决SQL用用它提供标准数据库的特性. Presto并不是一般用途的关系型数据库.它不能代替数据库位置,像MySQL, PostgreSQL 或Oracle. Presto不是被设计处理OTPL. 对于很多其它为数仓或分析设计的数据库总是这样.

Presto可以做什么

Presto是一个工具,设计用来使用分布式查询大量数据.如果你工具TB或PB的数据,你可能使用工具来与Hadoop和HDSF交互. Presto被设计作为另外选择工具,查询HDFS使用MapReduce管理任务,像Hive或Pig, 但是Presto 没有限制访问HDFS. Presto可以有一个扩展的操作在不同类型的数据源,包含传统关系性数据库和其它数据源像Cassandra.

Presto被设计处理数仓数据和分析:数据分析,聚合大量数据生成报告.这些工作量通常分类到OLAP中.

1.2 Presto概念

介绍

为弄懂Persto,你需要首先了解Persto文档中到处使用术语和概念.

然而这是非常容易了解语句和查询,作为终端用户你应该熟悉这些概念,像stages 和拆分利用Presto来高效执行查询.作为Presto管理者或Presto做贡献者,你应该明白Presto概念怎样stage map到task,和怎样tasks包含一组driver来处理数据.

这部分提供固定定义为遍及Presto核心概念引用,并且这部分是从总体到细节排序.

Server类型

有两种Presto Server: coordinators 和workers.下边区域来解决他们的不同.

Coordinator

Presto coordinator 负责转换语句,设计查询,管理persto工具节点.这是presto安装的大脑,并且 也是一个客户端连接提交执行语句的节点.每个Presto安装一定有一个coordinator 和一个或多个woker.对于开发或测试目的,单独一个Presto实例可以配置来执行两个角色.

coordinator 保持跟踪每一个活着的woker和 协调的执行查询. coordinator 创建一个涉一系列阶段逻辑模型,这样转换为一系列任务运行在集群中worker.

Coordinator与worker交互使用REST API.

worker

Presto worker 在Persto安装中是一个server, 它负责执行任务并且处理数据.工具节点获得数据从connector 和彼此之间交互的中间数据.coordinator负责获得结果从woker并且返回最终结果到client.

当Presto worker处理开始,它通知自己来查找在coordinator上的server,使用它给presto coordinator来执行任务.

worker与其它worker交互并且Presto coordinator使用REST API.

数据源

通过这个文档,你会读到一些术语,像connector, catalog, schema, and table. 这些基础概念覆盖一部分数据源Presto模型并且被下文描述.

Connector

connector 使Presto适用于数据源,像Hive或关系型数据库.你可以想起connector 就想起数据库的driver. 它是Presto SPI的一个实现,允许Presto与资源交互使用标准API.

Persto包含多种内建connectors: JVM connector,系统 connector可以提供访问系统内建表, TPCH connector设计用来服务 TPC-H benchmark 数据.很多第3方开发都 做贡献connector,导致 Presto 访问数据有大量数据源.

每个 catalog 关联一个专用的connector.如果你检查catolog配置文件,你看到每个包含强制属性connector.name,它被catalog 管理使用来创建connector 给catalog. 这是可能的有不至一个catalog 使用相同的connector 来访问两个不同实例相似的数据库.例如,如果你有两个hive集群,你可以配置两个catalog在一个Presto集群,两个都使用hive connector,你查询数据从hive集群中,甚至里边有相同SQL查询.

Catalog

Presto catalog 包含schemas 和引用数据源的connector. 例如你可以配置MX catalog来提供JMX 访问信息通过JMX connector.当你运行在Presto中SQL语句,你运行它在一个或多个catagory.另一个catalogs 怨念Hive catalog来连接hive数据源.

当在Presto中定位table,完整的表名问题从catalog的根开始.如完整的表名hive.test_data.test指向table testtest_data结构在catalog hive中.

Catalogs 定义属性文件保存在Presto 配置目录中.

Schema

Schemas 是组成表的一种方式.同时, catalog 和schema定义一组表可以被查询.当访问 Hive或关系数据库像Mysql用Presto, schema 翻译成相同的概念在目标数据库.connectors 的其它类型可能用选择组织表到schemas,一种对底层数据是有意义的方式.

Table

table是一种没有顺序的行,它可以组织到命名带有类型的列. 和任何关系型数据库相同.数据源到表的映射被定义是通过connector.

查询模型

Presto 查询SQL语句和转变这些语句到查询语句,被执行通过分布集群的coordinator 和workers.

Statement

Presto 执行ANSI兼容的SQL 语句.当Presto文档 指向一个语句 ,它指向语句当定义ANSI标准SQL,由语句,表达式和谓语组成.

一些读者可能好奇为什么这部分列出单独的概念为statements 和查询.这是必要的因为,在Presto中statements 只是指向代表SQL语句的文本.当语句被执行,Presto创建一个查询,伴随一个查询计划,然后分发到一系列worker.

Query

当Presto转换成statement,它转换它为一个查询语句,并且 创建分发查询计划,它然后被实现通过一系列联通的stages运行在Presto worker.当你检索关于Presto中的语句,你可以收到每个组件的快照,它涉及在生成一组结果集来响应statement.

statement 和query中的不同非常简单.statement可以被认为为一个SQL文本,传递给Presto,当查询指向配置并且被实例化组件来执行statement. 查询包含stages,task和split,connector,和其它组件并且数据源工作一致在产生的结果.

Stage

当Presto执行query,它做通过打散执行到一个层级的stage.例如,如果Presto需要聚合数据从十亿行保存到hvie,他做通过创建stage 根到聚合多种不同 输出,所有这些被设计来实现不同区域的分布查询计划.

stages 层级包含查询像树.每个查询有根stage,它负责聚合从其它stage的输出.stage 是coordinator 使用分布式查询计划成模型,但是stage他们自己不运行在Presto worker.

Task

上部分提到的stage模型是分布查询一部分,但是stage他们自己不执行在Presto worker. task是"主力"在Presto架构,作为分布查询计算被解构成一系列stage,它然后被翻译成task,作为或处理split.Presto task有输入和输出,并且当stage可能被执行以并行方式通过一系列tasks,一个任务被执行以并行用一系列driver.

split

Task运行在split上,它是大数据集的一部分. Stage在分布查询计划获取数据的最低级别,通过来至connector的split,并且中间stage在分布查询计划从其它stage上获取数据高级级别.

当Presto安排query, coordinator 查询connector 为一列表可用的split. coordinator 保持跟踪哪台机器运行任务,和被哪一个任务处理来切分.

Driver

任务包含一个或多个并行driver.driver扮演数据和组合operator 生成输出然后被任务聚合,再传递到其它stage的 另外任务. driver 是一系列操作实例,或你可以认为driver作为在内存中物理 组的operator.它是最低级别并行在Presto架构中.drver有一个输入和一个输出.

Operator

Operator 消费,转换和生成数据.例如,表可以扫描获得数据从connector ,并且生产数据,可以被消费通过其它 operator ,并且过滤operator 消费数据并且生成子数据通过输入数据应用预测.

Exchange

Exchange传输数据在 Presto nodes 之间为不同的stage查询.任务生成数据 到输出buffer并且消费数据从其它任务用exchange 客户端.

这篇关于trino(prestoSQL 329)文档 - 1.概览的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/251978

相关文章

C#实现一键批量合并PDF文档

《C#实现一键批量合并PDF文档》这篇文章主要为大家详细介绍了如何使用C#实现一键批量合并PDF文档功能,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言效果展示功能实现1、添加文件2、文件分组(书签)3、定义页码范围4、自定义显示5、定义页面尺寸6、PDF批量合并7、其他方法

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

C#高效实现Word文档内容查找与替换的6种方法

《C#高效实现Word文档内容查找与替换的6种方法》在日常文档处理工作中,尤其是面对大型Word文档时,手动查找、替换文本往往既耗时又容易出错,本文整理了C#查找与替换Word内容的6种方法,大家可以... 目录环境准备方法一:查找文本并替换为新文本方法二:使用正则表达式查找并替换文本方法三:将文本替换为图

Python批量替换多个Word文档的多个关键字的方法

《Python批量替换多个Word文档的多个关键字的方法》有时,我们手头上有多个Excel或者Word文件,但是领导突然要求对某几个术语进行批量的修改,你是不是有要崩溃的感觉,所以本文给大家介绍了Py... 目录工具准备先梳理一下思路神奇代码来啦!代码详解激动人心的测试结语嘿,各位小伙伴们,大家好!有没有想

Python调用LibreOffice处理自动化文档的完整指南

《Python调用LibreOffice处理自动化文档的完整指南》在数字化转型的浪潮中,文档处理自动化已成为提升效率的关键,LibreOffice作为开源办公软件的佼佼者,其命令行功能结合Python... 目录引言一、环境搭建:三步构建自动化基石1. 安装LibreOffice与python2. 验证安装

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (