文章目录

  • 简介
  • 什么是 Tardigrade 项目
  • Tardigrade 项目原理简介

简介

Presto 在 Facebook 的诞生最开始是为了填补当时 Facebook 内部实时查询和 ETL 处理之间的空白。Presto 的核心目标就是提供交互式查询,也就是我们常说的 Ad-Hoc Query,很多公司都使用它作为 OLAP 计算引擎。但是随着近年来业务场景越来越复杂,除了交互式查询场景,很多公司也需要批处理;但是 Presto 作为一个 MPP 计算引擎,将一个 MPP 体系结构的数据库来处理海量数据集的批处理是一个非常困难的问题,所以一种比较常见的做法是前端写一个适配器,对 SQL 进行预先处理,如果是一个即时查询就走 Presto,否则走 Spark。这么处理可以在一定程度解决我们的问题,但是两个计算引擎以及加上前面的一些 SQL 预处理大大加大我们系统的复杂度。

为了解决这个问题,PrestoDB 启动了 Presto Unlimited 以及 Presto on Spark 等项目用于解决这种问题,这些我们可以到 Presto on Spark:支持即时查询和批处理 和 Presto on Spark:通过 Spark 来扩展 Presto 文章中了解详情。今天我们要讲的是 Presto 的另外一个分支 Trino(PrestoSQL)ETL 之路。在过去的六个月时间里,Trino 社区一直在开发支持 ETL 的功能,其代号为 Tardigrade,也是通过修改 Trino 的代码来支持 ETL 的功能。

什么是 Tardigrade 项目

大家喜欢使用 Trino 的地方在于它的查询速度很快,可以通过直观的错误消息、交互体验和联邦查询来解决业务问题。长期存在的一个大问题是,为长时间运行的 ETL 工作负载配置、调优和管理 Trino 是非常困难的。以下是你必须处理的一些问题:

  • 可靠的完成时间:运行数小时的查询可能会失败,从头开始重新启动它们会浪费资源,并使我们难以满足完成时间的要求。
  • 具有成本效益的集群:我们需要 TB 级分布式内存的 Trino 集群来执行查询;
  • 并发性:多个独立客户端可以并发提交查询。由于在某一时刻缺乏可用资源,其中一些查询可能需要终止并在一段时间后重新开始,这使得作业完成时间更加难以预测。

为了解决上面问题我们可能需要由专家团队来完成,但这对大多数用户来说是不可能的。Tardigrade 项目的目标是为上述问题提供一个“开箱即用”的解决方案。社区设计了一种新的容错执行架构(fault-tolerant execution architecture),它允许我们实现具有细粒度重试的高级资源感知调度(advanced resource-aware scheduling)。以下是 Tardigrade 项目带来的效果:

  • 当长时间运行的查询遇到故障时,我们不必从头开始再运行它们。
  • 当查询需要的内存超过集群中当前可用的内存时,它们仍然能够运行成功;
  • 当多个查询同时提交时,它们能够以公平的方式共享资源,并稳步运行。

Trino 在幕后完成所有分配、配置和维护查询处理的繁重工作。我们可以将时间花在分析和交付业务价值上,而不是花时间调优 Trino 集群以满足我们的工作负载需求,或者重新组织工作负载以满足我们 Trino 集群能力。

Tardigrade 项目原理简介

Trino 是一种无状态的计算引擎,所以为了实现 ETL,是需要对 Trino 进行很多修改的。在实现上,Trino 和 PrestoDB 有一些不一样,PrestoDB 为了同时支持 ETL 和即时查询,在初期是开发了代号为 Presto Unlimited 的项目,其主要是将表进行分桶,每个桶的数据是独立的,所以可以独立计算;如果单个桶的数据计算失败了,直接重试这个桶数据所涉及到的计算即可,关于这部分原理可以参见Presto on Spark:支持即时查询和批处理 和 Presto on Spark:通过 Spark 来扩展 Presto等文章。虽然 Presto Unlimited 解决了部分问题,但它并没有完全解决容错问题,也没有改善隔离和资源管理。要实现这些功能无疑需要对 Presto 进行很大的改造,而且这些工作在其他引擎(比如 Spark、Flink 等计算引擎都有)其实都有类似的实现,再在 Presto 上实现有点重复造轮子;所以 PrestoDB 社区引入了 Presto on Spark,Presto on Spark 是 Presto 和 Spark 之间的集成,它利用 Presto 的 compiler/evaluation 作为类库,并使用 Spark 的 RDD API 来管理 Presto embedded evaluation 的执行;这类似于 Google 选择将 F1 Query 嵌入其 MapReduce 框架的方式。

但是反过来看 Trino ,其实现思路和上面不太一样,Trino 的 Tardigrade 看起来是直接在 Trino 上实现了容错、查询/任务重试、shuffle 等核心功能。Trino 将上游 stage 的 shuffle 数据进行落盘,这个支持把数据写到 AWS A3、Google Cloud Storage、Azure Blob Storage 以及本地文件存储(这个是用于测试的),下游的 stage 从磁盘里面读取需要的数据。

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

  1. GitChat · 大数据 | 一步一步学习大数据:Hadoop 生态系统与场景

    目录(?)[-] Hadoop概要 Hadoop相关组件介绍 HDFS Yarn Hive HBase Spark Other Tools Hadoop集群硬件和拓扑规划 硬件配置 软件配置 Hado ...

  2. 大数据入门简介(一)了解大数据

    大数据入门简介(一) 首先我们先想想为什么会大数据,或者说它能干什么? 与常规数据比较,大数据体现在什么地方?大数据大数据,关键是什么,大!!!就是这么浅显,大,什么大,数据大呗.下面我们就围绕这个大 ...

  3. 大数据入门概念及应用场景

    参考内容: [知乎]深入浅出大数据:到底什么是Hadoop? [知乎]五万字 | Hive知识体系保姆级教程​ 大数据入门概念及应用场景 一.入门概念 1.1 大数据的4V 1.2 大数据处理的最佳工 ...

  4. hive使用适用场景_大数据入门:Hive应用场景

    在大数据的发展当中,大数据技术生态的组件,也在不断地拓展开来,而其中的Hive组件,作为Hadoop的数据仓库工具,可以实现对Hadoop集群当中的大规模数据进行相应的数据处理.今天我们的大数据入门分 ...

  5. MobTech出席人工智能创想论坛,分享AI+大数据在营销反欺诈场景下的应用

    4月23日,"智见智能•筑梦花桥"2021花桥人工智能创想论坛在沪举办.本次活动由花桥科学技术局与COCOSPACE(花桥)长三角大数据产业创新中心主办.MobTech袤博科技受邀 ...

  6. 百度智能云服务器大数据型实例族应用场景及规格参数介绍

    大数据型d1s规格族特点 处理器:Intel Xeon Platinum 6271,主频 2.6GHz 处理器与内存配比为1:4 实例配备大容量高吞吐的SATA HDD本地盘 最高可支持25Gbps内 ...

  7. 海关大数据平台建设与应用场景思考

    张涵诚:海关大数据平台建设与应用场景思考 文/张涵诚 海关十三五规划明确指出,要运用大数据技术提升海关管理智能化水平.要数据科学赋能海关,提高智能化水平的提高就一定离不开平台建设,也离不开大数据各种算 ...

  8. 2022 IoTDB Summit:阿里白渐《迈向物联网时代大数据计算平台——MaxCompute 基于IoTDB构建解决方案》...

    12 月 3 日.4日,2022 Apache IoTDB 物联网生态大会在线上圆满落幕.大会上发布 Apache IoTDB 的分布式 1.0 版本,并分享 Apache IoTDB 实现的数据管理 ...

  9. 大数据在高校的应用场景_大数据在高校中的应用研究

    大数据在高校中的典型应用 很多高校正在使用大数据分析技术解决遇到的实际问题,如美国德克萨斯大学利用大数据技术分析学校用户IT 使用行为产生的数据,确定用户行为异常,审计IT 基础环境,制定安全防护措施 ...

最新文章

  1. linux 软件安装基本操作
  2. 2021-03-18TOMCAT的非双亲委派机制众家辨解
  3. web项目中各种路径的获取
  4. 计算机应用技术 平面设计,全国信息化计算机应用技术水平教育考试试卷 平面设计师...
  5. 终于有人说清楚了!内卷和努力到底有啥区别?
  6. linux管理防火墙开放端口
  7. 考研政治——选择题判断原则
  8. mysql常用四种连接_MySQL四种连接查询
  9. python新手入门到放弃_python萌新:从零基础入门到放弃
  10. 企业中常见的推荐系统架构(附交流视频和PPT下载链接)
  11. Spring中@DependsOn注解的作用及实现原理解析
  12. 微信小程序获取Appsecret报错40125“invalid appsecret”
  13. vue项目实现权限控制的几种思路
  14. 数据库系统概论练习4
  15. 我,钢铁侠,现急缺660亿美金
  16. 电脑开机后进不了系统怎么办?
  17. Unix/Linux编程:POSIX时钟
  18. 获诱人的实习offer、在Kaggle推AI大赛,大二学生如何做到?
  19. SQL*Loader总结sqlldr
  20. 镜头评价指标及测试方法【四】————手机摄像头调查

热门文章

  1. 华为大模型重磅来袭!!!
  2. HTML5期末大作业:网站——美丽家乡(南京介绍7个页面) 家乡文化介绍 学生DW网页设计作业源码(HTML+CSS+JS) ~学生dreamweaver网页设计作业成品
  3. 基于JAVA在线影视系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  4. 2023.6.5每日一题
  5. 什么是操作系统?操作系统的作用和主流的操作系统有哪些(详)
  6. C++实现IP地址类
  7. 四、超频篇:神板神U,风冷竟超5G!奔腾媲美爱妻
  8. ae怎么卸载已经安装的插件_是不是AE装过之后卸载了就不能再安装了?
  9. 金融大数据分析还不简单,有了Smartbi简单几步就能完成
  10. Windows server防火墙如何设置阻止IP访问 防火墙限制ip地址访问