首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏skyyws的技术专栏

    Trino源码学习】Trino源码剖析之catalog加载

    源码学习】Trino源码剖析之plugin加载中,跟着代码一步步分析,梳理了trino在加载plugin的过程中,主要做了哪些事情。 本文我们将继续跟着代码进行分析,看看trino在加载catalog的时候又做了哪些事情。 加载流程源码分析 在加载完成plugin之后,trino就会开始加载catalog。 也就是说,trino在这里用了两层的class loader。 Trino的代码注释和commit message信息相对比较少,无法直接从这些信息获取一些代码架构和设计的意图,只能自己阅读源码进行学习。

    1.7K30编辑于 2022-05-20
  • 来自专栏skyyws的技术专栏

    Trino源码学习】Trino源码剖析之plugin加载

    HandleResolver 设置当前线程ClassLoader 获取Plugin实现类 Duplicate PluginClassLoader 构造InternalConnectorFactory 小结 最近在研究Trino 本文将会跟着代码,一步一步分析Trino的plugin加载到底做了哪些事情,当前代码分析都是基于trino的maste分支(最新的commit记录为:6a48c4352dfc6835997c43d7d5f7a599c0a712a5 加载流程源码分析 Trino服务在启动的时候,会从指定的路径来加载所有的plugin,默认是/plugin目录下。 ):169 ----installPlugin(PluginManager.java):175 -----installPluginInternal(PluginManager.java):198 在Trino Installing io.trino.plugin.hive.HivePlugin 然后调用installPlugin来加载每一个Plugin的实现类。

    1.6K31编辑于 2022-05-20
  • 来自专栏飞总聊IT

    Trino Summit 2022:Trino的现状和未来

    Trino Summit 2022今年11月在San Francisco召开。我今年挺想现场去参加这个会议的,但是公司今年砍掉了所有travel的budget,所以就没去。 当然Trino还有很多其他的提高,一张PPT概括了。 Trino 2023需要做的事情最重要的大概就是这个了: 具体来说,首先是下一代的列式处理引擎,里面当然会用到各种各样新的技术了。 总之2022年Trino做了很多事情,2023年Trino还要做很多事情,好日子望不到边啊。 那么问题来了,你要问我Trino的2022年,做的这些事情,放到Keynotes里面来说,到底是不是真的值得大夸特夸呢? 至于明年要做的事情,我倒是觉得Trino真的应该认认真真的考虑用C++了啊,不然时不我待,继续在Java上面绑死日子不好过。

    1K20编辑于 2023-01-10
  • 来自专栏大数据-BigData

    Trino 372正式发布

    (#10953) MongoDB连接器 如果显式模式不存在,则将 MongoDB bindata 类型映射到 Trino varbinary 类型。

    2K30编辑于 2022-03-07
  • 来自专栏用户2133719的专栏

    Trino 权威指南 Part 1

    1 Trino 简介 Trino[1] 是一种支持使用 SQL 访问任意数据源的 SQL 查询引擎,其能够提供更加灵活与高效的查询服务。本章节将简单介绍 Trino 的基本功能与使用场景。 trino 下): $ docker exec -it trino trino trino> select count(*) from tpch.sf1.nation; _col0 ------ 3 使用 Trino 本章节将介绍 Trino 的使用方式。 部署,可以直接启动 trino CLI,否则需要指定服务器地址: $ trino --server https://trino.example.com:8080 trino> 启动成功后,可以直接编写 Web UI Trino 服务器提供了 Web UI 来监控 Trino 的相关信息,对于本地部署的 Trino,可以通过 http://localhost:8080 访问: 3.4 Trino SQL

    7.9K10编辑于 2022-11-11
  • 来自专栏skyyws的技术专栏

    Trino连接ClickHouse代码浅析

    最近在调研Trino和Clickhouse的打通问题,简单研究了下Trino对于CH的适配,这里简单总结下。详细的代码提交参见这个commit:Add ClickHouse Connector。 加载Plugin Trino在启动的时候,会加载所有已经支持的plugin,也就是说常说的connector,加载的路径位于plugin/下,如下所示: 可以看到,目前支持的plugin种类非常多, io.trino.server.PluginManager Registering connector clickhouse 2022-02-08T16:57:26.472+0800 INFO main io.trino.server.PluginManager -- Finished loading plugin /data/impala/presto/data/plugin 后续再进行各种元数据加载和查询的时候,就会利用这个connection来与CH集群进行交互,如下所示: 加载ClickHouse元数据 下面简单来看下Trino是如何加载catalog的。

    1.3K50编辑于 2022-05-20
  • 来自专栏数据库和大数据技术原理解析

    Presto 和 Trino Deltalake 原理调研和总结

    最近在了解 Presto 和 Trino 对于 Deltalake Connector 的相关实现原理,这里了解完刚好用一篇文章总结下,一是可以帮助自己未来的回顾,二是也希望能够帮助大家,下面都是个人理解 一、数据湖元数据获取对比 1.1 Deltalake 元数据获取实现方式 Presto 和 Trino 当前支持通过 Hive Metastore 相关接口 + 自己解析 Deltalake 事务日志( 一个.prestoSchema 文件内容示例如下: 1.1.2 Trino Deltalake 元数据相关源码实现 Trino Deltalake 的所有的元数据操作实现类为:DeltaLakeMetadata 1.2.1 Trino Trino 支持会为每张 Deltalake 表暴露两张元数据表: "xxx_table$history" "xxx_table$properties" "xxx_table$history ,主要用来更新表的 Column 的 NDV 和 total size,这两个信息属于 Trino 自定义扩展出来的,这两个信息存储在 Deltalake 表下面 _trino_meta 目录,使用 extended_stats.json

    71310编辑于 2024-01-25
  • 来自专栏飞总聊IT

    Project Tardigrade:Trino(Presto)到底想干什么?

    这个项目是Trino,也就是以前分裂出来的Presto和它背后的大数据初创公司做的。 比如说标题:Project Tardigrade delivers ETL at Trino speeds to early users 什么叫做ETL at Trino speeds。 Trino这个MPP架构的计算引擎,做这个事情难在哪里呢?这个问题我觉得可以从这两方面看。 大家可能看起来很奇怪,但是这些都是Trino在Project Tardigrade中面临的真实问题。 总之Trino的execution engine有很多需要修补的地方。 无论如何,我们都不能否定这个项目对Trino发展的意义。

    68530编辑于 2023-01-10
  • 来自专栏skyyws的技术专栏

    Trino lambda表达式使用学习小结

    Trino中使用了很多的lambda表达式的写法,这点与Impala非常不同。这里简单学习了一些场景下的lambda表达式的用法。 tableHandle) { return stats.getGetColumns().wrap(() -> delegate().getColumns(session, tableHandle)); } Trino

    53980编辑于 2022-05-20
  • 来自专栏DevOps

    大数据:Trino简介及ETL场景的解决方案

    在过去的六个月时间里,Trino 社区一直在开发支持 ETL 的功能,其代号为 Tardigrade,也是通过修改 Trino 的代码来支持 ETL 的功能。 Trino 在幕后完成所有分配、配置和维护查询处理的繁重工作。 我们可以将时间花在分析和交付业务价值上,而不是花时间调优 Trino 集群以满足我们的工作负载需求,或者重新组织工作负载以满足我们 Trino 集群能力。 Tardigrade 项目原理简介 Trino 是一种无状态的计算引擎,所以为了实现 ETL,是需要对 Trino 进行很多修改的。 但是反过来看 Trino ,其实现思路和上面不太一样,Trino 的 Tardigrade 看起来是直接在 Trino 上实现了容错、查询/任务重试、shuffle 等核心功能。

    95810编辑于 2024-03-29
  • 使用trino查询MySQL数据源报错的解决方法

    trino(版本448)启动后,当查询MySQL的源,提示连不上MySQL的库。同样的配置,查询PG数据源都可以正常使用。 解决步骤:1、先把日志改为debug级别看下报错明细,cat log.properties# 设置日志级别,有四个级别:DEBUG, INFO, WARN and ERRORio.trino=DEBUG2 、再次启动trino,并执行mysql数据源的查询操作3、查看trino的日志,发现有如下内容Caused by: com.mysql.cj.exceptions.CJException: Unknown ConnectionImpl.java:848)... 81 more4、github上搜下类似issue,找到解决方法在 jvm.config 最后加一行:-Duser.timezone=GMT+85、再次重启trino

    97410编辑于 2024-05-29
  • 来自专栏Footprint Analytics

    Iceberg-Trino 如何解决链上数据面临的挑战

    本文中,我们将以 Footprint Analytics 的技术架构演变作为分析案例,探索 Iceberg-Trino 如何解决链上数据面临的挑战。 Iceberg 可以与 Spark,Flink,Trino 等计算引擎都有着非常良好的集成,我们可以为我们的每一个指标选择最合适的计算方式。 要支持将 Bigquery 作为 Data Source 要支持 DBT,我们要很多指标是依赖 DBT 完成生产的 要支持 BI 工具 metabase 基于以上个点,我们选择了 TrinoTrino 要知道,在各大 OLAP 的宣传文章中,Presto + Hive 可是常年作为最差的对比项存在的,Trino + Iceberg 的组合完全刷新了我们的认知。 ,我们再也不用处理数据同步问题; Trino + Iceberg 让人惊艳的性能,让我们可以开放所有 Bronze 数据给到用户。

    2.8K30编辑于 2023-01-18
  • 来自专栏大数据

    面经:Presto/Trino高性能SQL查询引擎解析

    本文将结合我个人的面试经历,深入剖析Trino的核心特性和应用场景,分享面试必备知识点,并通过代码示例进一步加深理解,助您在求职过程中游刃有余地应对与Trino相关的技术考察。 一、面试经验分享在与Trino相关的面试中,我发现以下几个主题是面试官最常关注的:Trino架构与执行流程:能否清晰描述Trino的分布式架构,包括Coordinator、Worker节点的角色,以及查询的解析 二、面试必备知识点详解Trino架构与执行流程Trino采用主从式架构,主要包括Coordinator节点负责查询解析、规划和调度,Worker节点负责实际的数据处理。 ;容错与运维Trino具备良好的容错机制,如任务重试、节点故障自动检测等。运维方面,需熟练使用trino-cli、trino-admin工具进行集群管理、查询监控、日志分析等工作。 希望本文的内容能帮助您系统梳理Trino相关知识,从容应对各类面试挑战。

    95610编辑于 2024-04-13
  • 来自专栏crossoverJie

    使用 SQL 的方式查询消息队列数据以及踩坑指南

    Trino 是一个分布式的 SQL 查询引擎,它也提供了插件能力,如果我们想通过 SQL 从自定义数据源查询数据时,基于它的 SPI 编写一个插件是很方便的。 无法使用现有 Trino 集群 首先第一个问题是如果生产环境已经有了一个 Trino 集群想要复用的时候就会碰到问题,常规流程是将 Pulsar 的插件复制到 Trino 的 Plugin 目录,然后重启 Trino 后就能使用该插件。 但是手动编译出来的 Trino 服务和插件是兼容的,可以直接运行。 image.png 因此我只能在本地编译出 Trino 服务端和 pulsar-plugin 然后打包成一个镜像来运行了,当然这样的坏处就是无法利用到我们现有的 Trino 集群,又得重新部署一个了。

    45340编辑于 2023-09-20
  • 来自专栏Apache Doris

    兼容Trino Connector,扩展Apache Doris数据源接入能力|Lakehouse 使用手册(四)

    `kudu_catalog` PROPERTIES ( "type" = "trino-connector", "trino.connector.name" = "kudu", "trino.kudu.authentication.type Connector本小节以 Trino Kafka Connector 插件为例,演示如何在 Doris 中适配 Trino Connector 插件,以及通过 Doris 的 Trino-Connector-Catalog 编译步骤如下:拉取 Trino 源码: $ git clone https://github.com/trinodb/trino.git将 Trino 切换至 435 版本: $ git checkout 435进入 Kafka 插件源码目录: $ cd trino/plugin/trino-kafka编译 Kafka 插件: $ mvn clean install -DskipTest编译完成后,trinotrino.kafka.nodes、trino.kafka.table-description-dir 均来源于 Trino,具体可参考:Kafka connector 不同的 Connector 插件应该设置不同的属性

    41810编辑于 2024-09-06
  • Hive vs. Impala/Presto/Trino:SQL on Hadoop的另一选择深度解析

    特别是在多表关联和聚合操作中,Trino凭借其优化的查询引擎,在某些复杂查询场景下比Presto还要快15-20%。 与Impala相比,Presto和Trino的突出优势在于多源异构查询能力。 虽然增长势头略逊于Trino,但在大型互联网企业的生产环境中仍占据重要地位,日均处理查询量达到百万级别。 应用局限与适用场景 需要注意的是,Presto与Trino并非没有局限。 Trino在近年发展中进一步降低了延迟,尤其在复杂聚合查询中优于Presto。总体而言,如果追求极致低延迟,Impala、Presto和Trino是更优选择,而Hive则胜在大规模批处理的稳定性。 Trino(原PrestoSQL)由Starburst公司主导,强调云原生和Kubernetes部署,生态系统扩展性更强,例如通过Trino Gateway实现多集群管理。 关键指标汇总表 以下表格总结了Hive、Impala、Presto和Trino在核心维度的对比,帮助读者快速决策: 指标 Hive Impala Presto Trino 查询延迟 高(分钟到小时级)

    33410编辑于 2025-11-29
  • Trino 省 67% 成本,速度快 10 倍,中通快递基于 SelectDB 的湖仓分析架构

    有1-2倍的性能提升;在1TBTPC-DS标准测试中,SelectDB完成99个查询的总耗时仅为Trino的1/5。 截止当前,在OLAP分析层面,Trino集群规模已超过130台,日峰值响应接近56万个查询。相比之下,SelectDB虽仅拥有三套集群规模,总数为60台,但日峰值响应量接近90万个查询。 同时,Trino和SparkSQL在在面对高并发查询时,处理效率与预期存在较大差距。在查询超时问题上,我们开启了数据缓存(DataCache)功能,并配置大容量本地磁盘,将热数据持久化缓存。 在同等查询量下,SelectDB的慢SQL(>10s)仅为Trino的百分之一。 该场景下,在保持高性能、高并发的同时,显著节约了计算资源,SelectDB集群规模约为Trino的1/4。

    19910编辑于 2025-12-17
  • 来自专栏飞总聊IT

    这个才200个人的公司,竟然有4个CTO!!!

    我要写的技术话题是Trino Summit,查资料查到的公司是Trino背后的大数据创业公司Starburst。 他们就是Facebook当年创立Trino这个项目的人,也就是赫赫有名的Presto三巨头。 我们还记得三巨头跳出来谴责Facebook,搞Presto分家的故事吧。 开始做Trino了呢? 这又是另外一段故事了。这段故事要从一个冤大头叫Teradata说起来。Teradata也发现了bigdata对他们的生意侵蚀严重,需要进入这个圈子了。 2.Facebook里面最开始搞Presto的三巨头,2019年的时候从Facebook里出来和Facebook决裂,带着新的Trino加入Starburst的。 飞总今天做功课想要好好写Trino summit,就浅浅的挖了一下背后的Starburst公司,然后,大家就看了这篇文章。 那么问题来了,这个公司做Trino有前途吗?

    65320编辑于 2023-01-10
  • 来自专栏一臻数据

    从Presto跳槽到Doris后,湖仓一体省时又省力

    Apache Doris 和 Presto/Trino 作为主流的查询引擎,各自具备不同的架构设计和适用场景。 今天,我们就来相互vs一下。 Presto/Trino 专注于提供一个联邦查询引擎,擅长跨异构数据源进行查询,但其本身不包含存储层。 相比之下,Apache Doris 提供了一个融合数据仓库与数据湖查询能力的统一架构。 Doris 基于 C++ 实现的全向量化执行引擎,在性能上通常优于主要基于 Java 实现的 Presto/Trino。 根据 TPC-DS 1TB 基准测试结果,当直接查询外部 Hive 表时,Doris 的执行效率比 Presto/Trino 快2到3倍;而当数据导入 Doris 内部表时,其查询性能更是可以达到 Presto /Trino 的10倍以上。

    22310编辑于 2025-11-17
  • 来自专栏ApacheHudi

    医疗在线OLAP场景下基于Apache Hudi 模式演变的改造与应用

    由于Presto分为两个分支(Trino和PrestoDB),其中PrestoDB的正式版本已经支持快照查询模式,而Trino主线还不存在这个功能,所以优先考虑在PrestoDB上实现,我们基于Trino 只读取parquet文件的查询模式 • snapshot(快照):MOR表的rt表,读取log文件和parquet并计算合并结果的查询模式 现状: Hudi的Schema演变过程中多种引擎的表现 其中trino Trino对Hudi支持的情况 Trino版本主线分支无法用快照模式查询。Hudi连接器最终于22年9月28日合入主线,仍没有快照查询的功能。 本地版本基于Trino360主动合入社区中打开状态的PR(Hudi MOR changes),基于Hive连接器完成了快照查询能力。 但由于Trino社区更加活跃,以前的很多功能基于Trino开发,下一步计划改造Trino,使其完整支持快照读与两种查询模式下的schema完整演变。

    1.2K10编辑于 2022-12-09
领券