

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# CloudTrail Lake-SQL-Einschränkungen
<a name="query-limitations"></a>

**Anmerkung**  
AWS CloudTrail Lake wird ab dem 31. Mai 2026 nicht mehr für Neukunden geöffnet sein. Wenn Sie CloudTrail Lake nutzen möchten, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [CloudTrail Änderung der Verfügbarkeit von Seen](cloudtrail-lake-service-availability-change.md).

CloudTrail Lake-Abfragen sind SQL-Zeichenfolgen. Dieser Abschnitt enthält Informationen zu den unterstützten Funktionen, Operatoren und Schemas.

Nur `SELECT`-Anweisungen sind zulässig. Keine Abfragezeichenfolgen können Daten ändern.

Die CloudTrail Lake-Syntax für eine `SELECT` Anweisung lautet wie folgt. Die ID des Ereignisdatenspeichers — der ID-Teil des ARN des Ereignisdatenspeichers — ist für den Wert angegeben. `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 unterstützt alle gültigen `SELECT` Trino-SQL-Anweisungen, -Funktionen und -Operatoren. Weitere Informationen zu den unterstützten SQL-Funktionen und -Operatoren finden Sie unter [Funktionen und Operatoren](https://trino.io/docs/current/functions.html) auf der Trino-Dokumentationswebsite. 

Die CloudTrail Konsole bietet eine Reihe von Beispielabfragen, die Ihnen den Einstieg in das Schreiben eigener Abfragen erleichtern können. Weitere Informationen finden Sie unter [Beispielabfragen mit der CloudTrail Konsole anzeigen](lake-console-queries.md).

Informationen zur Optimierung Ihrer Abfragen finden Sie unter[CloudTrail Lake-Abfragen optimieren](lake-queries-optimization.md).

**Topics**
+ [Unterstützte Funktionen, Bedingungs- und Verknüpfungsoperatoren](#query-aggregates-condition-operators)
+ [Erweiterte Unterstützung für Abfragen in mehreren Tabellen](#query-advanced-multi-table)

## Unterstützte Funktionen, Bedingungs- und Verknüpfungsoperatoren
<a name="query-aggregates-condition-operators"></a>

**Unterstützte Funktionen**

CloudTrail Lake unterstützt alle Trino-Funktionen. Weitere Informationen zu den unterstützten Funktionen finden Sie unter [Funktionen und Operatoren](https://trino.io/docs/current/functions.html) auf der Website zur Trino-Dokumentation.

**Unterstützte Bedingungsoperatoren**

Folgende Bedingungsoperatoren werden unterstützt:

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

**Unterstützte Verknüpfungsoperatoren**

Folgende `JOIN`-Operationen werden unterstützt: Weitere Informationen zum Ausführen von Abfragen in mehreren Tabellen finden Sie unter [Erweiterte Unterstützung für Abfragen in mehreren Tabellen](#query-advanced-multi-table).

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

## Erweiterte Unterstützung für Abfragen in mehreren Tabellen
<a name="query-advanced-multi-table"></a>

CloudTrail Lake unterstützt die erweiterte Abfragesprache für mehrere Ereignisdatenspeicher.
+ [`UNION|UNION ALL|EXCEPT|INTERSECT`](#query-multi-table-union)
+ [`LEFT|RIGHT|INNER JOIN`](#query-multi-table-left-right)

Um eine Abfrage auszuführen, verwenden Sie den Befehl **start-query** in der AWS CLI. Im Folgenden finden Sie ein Beispiel, bei dem eine der Beispielabfragen aus diesem Abschnitt zum Einsatz kommt.

```
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;"
```

Die Antwort ist eine `QueryId`-Zeichenfolge. Um den Status einer Abfrage zu abzurufen, führen Sie `describe-query` mit dem von `start-query` zurückgegebenen Wert `QueryId` aus. Wenn die Abfrage erfolgreich ist, können Sie `get-query-results` ausführen, um Ergebnisse zu erzielen.

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

Im Folgenden finden Sie eine Beispielabfrage, die `UNION` und verwendet, `UNION ALL` um Ereignisse anhand ihrer Ereignis-ID und ihres Ereignisnamens in drei Ereignisdatenspeichern,, und EDS1 EDS2, zu suchen EDS3. Die Ergebnisse werden zunächst aus den einzelnen Ereignisdatenspeichern ausgewählt. Anschließend werden die Ergebnisse verkettet, nach Ereignis-ID sortiert und auf zehn Ereignisse begrenzt.

```
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>

Im Folgenden finden Sie eine Beispielabfrage, die mithilfe von `LEFT JOIN` nach allen Ereignissen aus einem `edsB` zugeordneten Ereignisdatenspeicher namens `eds2` sucht, die denen im primären (linken) Ereignisdatenspeicher `edsA` entsprechen. Die zurückgegebenen Ereignisse erfolgen am oder vor dem 1. Januar 2020 und es werden nur die Ereignisnamen zurückgegeben.

```
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;
```