Wprowadzenie do Trino
Trino to nowoczesny, otwarty silnik zapytań SQL, który został stworzony z myślą o obsłudze dużych zbiorów danych. Jego architektura i funkcjonalności umożliwiają efektywne przetwarzanie zapytań w różnych środowiskach, w tym w chmurze. Dzięki Trino użytkownicy mogą wykonywać zapytania na danych przechowywanych w rozmaitych systemach plików, takich jak AWS S3, Google Cloud Storage czy Azure Blob Storage, a także na tradycyjnych bazach danych. Silnik ten obsługuje wiele formatów plików, co czyni go wszechstronnym narzędziem dla analityków danych i innych profesjonalistów zajmujących się przetwarzaniem informacji.
Historia i ewolucja Trino
Trino powstało jako rozwidlenie projektu Presto w styczniu 2019 roku, kiedy to jego pierwotni twórcy – Martin Traverso, Dain Sundstrom oraz David Phillips – postanowili stworzyć nową wersję tego silnika. Początkowo projekt funkcjonował pod nazwą Presto, a jego rozwój był wspierany przez fundację Presto Software Foundation. Głównym celem tej organizacji non-profit było dalsze rozwijanie i promowanie otwartego silnika zapytań SQL.
W grudniu 2020 roku projekt przeszedł istotną zmianę i zmienił swoją nazwę na Trino. Wraz z nową nazwą przekształcona została również fundacja, która teraz nosi nazwę Trino Software Foundation. Oprócz zmiany nazwy, wszystkie zasoby związane z projektem PrestoSQL również przeszły rebranding.
Historia Trino jest ściśle związana z jego pierwotnymi twórcami, którzy pracowali nad technologią w firmie Facebook. Tam silnik zyskał popularność wśród analityków danych, którzy wykorzystywali go do przeprowadzania interaktywnych zapytań na dużych zbiorach danych opartych na Apache Hadoop. Trino czerpie ze swojego dziedzictwa i kontynuuje rozwój technologii zapoczątkowanej przez Presto.
Architektura Trino
Trino został napisany w języku Java i charakteryzuje się rozproszoną architekturą, która wykorzystuje model przetwarzania MPP (Massively Parallel Processing). Oznacza to, że obliczenia są rozdzielane pomiędzy wiele węzłów obliczeniowych, co pozwala na efektywne wykorzystanie zasobów i skrócenie czasu odpowiedzi na zapytania. W zależności od źródła danych, Trino może korzystać z istniejących schematów partycjonowania lub samodzielnie partycjonować przetwarzane dane.
W architekturze Trino wyróżniamy dwa podstawowe typy węzłów: koordynator oraz worker. Koordynator pełni kluczową rolę w systemie – przyjmuje zapytania od użytkowników, analizuje ich treść oraz planuje wykonanie obliczeń. Zbierając informacje o dostępnych tabelach oraz metadanych, koordynator korzysta z interfejsów SPI (Service Provider Interface), które są dostarczane przez konektory do różnych źródeł danych.
Workery natomiast są odpowiedzialne za realizację zadań obliczeniowych zleconych przez koordynatora. Ich zadaniem jest przetwarzanie danych pobranych z różnych źródeł zewnętrznych. Po zakończeniu obliczeń wyniki są przesyłane z powrotem do koordynatora, który dostarcza je użytkownikowi. Takie oddzielenie funkcji koordynatora i workerów pozwala na zwiększenie wydajności oraz elastyczności działania całego systemu.
Wsparcie dla wielu źródeł danych
Jednym z kluczowych atutów Trino jest jego zdolność do integracji z różnorodnymi źródłami danych. Silnik wspiera zarówno tradycyjne bazy danych, takie jak MySQL czy PostgreSQL, jak również nowoczesne system
Artykuł sporządzony na podstawie: Wikipedia (PL).