Trino文档 - 概览(新)

2023-10-21 04:38
文章标签 文档 概览 trino

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

概览

  • 使用案例
    • Trino 不能做什么
    • Trino 可以做什么
  • 1.2 Trino 概念
    • 概览
    • Server类型
      • Coordinator
      • worker
    • 数据源
      • Connector
      • Catalog
      • Schema
      • Table
    • Query执行模型
      • Statement
      • Query
      • Stage
      • Task
      • split
      • Driver
    • Operator
      • Exchange

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

使用案例

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

Trino 不能做什么

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

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

Trino 可以做什么

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

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

1.2 Trino 概念

概览

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

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

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

Server类型

有两种Trino Server类型: coordinator 和worker.下边区域来解决他们的不同.

Coordinator

Trino coordinator 负责转换statement,设计query, 管理trino 中worker节点. 这是Trino安装的大脑,并且 也是一个客户端连接提交执行statement的节点. 每个Trino安装必须有一个coordinator 和一个或多个worker. 对于开发或测试目的,单独一个Trino实例可以配置来执行两个角色.

coordinator 保持跟踪每一个活着的worker和 调的执行query. coordinator 创建一个查询涉及一系列stage的逻辑模型,它翻译成一系列连接的task运行在集群中worker.

Coordinator与worker交互使用REST API.

worker

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

当Trino worker进程启动, 它通知自己给在coordinator上的发现server, 对于Trino coordinator可用为任务执行.

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

数据源

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

Connector

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

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

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

Catalog

Trino catalog 包含schema 和通过connector引用的数据源. 例如, 你可以配置JMX catalog来提供访问JMX 信息通过JMX connector.当你在Trino中运行SQL statement,你运行它对应一个或多个catalog. 其它例子中catalogs 包含Hive catalog云连接hive数据源.

当在Trino中定位table,完整的表名总是从catalog的根开始.例如完整的表名hive.test_data.test指向 table test 在 schema test_data 在catalog hive中.

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

Schema

Schema 是组成表的一种方式.放在一起, catalog 和schema定义一组可以被查询的表. 当用Trino访问 Hive或关系数据库像Mysql, schema 翻译成相同概念在目标数据库. 其它类型的connector 可能用选择组织表到 schema一种方式,意味着了解底层数据源.

Table

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

Query执行模型

Trino 查询SQL statement并且转换这些statement到查询 query, 被执行通过分布集群中的coordinator 和worker.

Statement

Trino 执行ANSI兼容的SQL statement. 当Trino文档 指向一个statement ,它引用 statement 作为SQL ANSI标准定义, 它包含语句,表达式和谓语.

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

Query

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

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

Stage

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

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

Task

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

split

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

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

Driver

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

Operator

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

Exchange

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

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



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

相关文章

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

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

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

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

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

Java docx4j高效处理Word文档的实战指南

《Javadocx4j高效处理Word文档的实战指南》对于需要在Java应用程序中生成、修改或处理Word文档的开发者来说,docx4j是一个强大而专业的选择,下面我们就来看看docx4j的具体使用... 目录引言一、环境准备与基础配置1.1 Maven依赖配置1.2 初始化测试类二、增强版文档操作示例2.

Java操作Word文档的全面指南

《Java操作Word文档的全面指南》在Java开发中,操作Word文档是常见的业务需求,广泛应用于合同生成、报表输出、通知发布、法律文书生成、病历模板填写等场景,本文将全面介绍Java操作Word文... 目录简介段落页头与页脚页码表格图片批注文本框目录图表简介Word编程最重要的类是org.apach

Python Pillow 库详解文档(最新推荐)

《PythonPillow库详解文档(最新推荐)》Pillow是Python中最流行的图像处理库,它是PythonImagingLibrary(PIL)的现代分支和继承者,本文给大家介绍Pytho... 目录python Pillow 库详解文档简介安装核心模块架构Image 模块 - 核心图像处理基本导入

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事