Trino
Trino – otwarto‑źródłowy silnik zapytań SQL do analizy danych rozproszonych, pierwotnie rozwijany pod nazwą PrestoSQL. Projekt jest zarządzany przez społeczność oraz fundację Apache i jest szeroko wykorzystywany w środowiskach big data oraz w chmurze.
Historia
Silnik został zapoczątkowany w 2012 roku w firmie Facebook jako Presto, aby umożliwić interaktywne zapytania do dużych zbiorów danych przechowywanych w systemach takich jak Hive czy Hadoop. W 2018 roku społeczność rozwijająca projekt rozdzieliła się od oryginalnego kodu, tworząc odrębny fork nazwany PrestoSQL. W 2020 roku PrestoSQL przyjął nową nazwę – Trino – i od tego momentu jest rozwijany jako niezależny projekt.
Architektura
Trino opiera się na architekturze typu master‑worker, w której:
- Coordinator – centralny węzeł zarządzający przydziałem zapytań, optymalizacją i monitorowaniem.
- Workers – węzły wykonawcze, które przetwarzają fragmenty zapytań w trybie równoległym.
- Connectors – moduły umożliwiające dostęp do różnorodnych źródeł danych, m.in. Hive, Cassandra, Kafka, MySQL oraz systemy plików Amazon S3.
Silnik jest napisany w języku Java, co zapewnia przenośność i łatwą integrację z istniejącymi ekosystemami big data.
Funkcje
Do najważniejszych cech Trino należą:
- Pełna kompatybilność ze standardem SQL (obsługa zapytań ANSI‑SQL, funkcji okienkowych, podzapytań, CTE itp.).
- Możliwość łączenia danych z wielu źródeł w ramach jednego zapytania (tzw. federated query).
- Wysoka wydajność dzięki przetwarzaniu równoległemu i optymalizacji kosztowej.
- Wsparcie dla Apache Lucene i ElasticSearch przy pełnotekstowym wyszukiwaniu.
- Rozbudowane mechanizmy bezpieczeństwa, w tym integracja z Kerberos, LDAP i OAuth2.
- Rozszerzalny system wtyczek, umożliwiający dodawanie własnych connectors i funkcji.
Adopcja i zastosowanie
Trino jest wykorzystywany przez liczne organizacje na całym świecie, w tym:
- platformy e‑commerce do analizowania zachowań użytkowników,
- instytucje finansowe do szybkiego raportowania ryzyka,
- firmy technologiczne do monitorowania logów i danych telemetrycznych,
- projekty badawcze w dziedzinie Data Science i Machine Learning.
Porównanie z innymi systemami
W przeciwieństwie do tradycyjnych hurtowni danych, takich jak Teradata czy Snowflake, Trino nie wymaga wcześniejszego ładowania danych do dedykowanego magazynu. Dzięki temu umożliwia on tzw. query‑on‑read – analizę danych bezpośrednio w miejscu ich przechowywania.
Wersje i wydania
Od momentu przyjęcia nazwy Trino wydano kilka głównych wersji, z których najnowsza (stan na 2024 rok) to Trino 392. Każde wydanie zawiera poprawki bezpieczeństwa, optymalizacje wydajności oraz nowe wtyczki.
Zobacz także
PrestoSQL | Presto | SQL | Apache | Hadoop | Hive | Data Science | Machine Learning