As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
OpenSearch Linguagem SQL
Esta seção contém uma introdução básica à consulta de CloudWatch registros usando OpenSearch SQL. Ele fornece uma opção familiar se você estiver acostumado a trabalhar com bancos de dados relacionais. OpenSearch O SQL oferece um subconjunto da funcionalidade SQL, o que o torna uma boa opção para realizar consultas ad-hoc e tarefas de análise de dados. Com o OpenSearch SQL, você pode usar comandos como SELECT, FROM, WHERE, GROUP BY, HAVING e vários outros comandos e funções SQL. Você pode executar JOINs vários grupos de registros, correlacionar dados entre grupos de registros usando subconsultas e usar o rico conjunto de funções JSON, matemáticas, de sequência de caracteres, condicionais e outras funções SQL para realizar análises poderosas em dados de log e de segurança.
Você pode usar OpenSearch SQL somente para consultas de grupos de registros na Classe de Registro Padrão. Ao selecionar quais grupos de registros consultar, você pode selecionar um único grupo de registros, um conjunto de grupos de registros que compartilham um prefixo ou selecionar todos os grupos de registros
nota
A tabela a seguir lista os comandos e funções SQL compatíveis com os CloudWatch registros. Para obter informações sobre todos os comandos OpenSearch SQL, incluindo a sintaxe, consulte Comandos SQL compatíveis no OpenSearch Service Developer Guide.
Comandos SQL compatíveis
nota
Na coluna de consulta de exemplo, substitua
conforme necessário, dependendo da fonte de dados que você está consultando. <logGroup>
Comando ou função | Consulta de exemplo | Descrição |
---|---|---|
SELECT |
|
Exibe os valores projetados. |
FROM |
|
Cláusula incorporada que especifica a (s) tabela (s) de origem ou visualizações das quais recuperar dados, oferecendo suporte a vários tipos de junções e subconsultas. |
WHERE |
|
Filtra eventos de log com base nos critérios de campo fornecidos. |
GROUP BY |
|
Os grupos registram eventos com base na categoria e encontram a média com base nas estatísticas. |
HAVING |
|
Filtra os resultados com base nas condições de agrupamento. |
ORDER BY |
|
Ordena os resultados com base nos campos da cláusula ORDER BY. Você pode classificar em ordem decrescente ou crescente. |
JOIN |
|
Une os resultados de duas tabelas com base em campos comuns. A junção interna ou a junção externa esquerda devem ser especificadas |
LIMIT |
|
Limita os resultados da consulta exibidos às primeiras N linhas. |
Funções de string |
|
Funções integradas no SQL que podem manipular e transformar dados de string e texto em consultas SQL. Por exemplo, converter maiúsculas e minúsculas, combinar sequências de caracteres, extrair partes e limpar texto. |
Funções de data |
|
Funções integradas para manipular e transformar dados de data e data e hora em consultas SQL. Por exemplo, date_add, date_format, datediff e current_date. |
Funções condicionais |
|
Funções integradas que executam ações com base em condições especificadas ou que avaliam expressões condicionalmente. Por exemplo, CASE e IF. |
Funções agregadas |
|
Funções integradas que realizam cálculos em várias linhas para produzir um único valor resumido. Por exemplo, SUM, COUNT, AVG, MAX e MIN. |
Funções JSON |
|
Funções integradas para analisar, extrair, modificar e consultar dados formatados em JSON em consultas SQL (por exemplo, from_json, to_json, get_json_object, json_tuple), permitindo a manipulação de estruturas JSON em conjuntos de dados. |
Funções de array |
|
Funções integradas para trabalhar com colunas do tipo array em consultas SQL, permitindo operações como acessar, modificar e analisar dados de matriz (por exemplo, size, explode, array_contains). |
Funções de janela |
|
Funções integradas que realizam cálculos em um conjunto específico de linhas relacionadas à linha (janela) atual, permitindo operações como classificação, totais acumulados e médias móveis. Por exemplo, ROW_NUMBER, RANK, LAG e LEAD |
Funções de conversão |
|
Funções integradas para converter dados de um tipo para outro em consultas SQL, permitindo transformações de tipos de dados e conversões de formato. Por exemplo, CAST, TO_DATE, TO_TIMESTAMP e BINARY. |
Funções de predicado |
|
Funções integradas que avaliam condições e retornam valores booleanos (verdadeiro/falso) com base em critérios ou padrões especificados. Por exemplo, IN, LIKE, BETWEEN, IS NULL e EXISTS. |
Selecionar vários grupos de registros |
|
Permite que você especifique vários grupos de registros em uma instrução SELECT |
SQL compatível para multi-log-group consultas
Para oferecer suporte ao caso de uso para consultar vários grupos de registros no SQL, você pode usar o logGroups
comando. Usando essa sintaxe, você pode consultar vários grupos de registros especificando-os no comando FROM.
Sintaxe:
`logGroups( logGroupIdentifier: ['LogGroup1','LogGroup2', ...'LogGroupn'] )
Nessa sintaxe, você pode especificar até 50 grupos de registros no logGroupIdentifier
parâmetro. Para referenciar grupos de registros em uma conta de monitoramento, use ARNs em vez de LogGroup
nomes.
Consulta de exemplo:
SELECT LG1.Column1, LG1.Column2 from `logGroups( logGroupIdentifier: ['LogGroup1', 'LogGroup2'] )` as LG1 WHERE LG1.Column1 = 'ABC'
A sintaxe a seguir, envolvendo vários grupos de registros após a FROM
declaração, NÃO é compatível com a consulta CloudWatch de registros.
SELECT Column1, Column2 FROM 'LogGroup1', 'LogGroup2', ...'LogGroupn' WHERE Column1 = 'ABC'
Restrições
As restrições a seguir se aplicam quando você usa OpenSearch SQL para fazer consultas no CloudWatch Logs Insights.
-
Você pode incluir somente um JOIN em uma instrução SELECT.
-
Somente um nível de subconsultas aninhadas é suportado.
-
Não há suporte para várias consultas de instruções separadas por ponto e vírgula (;).
-
Consultas contendo nomes de campo idênticos, mas que diferem somente em maiúsculas e minúsculas (como field1 e FIELD1) não são suportadas.
Por exemplo, a consulta a seguir não é compatível:
Select AWSAccountId, AwsAccountId from LogGroup
No entanto, a consulta a seguir é compatível porque o nome do campo (
@logStream
) é idêntico nos dois grupos de registros:Select a.`@logStream`, b.`@logStream` from Table A INNER Join Table B on a.id = b.id
-
Funções e expressões devem operar em nomes de campo e fazer parte de uma instrução SELECT com um grupo de registros especificado na cláusula FROM.
Por exemplo, essa consulta não é suportada:
SELECT cos(10) FROM LogGroup
Essa consulta é suportada:
SELECT cos(field1) FROM LogGroup
-
Ao usar comandos SQL ou PPL, coloque certos campos em acentos cravos para consultá-los com êxito. Os cravos são necessários para campos com caracteres especiais (não alfabéticos e não numéricos). Por exemplo, coloque
@message
Operation.Export
, e entreTest::Field
cravos. Você não precisa colocar campos com nomes puramente alfabéticos entre acentos.Exemplo de consulta com campos simples:
SELECT SessionToken, Operation, StartTime FROM `LogGroup-A` LIMIT 1000;
Consulta semelhante com acentos crônicos anexados:
SELECT `@SessionToken`, `@Operation`, `@StartTime` FROM `LogGroup-A` LIMIT 1000;