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 SQLEinschränkungen am See
CloudTrail Lake-Abfragen sind SQL Zeichenketten. 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 Ereignisdatenspeichers ARN — ist für den FROM
Wert angegeben.
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 SQL SELECT
Presto-Anweisungen, -Funktionen und -Operatoren. Weitere Informationen zu den unterstützten SQL Funktionen und Operatoren finden Sie unter Funktionen und Operatoren
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.
Themen
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
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 erweiterte Abfragesprachen 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 verwendet, UNION ALL
um Ereignisse anhand ihrer Ereignis-ID und ihres Ereignisnamens in drei Ereignisdatenspeichern,, und EDS1EDS2, zu suchenEDS3. 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;