CloudTrail Vincoli Lake SQL - AWS CloudTrail

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

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'SELECTistruzione è 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 Presto SELECT SQL validi. Per ulteriori informazioni sulle funzioni e gli operatori SQL supportati, consulta Funzioni e operatori sul sito Web della documentazione di Presto.

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 interrogazioni di esempio con la console CloudTrail .

Funzioni, condizioni e operatori join supportati

Funzioni supportate

CloudTrail Lake supporta tutte le funzioni Presto. Per ulteriori informazioni sulle funzioni supportate, consulta Funzioni e operatori sul sito Web della documentazione di Presto.

CloudTrail Lake non supporta la INTERVAL parola chiave.

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.

UNION UNION ALL EXCEPT INTERSECT LEFT JOIN RIGHT JOIN INNER JOIN

Supporto avanzato per query multi-tabella

CloudTrail Lake supporta un linguaggio di interrogazione avanzato su più archivi di dati di eventi.

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

Di seguito è riportata una query di esempio che utilizza UNION e UNION ALL per trovare gli eventi in base all'ID e al nome dell'evento in tre diversi datastore di eventi, EDS1, EDS2 ed 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

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;