Trino (motor de consulta SQL)

Origem: Wikipédia, a enciclopédia livre.
Trino (motor de consulta SQL)
Logótipo
Trino (motor de consulta SQL)
Captura de tela
Trino (motor de consulta SQL)
Página oficial trino.io

Trino é um motor de consulta SQL distribuído de código aberto desenhado para consultar grandes conjuntos de dados distribuídos em uma ou mais fontes de dados heterogêneas.[1] O Trino pode consultar datalakes que contêm formatos de arquivo de dados orientados a colunas como ORC ou Parquet[2][3] estando armazenados em diferentes sistemas de armazenamento como HDFS, AWS S3, Google Cloud Storage ou Azure Blob Storage[4] utilizando o Hive[2] e formatos de tabela Iceberg.[3] O Trino também tem a capacidade de executar consultas federadas que consultam tabelas em diferentes fontes de dados, como MySQL, PostgreSQL, Cassandra, Kafka, MongoDB e Elasticsearch .[5] O Trino é publicado sob a licença Apache .[6]

História[editar | editar código-fonte]

Em janeiro de 2019, os criadores originais do Presto, Martin Traverso, Dain Sundstrom e David Phillips, criaram uma variação do projeto Presto. Inicialmente, eles mantiveram o nome Presto e usaram o identificador da Web PrestoSQL para distingui-lo do projeto PrestoDB original. Ao mesmo tempo, eles anunciaram a Presto Software Foundation. A fundação é uma organização sem fins lucrativos dedicada ao avanço do motor de consulta SQL distribuído de código aberto Presto.[7][8]

Presto e Trino foram originalmente projetados e desenvolvidos por Martin, Dain, David e Eric Hwang no Facebook para permitir que analistas de dados executem consultas interativas em seu grande data warehouse no Apache Hadoop . O Trino compartilha os primeiros seis anos de desenvolvimento com o projeto Presto.[9][10] Para saber mais sobre a história anterior do Trino, você pode consultar a seção de história do Presto .

Arquitetura[editar | editar código-fonte]

Visão geral da arquitetura Trino com nós works e coordinator[11]

Trino é escrito em Java .[12] Ele contém dois tipos de nós, um coordinator e um worker .[11]

  • O coordinator é responsável por analisar, otimizar, planejar e agendar uma consulta enviada por um cliente. O coordinator interage com a interface do provedor de serviços (SPI) para obter as tabelas disponíveis, estatísticas de tabelas e outras informações necessárias para realizar suas tarefas.[11]
  • Os workers são responsáveis por executar as tarefas e os operadores fornecidos a eles pelo agendador. Essas tarefas processam linhas das fontes de dados que produzem resultados que são retornados ao coordinator e, por fim, de volta ao cliente.[11]

Trino adere ao padrão ANSI SQL[4] e inclui várias partes das seguintes especificações ANSI: SQL-92, SQL:1999, SQL:2003, SQL:2008, SQL:2011, SQL:2016 .

O Trino oferece suporte ao desacoplamento de computação e armazenamento[4] e pode ser instalado em data center próprios e na nuvem .[13]

Trino tem uma arquitetura MPP de computação distribuída .[11] O Trino primeiro distribui o trabalho por vários workers executando operações de particionamento ad hoc ou contando com partições existentes nos dados do armazenamento de dados subjacente. Depois que esses dados chegam a worker, os dados são processados por operadores de pipeline executados em vários encadeamentos.[11]

Referências[editar | editar código-fonte]

  1. «Overview — Trino 393 Documentation». trino.io. Consultado em 25 de agosto de 2022 
  2. a b «Hive connector — Trino 393 Documentation». trino.io 
  3. a b «Iceberg connector — Trino 393 Documentation». trino.io. Consultado em 25 de agosto de 2022 
  4. a b c Fuller, Matt; Moser, Manfred; Traverso, Martin (2021). «Chapter 1. Introducing Trino». Trino: The Definitive Guide. [S.l.]: O'Reilly Media, Inc, USA. pp. 3–17. ISBN 9781098107710 
  5. «Connectors — Trino 393 Documentation». trino.io. Consultado em 25 de agosto de 2022 
  6. «trinodb/trino LICENSE». Trino. 25 de agosto de 2022. Consultado em 25 de agosto de 2022 
  7. «Presto Software Foundation Launches to Advance Presto Open Source Community». PRWeb. Consultado em 1 de fevereiro de 2019 
  8. «Presto's New Foundation Signals Growth for the Big Data SQL Engine». The New Stack (em inglês). 31 de janeiro de 2019. Consultado em 1 de fevereiro de 2019 
  9. «Contributors to trinodb/trino». GitHub (em inglês). Consultado em 20 de setembro de 2021 
  10. «Contributors to prestodb/presto». GitHub (em inglês). Consultado em 20 de setembro de 2021 
  11. a b c d e f Fuller, Matt; Moser, Manfred; Traverso, Martin (2021). «Chapter 4. Trino Architecture». Trino: The Definitive Guide. [S.l.]: O'Reilly Media, Inc, USA. pp. 43–72. ISBN 9781098107710 
  12. Fuller, Matt; Moser, Manfred; Traverso, Martin (2021). «Chapter 2. Installing and Configuring Trino». Trino: The Definitive Guide. [S.l.]: O'Reilly Media, Inc, USA. pp. 19–24. ISBN 9781098107710 
  13. Fuller, Matt; Moser, Manfred; Traverso, Martin (2021). «Chapter 13. Real-World Examples». Trino: The Definitive Guide. [S.l.]: O'Reilly Media, Inc, USA. pp. 267–272. ISBN 9781098107710