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à.
Questa sezione contiene un'introduzione di base all'interrogazione dei CloudWatch log utilizzando OpenSearch SQL. Fornisce un'opzione familiare se sei abituato a lavorare con database relazionali. OpenSearch SQL offre un sottoinsieme di funzionalità SQL, il che lo rende una buona scelta per eseguire query ad hoc e attività di analisi dei dati. Con OpenSearch SQL, è possibile utilizzare comandi come SELECT, FROM, WHERE, GROUP BY, HAVING e vari altri comandi e funzioni SQL. È possibile eseguire JOINs più gruppi di log, correlare i dati tra gruppi di log utilizzando sottoquery e utilizzare il ricco set di funzioni SQL JSON, matematiche, di stringa, condizionali e di altro tipo per eseguire analisi approfondite sui dati di log e di sicurezza.
È possibile utilizzare OpenSearch SQL solo per le query dei gruppi di log nella Standard Log Class.
Nella tabella seguente sono elencati i comandi e le funzioni SQL supportati nei CloudWatch registri. Per informazioni su tutti i comandi OpenSearch SQL, inclusa la sintassi, vedere Comandi SQL supportati nella OpenSearch Service Developer Guide.
Comandi SQL supportati
Comando o funzione | Query di esempio | Descrizione |
---|---|---|
SELECT |
|
Visualizza i valori proiettati. |
FROM |
|
Clausola incorporata che specifica le tabelle o le viste di origine da cui recuperare i dati, supportando vari tipi di join e sottoquery. |
WHERE |
|
Filtra gli eventi di registro in base ai criteri di campo forniti. |
GROUP BY |
|
I gruppi registrano gli eventi in base alla categoria e trovano la media in base alle statistiche. |
HAVING |
|
Filtra i risultati in base alle condizioni di raggruppamento. |
ORDER BY |
|
Ordina i risultati in base ai campi della clausola ORDER BY. È possibile ordinare in ordine decrescente o crescente. |
JOIN |
|
Unisce i risultati di due tabelle in base a campi comuni. È necessario specificare Inner JOIN o Left Outer Join |
LIMIT |
|
Limita i risultati della query visualizzati alle prime N righe. |
Funzioni stringa |
|
Funzioni integrate in SQL in grado di manipolare e trasformare stringhe e dati di testo all'interno di query SQL. Ad esempio, la conversione di maiuscole e minuscole, la combinazione di stringhe, l'estrazione di parti e la pulizia del testo. |
Funzioni di data |
|
Funzioni integrate per la gestione e la trasformazione dei dati di data e ora nelle query SQL. Ad esempio, date_add, date_format, datediff e current_date. |
Funzioni condizionali |
|
Funzioni integrate che eseguono azioni in base a condizioni specifiche o che valutano le espressioni in modo condizionale. Ad esempio, CASE e IF. |
Funzioni di aggregazione |
|
Funzioni integrate che eseguono calcoli su più righe per produrre un unico valore riepilogato. Ad esempio, SUM, COUNT, AVG, MAX e MIN. |
Funzioni JSON |
|
Funzioni integrate per l'analisi, l'estrazione, la modifica e l'interrogazione di dati in formato JSON all'interno delle query SQL (ad esempio, from_json, to_json, get_json_object, json_tuple) che consentono la manipolazione delle strutture JSON nei set di dati. |
Funzioni di array |
|
Funzioni integrate per lavorare con colonne di tipo array nelle query SQL, che consentono operazioni come l'accesso, la modifica e l'analisi dei dati dell'array (ad esempio, size, explode, array_contains). |
Funzioni finestra |
|
Funzioni integrate che eseguono calcoli su un insieme specifico di righe relative alla riga (finestra) corrente, abilitando operazioni come la classificazione, l'esecuzione dei totali e le medie mobili. Ad esempio, ROW_NUMBER, RANK, LAG e LEAD |
Funzioni di conversione |
|
Funzioni integrate per la conversione dei dati da un tipo all'altro all'interno delle query SQL, che consentono trasformazioni dei tipi di dati e conversioni di formato. Ad esempio, CAST, TO_DATE, TO_TIMESTAMP e BINARY. |
Funzioni di predicato |
|
Funzioni integrate che valutano le condizioni e restituiscono valori booleani (vero/falso) in base a criteri o modelli specifici. Ad esempio, IN, LIKE, BETWEEN, IS NULL ed EXISTS. |
Seleziona più gruppi di log |
|
Consente di specificare più gruppi di log in un'istruzione SELECT |
SQL supportato per le multi-log-group interrogazioni
Per supportare il caso d'uso per l'interrogazione di più gruppi di log in SQL, è possibile utilizzare il logGroups
comando. Utilizzando questa sintassi, è possibile interrogare più gruppi di log specificandoli nel comando FROM.
Sintassi:
`logGroups( logGroupIdentifier: ['LogGroup1','LogGroup2', ...'LogGroupn'] )
In questa sintassi, è possibile specificare fino a 50 gruppi di log nel parametro. logGroupIdentifier
Per fare riferimento ai gruppi di log in un account di monitoraggio, usa ARNs al posto dei LogGroup
nomi.
Query di esempio:
SELECT LG1.Column1, LG1.Column2 from `logGroups(
logGroupIdentifier: ['LogGroup1', 'LogGroup2']
)` as LG1 WHERE LG1.Column1 = 'ABC'
La seguente sintassi che coinvolge più gruppi di log dopo l'FROM
istruzione NON è supportata durante l' CloudWatch interrogazione dei log.
SELECT Column1, Column2 FROM 'LogGroup1', 'LogGroup2', ...'LogGroupn'
WHERE Column1 = 'ABC'
Restrizioni
Le seguenti restrizioni si applicano quando si utilizza OpenSearch SQL per eseguire query in CloudWatch Logs Insights.
È possibile includere un solo JOIN in un'istruzione SELECT.
È supportato solo un livello di sottoquery annidate.
Le query di istruzioni multiple separate da punto e virgola (;) non sono supportate.
Le query contenenti nomi di campo identici ma che differiscono solo per maiuscole e minuscole (ad esempio field1 e) non sono supportate. FIELD1
Ad esempio, la seguente query non è supportata:
Select AWSAccountId, AwsAccountId from LogGroup
Tuttavia, la seguente query è supportata perché il nome del campo (
@logStream
) è identico in entrambi i gruppi di log:Select a.`@logStream`, b.`@logStream` from Table A INNER Join Table B on a.id = b.id
Le funzioni e le espressioni devono operare sui nomi dei campi e far parte di un'istruzione SELECT con un gruppo di log specificato nella clausola FROM.
Ad esempio, questa query non è supportata:
SELECT cos(10) FROM LogGroup
Questa interrogazione è supportata:
SELECT cos(field1) FROM LogGroup
Quando usi i comandi SQL o PPL, racchiudi alcuni campi tra i backtick per interrogarli correttamente. I backtick sono necessari per i campi con caratteri speciali (non alfabetici e non numerici). Ad esempio, racchiude e inserisce i segni di spunta rovesciati
@message
.Operation.Export
Test::Field
Non è necessario racchiudere colonne con nomi puramente alfabetici nei backtick.Query di esempio con campi semplici:
SELECT SessionToken, Operation, StartTime FROM `LogGroup-A` LIMIT 1000;
Query simile con backtick aggiunti:
SELECT `@SessionToken`, `@Operation`, `@StartTime` FROM `LogGroup-A` LIMIT 1000;