Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
OpenSearch Lenguaje SQL
Esta sección contiene una introducción básica a la consulta de CloudWatch registros mediante OpenSearch SQL. Proporciona una opción familiar si está acostumbrado a trabajar con bases de datos relacionales. OpenSearch SQL ofrece un subconjunto de funciones de SQL, lo que lo convierte en una buena opción para realizar consultas ad hoc y tareas de análisis de datos. Con OpenSearch SQL, puede usar comandos como SELECT, FROM, WHERE, GROUP BY, HAVING y varios otros comandos y funciones de SQL. Puede ejecutar JOINs en grupos de registros, correlacionar datos entre grupos de registros mediante subconsultas y utilizar el amplio conjunto de funciones JSON, matemáticas, de cadenas, condicionales y otras funciones de SQL para realizar análisis eficaces de los datos de registro y de seguridad.
Puede usar OpenSearch SQL solo para consultas de grupos de registros de la clase de registro estándar. Al seleccionar los grupos de registros que desea consultar, puede seleccionar un único grupo de registros, un conjunto de grupos de registros que comparten un prefijo o seleccionar todos los grupos de registros
nota
En la siguiente tabla se enumeran los comandos y funciones de SQL compatibles con CloudWatch los registros. Para obtener información sobre todos los comandos de OpenSearch SQL, incluida la sintaxis, consulte los comandos de SQL compatibles en la Guía para desarrolladores de OpenSearch servicios.
Comandos SQL compatibles
nota
En la columna de consulta de ejemplo,
sustitúyala según sea necesario en función de la fuente de datos que esté consultando. <logGroup>
Comando o función | Consulta de ejemplo | Descripción |
---|---|---|
SELECT |
|
Muestra los valores proyectados. |
FROM |
|
Cláusula integrada que especifica las tablas o vistas de origen desde las que se van a recuperar los datos y admite varios tipos de uniones y subconsultas. |
WHERE |
|
Filtra los eventos del registro en función de los criterios de campo proporcionados. |
GROUP BY |
|
Los grupos registran los eventos según la categoría y encuentran el promedio en función de las estadísticas. |
HAVING |
|
Filtra los resultados en función de las condiciones de agrupación. |
ORDER BY |
|
Ordena los resultados en función de los campos de la cláusula ORDER BY. Puede ordenar en orden descendente o ascendente. |
JOIN |
|
Une los resultados de dos tablas en función de campos comunes. Debe especificarse la combinación interior o la combinación exterior izquierda |
LIMIT |
|
Limita los resultados de la consulta mostrados a las N primeras filas. |
Funciones de cadena |
|
Funciones integradas en SQL que pueden manipular y transformar datos de texto y cadenas de texto en consultas SQL. Por ejemplo, convertir mayúsculas y minúsculas, combinar cadenas, extraer partes y limpiar texto. |
Funciones de datos |
|
Funciones integradas para gestionar y transformar los datos de fecha y hora en las consultas SQL. Por ejemplo, date_add, date_format, datediff y current_date. |
Funciones condicionales |
|
Funciones integradas que realizan acciones en función de condiciones específicas o que evalúan las expresiones de forma condicional. Por ejemplo, CASE e IF. |
Funciones agregadas |
|
Funciones integradas que realizan cálculos en varias filas para generar un único valor resumido. Por ejemplo, SUM, COUNT, AVG, MAX y MIN. |
Funciones JSON |
|
Funciones integradas para analizar, extraer, modificar y consultar datos con formato JSON en consultas SQL (por ejemplo, from_json, to_json, get_json_object, json_tuple) que permiten manipular las estructuras JSON en los conjuntos de datos. |
Funciones de matriz |
|
Funciones integradas para trabajar con columnas de tipo matriz en consultas SQL, lo que permite realizar operaciones como acceder, modificar y analizar los datos de la matriz (p. ej., size, explode, array_contains). |
Funciones de ventana |
|
Funciones integradas que realizan cálculos en un conjunto específico de filas relacionadas con la fila actual (ventana), lo que permite realizar operaciones como la clasificación, los totales acumulados y las medias móviles. Por ejemplo, ROW_NUMBER, RANK, LAG y LEAD |
Funciones de conversión |
|
Funciones integradas para convertir datos de un tipo a otro en las consultas SQL, lo que permite la transformación de los tipos de datos y las conversiones de formato. Por ejemplo, CAST, TO_DATE, TO_TIMESTAMP y BINARY. |
Funciones de predicados |
|
Funciones integradas que evalúan las condiciones y devuelven valores booleanos (verdadero/falso) en función de criterios o patrones específicos. Por ejemplo, IN, LIKE, BETWEEN, IS NULL y EXISTS. |
Seleccione varios grupos de registros |
|
Le permite especificar varios grupos de registros en una sentencia SELECT |
SQL compatible para multi-log-group las consultas
Para respaldar el caso de uso de la consulta de varios grupos de registros en SQL, puede usar el logGroups
comando. Con esta sintaxis, puede consultar varios grupos de registros especificándolos en el comando FROM.
Sintaxis:
`logGroups( logGroupIdentifier: ['LogGroup1','LogGroup2', ...'LogGroupn'] )
Con esta sintaxis, puede especificar hasta 50 grupos de registros en el logGroupIdentifier
parámetro. Para hacer referencia a los grupos de registros de una cuenta de supervisión, ARNs utilícelos en lugar de LogGroup
nombres.
Consulta de ejemplo:
SELECT LG1.Column1, LG1.Column2 from `logGroups( logGroupIdentifier: ['LogGroup1', 'LogGroup2'] )` as LG1 WHERE LG1.Column1 = 'ABC'
La siguiente sintaxis, que incluye varios grupos de registros después de la FROM
sentencia, NO se admite al consultar CloudWatch los registros.
SELECT Column1, Column2 FROM 'LogGroup1', 'LogGroup2', ...'LogGroupn' WHERE Column1 = 'ABC'
Restricciones
Las siguientes restricciones se aplican cuando se utiliza OpenSearch SQL para realizar consultas en CloudWatch Logs Insights.
-
Solo puede incluir un JOIN en una instrucción SELECT.
-
Solo se admite un nivel de subconsultas anidadas.
-
No se admiten consultas de varias sentencias separadas por punto y coma (;).
-
No se admiten consultas que contengan nombres de campo idénticos pero que solo difieran en mayúsculas y minúsculas (como field1 y FIELD1).
Por ejemplo, no se admite la siguiente consulta:
Select AWSAccountId, AwsAccountId from LogGroup
Sin embargo, se admite la siguiente consulta porque el nombre del campo (
@logStream
) es idéntico en ambos grupos de registros:Select a.`@logStream`, b.`@logStream` from Table A INNER Join Table B on a.id = b.id
-
Las funciones y expresiones deben funcionar con los nombres de los campos y formar parte de una instrucción SELECT con un grupo de registros especificado en la cláusula FROM.
Por ejemplo, no se admite esta consulta:
SELECT cos(10) FROM LogGroup
Se admite esta consulta:
SELECT cos(field1) FROM LogGroup
-
Cuando utilice comandos SQL o PPL, encierre determinados campos entre comillas inversas para consultarlos correctamente. Las comillas inversas son necesarias para los campos con caracteres especiales (no alfabéticos ni numéricos). Por ejemplo, incluya y entre comillas invertidas
@message
.Operation.Export
Test::Field
No es necesario incluir los campos con nombres exclusivamente alfabéticos entre comillas inversas.Ejemplo de consulta con campos sencillos:
SELECT SessionToken, Operation, StartTime FROM `LogGroup-A` LIMIT 1000;
Consulta similar con comillas invertidas añadidas:
SELECT `@SessionToken`, `@Operation`, `@StartTime` FROM `LogGroup-A` LIMIT 1000;