Trino — розподілена система запитів SQL з відкритим вихідним кодом, призначена для роботи з великими наборами даних, що розподілені по одному або кількох різнорідних джерелах даних.[3] Вона може обробляти дані які містять відкриті формати файлів даних, таких як ORC чи Parquet що знаходяться на різних джерелах даних, таких як HDFS, AWS S3, Google Cloud Storage або Azure Blob Storage[4], використовуючи Hive[5] і формати таблиць Iceberg[6] .

Trino
Тип Сховище_даних
Автори Мартін Траверсо, Дайн Сундстром, Девід Філліпс, Ерік Хванг
Розробники Piotr Findeisend, David A. Phillipsd і Martin Traversod
Операційна система Cross-platform
Мова програмування Java
Ліцензія Apache License 2.0
Стандарт(и) ANSI SQL, JDBC
Репозиторій Trino Repository
Вебсайт trino.io

Trino також має можливість робити запити SQL для об'єднання даних з різних джерел, таких як MySQL, PostgreSQL, Cassandra, Kafka, MongoDB та Elasticsearch.[7] Trino випущено під ліценцією Apache.

Історія ред.

У січні 2019 року оригінальні творці Presto Мартін Траверсо, Дайн Сундстром і Девід Філліпс створили форк проекту Presto. Спочатку вони зберегли назву Presto та використовували веб-ідентифікатор PrestoSQL, щоб відрізнити його від оригінального проекту PrestoDB. Одночасно вони оголосили про Presto Software Foundation. Фонд є некомерційною організацією, яка займається просуванням механізму розподілених SQL-запитів Presto з відкритим кодом.[8][9]

У грудні 2020 року PrestoSQL було перейменовано в Trino. Trino Software Foundation, кодова база та всі інші активи PrestoSQL були перейменовані в рамках ребрендингу.[10]

Presto та Trino спочатку були розроблені Мартіном, Дейном, Девідом і Еріком Хванг з Facebook, щоб дозволити аналітикам даних виконувати інтерактивні запити до великого сховища даних у Apache Hadoop . Trino розділяє перші шість років розробки з проектом Presto.[11][12] Щоб дізнатися більше про попередню історію Trino, ви можете звернутися до розділу історії Presto .

Архітектура ред.

 
Огляд архітектури Trino з координатором і працівниками[13]

Trino написано мовою Java .[14] Він містить два типи вузлів: координатор і воркер .[13]

  • Координатор відповідає за парсинг, аналіз, оптимізацію, планування та підготовкою до виконання, надісланого клієнтом. Координатор взаємодіє з інтерфейсом постачальника послуг (SPI), щоб отримати доступні таблиці, статистику таблиць та іншу інформацію, необхідну для виконання своїх завдань.[13]
  • Воркери несуть відповідальність за виконання завдань і операторів, переданих їм планувальником. Ці завдання обробляють рядки з джерел даних, які дають результати, що повертаються координатору та, зрештою, назад клієнту.[13]

Trino дотримується стандарту ANSI SQL[4] і включає різні частини наступних специфікацій ANSI: SQL-92, SQL:1999, SQL:2003, SQL:2008, SQL:2011, SQL:2016 .

Trino підтримує поділ обчислень і сховищ[4] і може бути розгорнуто як на власних серверах, так і в хмарі .[15]

Trino має архітектуру розподілених обчислень MPP .[13] Trino спочатку розподіляє роботу між кількома воркерами, запускаючи спеціальні операції розділення або покладаючись на існуючі розділи в даних основного сховища даних. Після того, як ці дані досягають воркер, вони обробляються за допомогою конвеєрних операторів, які виконуються в кількох потоках.[13]

Див. також ред.

Примітки ред.

  1. https://trino.io/blog/2020/12/27/announcing-trino.html
  2. https://www.computerworld.com/article/2485668/facebook-goes-open-source-with-query-engine-for-big-data.html
  3. Overview — Trino 393 Documentation. trino.io. Процитовано 25 серпня 2022.
  4. а б в Fuller, Matt; Moser, Manfred; Traverso, Martin (2021). Chapter 1. Introducing Trino. Trino: The Definitive Guide. O'Reilly Media, Inc, USA. с. 3—17. ISBN 9781098107710.
  5. Hive connector — Trino 393 Documentation. trino.io.
  6. Iceberg connector — Trino 393 Documentation. trino.io. Процитовано 25 серпня 2022.
  7. Connectors — Trino 393 Documentation. trino.io. Процитовано 25 серпня 2022.
  8. Presto Software Foundation Launches to Advance Presto Open Source Community. PRWeb. Процитовано 1 лютого 2019.
  9. Presto's New Foundation Signals Growth for the Big Data SQL Engine. The New Stack (амер.). 31 січня 2019. Процитовано 1 лютого 2019.
  10. Traverso, Martin; Sundstrom, Dain; Phillips, David (27 грудня 2020). We're rebranding PrestoSQL as Trino. trino.io (англ.). Процитовано 7 вересня 2021.
  11. Contributors to trinodb/trino. GitHub (англ.). Процитовано 20 вересня 2021.
  12. Contributors to prestodb/presto. GitHub (англ.). Процитовано 20 вересня 2021.
  13. а б в г д е Fuller, Matt; Moser, Manfred; Traverso, Martin (2021). Chapter 4. Trino Architecture. Trino: The Definitive Guide. O'Reilly Media, Inc, USA. с. 43—72. ISBN 9781098107710.
  14. Fuller, Matt; Moser, Manfred; Traverso, Martin (2021). Chapter 2. Installing and Configuring Trino. Trino: The Definitive Guide. O'Reilly Media, Inc, USA. с. 19—24. ISBN 9781098107710.
  15. Fuller, Matt; Moser, Manfred; Traverso, Martin (2021). Chapter 13. Real-World Examples. Trino: The Definitive Guide. O'Reilly Media, Inc, USA. с. 267—272. ISBN 9781098107710.

Література ред.

  • Fuller, Matt; Moser, Manfred; Traverso, Martin. Trino: the definitive guide: SQL at any scale, on any storage, in any environment (вид. First). Sebastopol: O'Reilly Media. ISBN 9781098107710.

Посилання ред.