

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à.

# CloudTrail Vincoli Lake SQL
<a name="query-limitations"></a>

**Nota**  
AWS CloudTrail Lake non sarà più aperto a nuovi clienti a partire dal 31 maggio 2026. Se desideri utilizzare CloudTrail Lake, registrati prima di tale data. I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [CloudTrail Modifica della disponibilità del lago](cloudtrail-lake-service-availability-change.md).

CloudTrail Le query Lake sono stringhe SQL. Questa sezione contiene informazioni relative alle funzioni, agli operatori e agli schemi supportati.

Sono consentite soltanto istruzioni `SELECT`. Nessuna stringa di query può modificare o alterare i dati.

La sintassi CloudTrail Lake per un'`SELECT`istruzione è la seguente. L'ID del data store degli eventi, la parte ID dell'ARN dell'Event Data Store, è specificato per il valore. `FROM`

```
SELECT [ DISTINCT ] columns [ Aggregate ]
[ FROM table event_data_store_ID]
[ WHERE columns [ Conditions ] ]
[ GROUP BY columns [ DISTINCT | Aggregate ] ]
[ HAVING columns [ Aggregate | Conditions ] ]
[ ORDER BY columns [ Aggregate | ASC | DESC | NULLS | FIRST | LAST ]
[ LIMIT [ INT ] ]
```

CloudTrail Lake supporta tutte le istruzioni, le funzioni e gli operatori Trino `SELECT` SQL validi. Per ulteriori informazioni sulle funzioni e gli operatori SQL supportati, consulta [Funzioni e operatori](https://trino.io/docs/current/functions.html) sul sito Web della documentazione di Trino. 

La CloudTrail console fornisce una serie di query di esempio che possono aiutarti a iniziare a scrivere le tue query. Per ulteriori informazioni, consulta [Visualizza query di esempio con la console CloudTrail](lake-console-queries.md).

Per informazioni su come ottimizzare le query, consulta. [Ottimizza le query su CloudTrail Lake](lake-queries-optimization.md)

**Topics**
+ [Funzioni, condizioni e operatori join supportati](#query-aggregates-condition-operators)
+ [Supporto avanzato per query multi-tabella](#query-advanced-multi-table)

## Funzioni, condizioni e operatori join supportati
<a name="query-aggregates-condition-operators"></a>

**Funzioni supportate**

CloudTrail Lake supporta tutte le funzioni di Trino. Per ulteriori informazioni sulle funzioni supportate, consulta [Funzioni e operatori sul sito web](https://trino.io/docs/current/functions.html) della documentazione di Trino.

**Operatori di condizioni supportati**

Di seguito sono riportati gli operatori di condizione supportati.

```
AND
OR
IN
NOT
IS (NOT) NULL
LIKE
BETWEEN
GREATEST
LEAST
IS DISTINCT FROM
IS NOT DISTINCT FROM
<
>
<=
>=
<>
!=
( conditions ) #parenthesised conditions
```

**Operatori join supportati**

Sono supportati i seguenti operatori `JOIN`: Per ulteriori informazioni sull'esecuzione di query multi-tabella, consulta [Supporto avanzato per query multi-tabella](#query-advanced-multi-table).

```
UNION 
UNION ALL 
EXCEPT 
INTERSECT 
LEFT JOIN 
RIGHT JOIN 
INNER JOIN
```

## Supporto avanzato per query multi-tabella
<a name="query-advanced-multi-table"></a>

CloudTrail Lake supporta un linguaggio di interrogazione avanzato su più archivi di dati di eventi.
+ [`UNION|UNION ALL|EXCEPT|INTERSECT`](#query-multi-table-union)
+ [`LEFT|RIGHT|INNER JOIN`](#query-multi-table-left-right)

Per eseguire la query, utilizza il comando **start-query** nella AWS CLI. Di seguito è riportato un esempio, che utilizza una delle query di esempio in questa sezione.

```
aws cloudtrail start-query
--query-statement "Select eventId, eventName from EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE UNION Select eventId, eventName from EXAMPLEg741-6y1x-9p3v-bnh6iEXAMPLE UNION ALL Select eventId, eventName from EXAMPLEb529-4e8f9l3d-6m2z-lkp5sEXAMPLE ORDER BY eventId LIMIT 10;"
```

La risposta è una stringa `QueryId`. Per ottenere lo stato di una query, esegui `describe-query` utilizzando il valore `QueryId` restituito da `start-query`. Se la query ha esito positivo, è possibile eseguire `get-query-results` per ottenere i risultati.

### `UNION|UNION ALL|EXCEPT|INTERSECT`
<a name="query-multi-table-union"></a>

Di seguito è riportato un esempio di query che utilizza `UNION` e trova gli eventi in base `UNION ALL` all'ID e al nome dell'evento in tre archivi di dati di eventi EDS1, EDS2, e EDS3. I risultati vengono prima selezionati dall'archivio dati di ciascun evento, quindi i risultati vengono concatenati, ordinati per ID evento e limitati a dieci eventi.

```
Select eventId, eventName from EDS1
UNION
Select eventId, eventName from EDS2
UNION ALL
Select eventId, eventName from EDS3 
ORDER BY eventId LIMIT 10;
```

### `LEFT|RIGHT|INNER JOIN`
<a name="query-multi-table-left-right"></a>

Di seguito è riportata una query di esempio che utilizza `LEFT JOIN` per trovare tutti gli eventi di un datastore di eventi denominato `eds2`, mappato a `edsB`, che corrispondono a quelli in un datastore di eventi primario (a sinistra), `edsA`. Gli eventi restituiti si verificano entro il 1° gennaio 2020 compreso e vengono restituiti solo i nomi degli eventi.

```
SELECT edsA.eventName, edsB.eventName, element_at(edsA.map, 'test')
FROM eds1 as edsA 
LEFT JOIN eds2 as edsB
ON edsA.eventId = edsB.eventId 
WHERE edsA.eventtime <= '2020-01-01'
ORDER BY edsB.eventName;
```