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à.
OpenSearch Linguaggio di interrogazione strutturato (SQL)
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.
Nota
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.
Per informazioni sugli altri linguaggi di query che è possibile utilizzare, vedere CloudWatch Logs Insights, OpenSearch Service PPL e. CloudWatch Metrics Insights
Comandi SQL supportati
Nota
Nella colonna della query di esempio,
sostituiscila secondo necessità a seconda della fonte di dati su cui stai interrogando. <logGroup>
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 campi 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;