CloudTrail Lake-SQL-Einschränkungen - AWS CloudTrail

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

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 Presto-SQL-Anweisungen, -Funktionen und -Operatoren. Weitere Informationen zu den unterstützten SQL-Funktionen und -Operatoren finden Sie unter Funktionen und Operatoren auf der Dokumentationswebsite für Presto.

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.

Unterstützte Funktionen, Bedingungs- und Verknüpfungsoperatoren

Unterstützte Funktionen

CloudTrail Lake unterstützt alle Presto-Funktionen. Weitere Informationen zu den unterstützten Funktionen finden Sie unter Funktionen und Operatoren auf der Dokumentationswebsite für Presto.

CloudTrail Lake unterstützt das INTERVAL Schlüsselwort nicht.

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.

UNION UNION ALL EXCEPT INTERSECT LEFT JOIN RIGHT JOIN INNER JOIN

Erweiterte Unterstützung für Abfragen in mehreren Tabellen

CloudTrail Lake unterstützt die erweiterte Abfragesprache für mehrere Ereignisdatenspeicher.

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

Im Folgenden finden Sie eine Beispielabfrage, die UNION und UNION ALL verwendet, um anhand der Ereignis-ID und des Ereignisnamens in den drei Ereignisdatenspeichern EDS1, EDS2 und EDS3 nach Ereignissen zu suchen. 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

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;