

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Storia e design di Trino
<a name="emr-trino-intro-history"></a>

Trino è specializzata nell'interrogazione di set di dati di grandi dimensioni da molte fonti diverse. Trino può accedere e interrogare HDFS in un caso d'uso tradizionale per i big data, ma può anche interrogare fonti aggiuntive come database relazionali e database NoSQL. Trino è nato originariamente come fork del motore di query Presto, nel 2019. Da allora, è stato sviluppato indipendentemente dal codice base Presto. 

Per ulteriori informazioni sul motore di query Trino e su come viene utilizzato, visitate il sito Web di [Trino](https://trino.io/). [Per leggere la documentazione sorgente di Trino, consulta Trino Overview.](https://trino.io/docs/current/overview.html)

## Concetti di architettura
<a name="emr-trino-intro-architecture"></a>

Trino può eseguire query rapide ed efficienti perché elabora i dati in parallelo su un cluster. È stato progettato pensando all'interrogazione di un data lake, in quanto è specializzato per query su grandi volumi di dati, in genere in casi d'uso che coinvolgono Hadoop e HDFS. Ma può anche interrogare i database relazionali tradizionali. Per ulteriori informazioni, consulta [Architecture](https://trino.io/docs/current/overview/concepts.html#architecture) in the *Trino* Documentation.

### Componenti di Trino
<a name="emr-trino-key-components"></a>

Trino ha alcuni componenti chiave dell'architettura che interagiscono per velocizzare l'esecuzione delle query. Avere una conoscenza pratica di questi aspetti è utile quando si ottimizza il cluster per ottenere prestazioni migliori:
+ Il **coordinatore** è responsabile dell'orchestrazione delle query. Analizza e ottimizza le query SQL in entrata, genera piani di esecuzione, assegna attività ai nodi di lavoro e raccoglie e assembla i risultati delle query. Inoltre, monitora l'utilizzo delle risorse e tiene traccia dello stato dei nodi di lavoro. Per ulteriori informazioni, consulta [Coordinator nella documentazione](https://trino.io/docs/current/overview/concepts.html#coordinator) di *Trino*.
+ **I nodi** di lavoro gestiscono l'elaborazione dei dati per le query. Dopo che il coordinatore ha assegnato le attività, i lavoratori recuperano i dati, eseguono le operazioni necessarie, come unioni e aggregazioni, e scambiano dati intermedi con altri lavoratori. [https://trino.io/docs/current/overview/concepts.html#worker](https://trino.io/docs/current/overview/concepts.html#worker)
+ I **connettori** sono plugin che consentono a Trino di connettersi e interrogare varie fonti di dati. Ogni connettore sa come accedere e recuperare i dati dalla sua fonte, come Amazon S3, Apache Hive o database relazionali. Questi connettori mappano i dati di origine alla struttura dello schema di Trino.
+ Un **catalogo** è una raccolta logica di schemi e tabelle associati a un connettore specifico. Definiti nel coordinatore, i cataloghi consentono a Trino di trattare diverse fonti di dati come un unico namespace. In questo modo gli utenti possono interrogare più fonti insieme, come Hive e MySQL, in modo unificato nella stessa query.
+ **I client** come la CLI di Trino si connettono tramite driver JDBC e ODBC al coordinatore Trino per inviare query SQL. Il coordinatore gestisce il ciclo di vita delle query, fornendo i risultati al cliente per ulteriori analisi o report.

### Esecuzione di query
<a name="emr-trino-queries"></a>

*Per capire come Trino prende le istruzioni SQL e le esegue come query, consultate i concetti di Trino nella documentazione di [Trino](https://trino.io/docs/current/overview/concepts.html#query-execution-model).*