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

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

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

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

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

Архітектура

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

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

Воркери несуть відповідальність за виконання завдань і операторів, переданих їм планувальником. Ці завдання обробляють рядки з джерел даних, які дають результати, що повертаються координатору та, зрештою, назад клієнту.

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

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

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

Див. також

Presto (система запитів SQL) Великі дані Обчислення з інтенсивним використанням даних Apache Drill Комп'ютерний кластер

Примітки

Література

Посилання

Trino Software Foundation (раніше Presto Software Foundation)