【Trino权威指南(第二版)】Trino介绍:trino解决大数带来的问题

文章目录

  • 一. 大数据带来的问题
  • 二. Trino来救场
    • 1. 为性能和规模而生
    • 2. SQL-on-Anything
    • 3. 数据存储与查询计算资源分离
  • 三. Trino使用场景

一. 大数据带来的问题

数据现状

数据存储机制日益多样:关系型数据库、NoSQL数据库、文档数据库、键值存储和对象存储系统等。对于当今的组织结构,它们当中很多是必备的,只使用其中一种已经不够了
 
数据分散在各个孤岛上,对有些数据的查询无法满足分析所需的必要性能。其他系统则将数据存储在单一庞大的系统上,因而不能像现代的云应用程序一样横向扩展。

大数据带来的问题

数仓的笨拙

  • 对全世界的组织来说,创建和维护大型专用数据仓库的传统方法成本高昂。 通常,对很多用户和使用模式来说,这种方法也显得缓慢且笨拙。
  • 有些分析不需要数仓、或者有些业务库不开放为数仓。

数据的持续分布导致增加数据处理的难度

  • 通常被考虑作为解决方案的数据湖,要么成了无人问津的数据倾倒场,要么需要带着巨大的痛苦艰难地尝试才能对它做数据分析。
  • 作为新方法的数据湖仓,尽管它可以融合数据仓库和数据湖两者的优点,但也不是唯一的解决方案。数据将持续分布,存储在各个地方,并将出现越来越多的系统

 

二. Trino来救场

Trino能解决上述所有问题。通过支持不同系统上的联邦查询并行查询横向集群扩展等功能,它为我们提供了新的机会。

Trino是一个开源的分布式SQL查询引擎,是为了高效查询不同系统和各种规模从GB级到PB级)的数据源而从头开始设计和编写的一套系统。

1. 为性能和规模而生

  • 如果有TB级乃至PB级的数据需要查询,你可能会使用Apache Hive等工具。与这些工具相比,Trino可以更高效地查询数据。分析师应该使用Trino,因为他们期望SQL查询可以在几毫秒(实时数据分析)、几秒或几分钟内返回结果
  • Trino支持SQL,通常用在数据仓库、数据分析、海量数据聚合和生成报告等任务上,这些任务通常被归类为联机分析处理(OnLine Analytical Processing,OLAP)。
  • 尽管Trino能理解并高效地执行SQL,但它并不是一个数据库,因为它并不包含自己的数据存储系统。此外,Trino也不适用于联机事务处理(OnLine Transaction Processing,OLTP)。

Trino同时使用了众所周知的技术和新颖的技术来执行分布式查询。这些技术包括

  • 内存并行处理
  • 跨集群节点管线执行
  • 多线程执行模型(以保持所有CPU核心被充分利用)
  • 高效的扁平内存数据结构(以最小化Java的垃圾回收和Java字节码生成)

借助上述技术,Trino用户可以以比其他方案更低的成本更快地获得查询结果。

2. SQL-on-Anything

  • Trino是一个查询引擎,可以从对象存储系统、关系型数据库管理系统(RDBMS)、NoSQL数据库和其他系统中查询数据。Trino几乎可以查询任何东西,是一个真正的SQL-on-Anything系统。
     
  • Trino在原地查询数据,无须事先将数据迁移集中到某个位置。(优于数仓?)无论数据存放在何处,Trino都可以查询,因此它可以取代传统、昂贵和笨重的提取-变换-加载(ETL)过程,或者至少为某些现代化高效ETL工具(例如,dbt)。
     
  • 有了Trino,用户甚至可以用相同的SQL在不同的系统之间进行查询。

3. 数据存储与查询计算资源分离

  • Trino没有自己的存储,它只是在数据所在之处进行查询处理。使用Trino时,存储和计算是分离的,它们可以各自独立地扩展。
  • Trino代表计算层,底层的数据源代表存储层。这使得Trino可以基于对数据的分析需求来扩展和缩减计算资源。无须移动数据或根据当前查询的需求预设计算资源和存储资源,也无须随着查询需求的变化来定期变更资源的分配。Trino可以通过动态扩展计算集群来扩展查询能力。借助这一特性,你可以极大地优化硬件资源需求并降低成本。

 

三. Trino使用场景

  1. 单一的SQL分析访问点

你可以从Trino这里访问所有数据库。所有的仪表盘和分析工具以及其他商业智能系统,都可以指向一个系统——Trino,它可以访问组织当中的所有数据。

2.数据仓库和数据源系统的访问点

  • Trino允许你添加任何数据仓库作为数据源,就像其他关系型数据库一样。如果你想深入研究数据仓库的查询,可以在Trino里直接完成。
  • 你也可以在这里访问数据仓库及其源数据库系统,甚至可以将它们组合在一起编写一个SQL语句来查询。Trino让你可以使用单个系统查询任何数据库(包括数据仓库、源数据库)。

3.提供对任何内容的SQL访问

Trino允许你将它作为一个数据源,用来对接各类系统。这些系统可以使用标准的ANSI SQL来查询相关的数据。
在这里插入图片描述

  1. 联邦查询

联邦查询是在一个语句中引用并使用不同数据库和模式(schema)的SQL查询。在Trino中可以用同一条SQL语句,在同一时间查询出来自完全不同的系统的数据。

5.虚拟数据仓库的语义层

  • Trino可用作虚拟数据仓库。使用这一工具和标准ANSI SQL,你就可以定义语义层。一旦所有的数据库都设置成Trino的数据源,你就可以查询它们。
  • Trino提供了查询这些数据库所需的计算能力。使用SQL和Trino支持的函数与运算符,你可以直接从数据源获得想要的数据。在使用数据进行分析之前,无须复制、移动或转换它们。
  1. 数据湖查询引擎
  • 数据湖通常指的是一个巨大的HDFS或类似的分布式对象存储系统,在数据被存储到这些存储系统时,并没有特别考虑接下来应该如何访问它们。Trino可以使它们成为有用的数据仓库。
  • Delta Lake和Iceberg等新表格式极大地提高了数据湖的可用性,以至于产生了新的术语——数据湖仓(湖仓一体)。有了Delta Lake和Iceberg连接器,Trino是查询这些数据湖仓的首选。
  1. 更快的响应带来更好的洞见

Trino在设计上避免了数据复制。Trino的并行计算和深度优化通常能为你的数据分析带来性能提升。如果原来需要3天的查询现在只需15分钟就可以完成。

  1. SQL转换和ETL、大数据、机器学习和人工智能

 
 
《Trino权威指南(第二版)》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/200341.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp 云打包 生成安卓证书文件

现在使用uniapp来开发小程序,H5,APP越来越多了,目前开发了一款APP,使用的也是uniapp。在此记录下用uniapp开发app云打包时约到的一些问题吧。 前因是我司安卓同学休产假,像云打包时需要的证书文件只能自己动手来搞。看…

算法-贪心思想

贪心的思想非常不好解释,而且越使用权威的语言解释越难懂。而且做题的时候根据自己的理解可能直接做出来,但是非要解释一下怎么使用的贪心的话,就懵圈了。一般来说,贪心的题目没有固定的套路,一题一样,不过…

了解应用层的HTTP协议与HTTPS协议,在常规请求的应用中Get与Post的区别

一、HTTP协议 1、http协议的特性2、http协议的请求 请求行 GET请求POST 请求(人脸识别方案)两个请求的区别本质区别: (1)url 携带的参数是否可见:(2)参数传递方式(3)缓存性&#xf…

【Maven】清理 maven 仓库

初始情况下,我们的本地仓库是没有任何jar包的,此时会从私服去下载(如果没有配置,就直接从中央仓库去下载)。 可能由于网络的原因,jar包下载不完全,这些不完整的jar包都是以lastUpdated结尾。此…

JVM arthas下载工具

工具下载地址 链接:https://pan.baidu.com/s/1qkn9HabhuwTiwbKVQ7BXnA?pwdv5ww 提取码:v5ww 启动语句 java -jar arthas-boot.jar输入你的线程,这里是2 dashboardJVM优化 堆的初始大小 最大大小 年轻代的大小 线程栈大小 新生代、伊甸…

娱乐类直播平台

娱乐类直播是一种以娱乐为主要内容的直播形式,包括音乐、舞蹈、游戏、搞笑、访谈等。这种直播形式通常由主播在平台上进行表演,吸引观众的关注和互动。 在娱乐类直播中,主播通常会通过展示自己的才艺、技能或者与观众进行互动来吸引关注。一…

vue-cli创建项目运行报错this[kHandle] = new _Hash(algorithm, xofLen);(完美解决)

1:问题出现的原因 出现这个问题是node.js 的版本问题,因为 node.js V17开始版本中发布的是OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。故此以前的项目在使用 nodejs V17以上版本后会报错。…

flask web学习之flask与http(一)

文章目录 一、请求响应循环二、HTTP请求1. 请求报文2. request对象3. 在flask中处理请求3.1 路由匹配3.2 设置监听的http方法3.3 URL处理 三、请求钩子 一、请求响应循环 每一个web应用都包含这种处理方式,请求-响应循环:客户端发出请求,服务…

rvos 3编译与链接

做下面的两个练习需要: 在vmvb上装一个ubuntu会gcc、vi的基本使用 用vi写一个hello.cgcc -o hello.creadelf -h hello.oreadelf -S hello.oobjdump -S hello.o 用vi编辑一个test.cgcc -c test.creadelf -S test.o.text:代码 .data:初始化的全局变量和静态变量…

MYSQL练题笔记-高级查询和连接-连续出现的数字

一、题目相关内容 1)相关的表和题目 2)帮助理解题目的示例,提供返回结果的格式 二、自己初步的理解 其实这一部分的题目很简单,但是没啥思路啊,怎么想都想不通,还是看题解吧,中等题就是中等题…

openEuler 22.03 升级openssh9.5

yum安装编译依赖的组件 yum install -y rpm-build gcc gcc-c glibc glibc-devel openssl-devel openssl pcre-devel zlib zlib-devel make wget krb5-devel pam-devel libX11-devel libXt-devel initscripts libXt-devel gtk2-devel lrzsz建立编译目录 mkdir -pv /root/rpm…

分布式ID服务实践

背景 分布式场景下需要一个全局 ID 来标识唯一性,比如在单数据库时通过表唯一主键即可实现唯一 ID,分库分表时就需要全局唯一 ID。 业务对唯一 ID 的要求如下: 全局唯一性 不能出现重复的 ID 号,既然是唯一标识,这…

Kubernetes(K8s)安全认证-10

安全认证 访问控制概述 Kubernetes作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。所谓的安全性其实就是保证对Kubernetes的各种客户端进行认证和鉴权操作。 客户端 在Kubernetes集群中,客户端通常有两类: User Acco…

线程池,及7大参数,4大拒绝策略详解

线程池,及7大参数,4大拒绝策略详解 1. 前言 1.1 什么是线程池? 线程池是一种利用池化技术思想来实现的线程管理技术,主要是为了复用线程、便利地管理线程和任务、并将线程的创建和任务的执行解耦开来。我们可以创建线程池来复用…

【4】密评-网络和通信安全测评

0x01 依据 GB/T 39786 -2021《 信息安全技术 信息系统密码应用基本要求》针对等保三级系统要求: 网络和通信层面: a)应采用密码技术对通信实体进行身份鉴别,保证通信实体身份的真实性; b)宜采用密码…

【数电笔记】07-基本和复合逻辑运算

目录 说明: 基本逻辑运算 1. 与运算 (and gate) 2. 或运算 (or gate) 3. 非运算 (not gate ) 复合逻辑运算 1. 与非运算(nand) 2. 或非运算(nor&…

用 taichi 写个软渲染器

用 taichi 写个软渲染器 What 起点是:可以 setup 一个画布,drawPixel(x, y, color),然后渲染到 GUI 或者 .png目标是:加载 obj 模型文件和 .tga 贴图文件,并渲染出来使用 taichi 作为 SIMD 加速 backend复现一些 RTR…

leetcode:统计感冒序列的数目【数学题:组合数含逆元模版】

1. 题目截图 2.题目分析 需要把其分为多个段进行填充 长为k的段,从两端往中间填充的方案数有2 ** (k - 1)种 组合数就是选哪几个数填哪几个段即可 3.组合数含逆元模版 MOD 1_000_000_007 MX 100_000# 组合数模板 fac [0] * MX fac[0] 1 for i in range(1, MX…

伯俊软件CTO陈雨陆:R3全渠道业务中台的OceanBase落地实践

11 月 16 日,OceanBase 在京顺利举办 2023 年度发布会,正式宣布:将持续践行“一体化”产品战略,为关键业务负载打造一体化数据库。其中,“数字化转型升级实践专场”我们有幸邀请到伯俊软件 CTO 陈雨陆进行《OceanBase …

从Intel Cyclone10GX TransceiverPHY 高速收发器认识ATX PLL、FPLL、CMU PLL等PLL

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 在使用Intel Cyclone10GX TransceiverPHY的过程中发现这个IP还是比较复杂的,特别是时钟系统,提到了多种PLL:ATX PLL、FPLL、CMU PLL,这里进行一下扩展学…