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

相关文章

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

Python脚本:TXT文档行数统计

count = 0 #计数变量file_dirs = input('请输入您要统计的文件根路径:')filename = open(file_dirs,'r') #以只读方式打开文件file_contents = filename.read() #读取文档内容到file_contentsfor file_content in file_contents:

bcolz文档

原文:http://bcolz.blosc.org/en/latest/reference.html First level variables bcolz.__version__'''bcolz包的版本。''' bcolz.dask_here'''是否检测到dask的最低版本。''' bcolz.min_dask_version'''需要dask的最低版本(dask是可选

WordPress开发中常用的工具或api文档

http://php.net/ http://httpd.apache.org/ https://wordpress.org/ https://cn.wordpress.org/ https://core.svn.wordpress.org/ zh-cn:开发者文档: https://codex.wordpress.org/zh-cn:%E5%BC%80%E5%8F%91%E8%80%

Python知识点:使用Python进行PDF文档处理

使用 Python 进行 PDF 文档处理可以通过多种库来实现,包括 PyPDF2、pdfplumber、reportlab、pdfminer 等。这些库可以处理不同的 PDF 任务,例如 提取文本、拆分合并 PDF、修改 PDF、生成 PDF 等。以下是几种常见操作及对应的库和代码示例。 1. 安装常用库 首先,安装常用的 PDF 处理库: pip install PyPDF2 pdfpl

【2025】基于Python的空气质量综合分析系统的设计与实现(源码+文档+调试+答疑)

博主介绍:     ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W+粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台的优质作者。通过长期分享和实战指导,我致力于帮助更多学生完成毕业项目和技术提升。 技术范围:     我熟悉的技术领域涵盖SpringBoot、Vue、SSM、HLMT

自动化表格处理的革命:智能文档系统技术解析

在当今数据驱动的商业环境中,表格数据的自动化处理成为了企业提高效率、降低成本的关键。企业智能文档系统在智能表格识别方面展现出卓越的性能,通过精准识别和处理各种通用表格,显著提升了企业文档管理的智能化水平。本文将深入探讨该系统在表格识别方面的关键技术和应用优势,以及如何通过行业定制化服务满足不同行业的需求。 1. 通用表格识别 智能文档系统通过先进的OCR技术和表格结构识别算法,能够精准

MongoDB学习—(4)文档的插入,删除与更新

一,文档的插入 插入命令有两个一个为insert,另一个为save,两者的区别为 db.[documentName].insert({..})插入的数据不允许重复,即_id不可相同 db.[docuemntName].save({..})插入的数据允许重复,如果整条数据内容相同,则不发生替换,如果数据有做不同,则将原数据替换 二,删除文档数据 db.[docuementName].r

SIGMOD-24概览Part7: Industry Session (Graph Data Management)

👇BG3: A Cost Effective and I/O Efficient Graph Database in ByteDance 🏛机构:字节 ➡️领域: Information systems → Data management systemsStorage management 📚摘要:介绍了字节新提出的ByteGraph 3.0(BG3)模型,用来处理大规模图结构数据 背景