Trino (silnik zapytań SQL)
Trino jest otwartym rozproszonym silnikiem zapytań SQL zaprojektowanym pod kątem dużych zbiorów danych[1]. Przy pomocy Trino można wykonywać zapytania w oparciu o pliki przechowane w chmurowych systemach plików takich jak AWS S3, Google Cloud Storage, Azure Blob Storage czy HDFS. Trino wspiera wiele formatów plików, w tym kolumnowe takie jak Parquet czy ORC[2][3], jak również różne formaty tabel, w tym Hive[3], Iceberg[2] i Delta[4]. Inne źródła danych wspierane przez Trino to między innymi MySQL, PostgreSQL, Cassandra, Kafka, MongoDB czy ElasticSearch[5]. Pojedyncze zapytanie może pobierać dane z wielu tabel pochodzących z różnych systemów źródłowych. Trino jest dostępne na licencji Apache[6]. HistoriaW styczniu 2019 oryginalni autorzy Presto, Martin Traverso, Dain Sundstrom i David Phillips utworzyli fork projektu Presto. Początkowo nowo powstały projekt używał oryginalnej nazwy, Presto. Domena sieciowa korzystała z nazwy PrestoSQL dla odróżnienia od projektu źródłowego, który korzystał z nazwy PrestoDB. Równocześnie autorzy założyli fundację Presto Software Foundation. Fundacja jest organizacją not-for-profit, której celem jest wspieranie rozwoju otwartego silnika zapytań SQL Presto[7][8]. W grudniu 2020 PrestoSQL zmieniło nazwę na Trino. Jednocześnie fundacja zmieniła nazwę na Trino Software Foundation. Kod źródłowy i inne zasoby powiązane z projektem PrestoSQL również podlegały zmianie nazwy[9]. Presto i Trino były oryginalnie zaprojektowane i rozwijane przez Martina, Daina, Davida i Erica Hwanga w firmie Facebook. Technologia była tam używana przez analityków danych. Pozwalała na wykonywanie interaktywnych zapytań na dużej hurtowni danych bazującej na projekcie Apache Hadoop. Trino bazuje na pierwszych sześciu latach rozwijania systemu Presto[10][11]. Możesz dowiedzieć się więcej o wczesnej historii Trino kierując się do anglojęzycznego artykułu poświęconego historii Presto. Architektura![]() Trino jest napisane w języku programowania Java[13]. Trino ma rozproszoną architekturę i realizuje obliczenia z wykorzystaniem MPP[12]. Trino rozprasza pracę pomiędzy wiele węzłów obliczeniowych, które partycjonują przetwarzane dane lub polegają na już istniejących schematach partycjonowania, narzuconych przez źródło danych. Po tym jak dane zostaną pobrane przez węzeł obliczeniowych są przetwarzane strumieniowo, w wielu wątkach, przez sekwencje operatorów[12]. W Trino są dwa typy węzłów obliczeniowych: koordynator i worker[13].
Trino jest zgodne ze standardami ANSI SQL[14]. Realizuje podzbiór następujących specyfikacji ANSI: SQL-92, SQL:1999, SQL:2003, SQL:2008, SQL:2011, SQL:2016. Trino wspiera separacje obliczeń i danych i może być uruchamiane zarówno w prywatnych centrach danych jak i w publicznych chmurach obliczeniowych. Zobacz teżPrzypisy
Linki zewnętrzne |