CloudTrail SQLRestricciones del lago - AWS CloudTrail

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.

CloudTrail SQLRestricciones del lago

CloudTrail Las consultas de Lake son SQL cadenas. En esta sección, se proporciona información sobre las funciones, los operadores y los esquemas compatibles.

Únicamente son compatibles sentencias SELECT. Ninguna cadena de consulta puede modificar o mutar los datos.

La sintaxis de CloudTrail Lake para una SELECT declaración es la siguiente. El ID del banco de datos de eventos (la parte del ID del banco de datos de eventosARN) se especifica para el FROM valor.

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 admite todas las SQL SELECT instrucciones, funciones y operadores de Presto válidos. Para obtener más información sobre las SQL funciones y los operadores compatibles, consulte Funciones y operadores en el sitio web de documentación de Presto.

La CloudTrail consola proporciona varios ejemplos de consultas que pueden ayudarle a empezar a escribir sus propias consultas. Para obtener más información, consulte Vea ejemplos de consultas con la CloudTrail consola.

Funciones, condiciones y operadores join compatibles

Funciones compatibles

CloudTrail Lake es compatible con todas las funciones de Presto. Para obtener más información acerca de otras funciones compatibles, consulte Funciones y operadores en el sitio web de documentación de Presto.

CloudTrail Lake no admite la INTERVAL palabra clave.

Operadores de condición compatibles

Se admiten los siguientes operadores de condición.

AND OR IN NOT IS (NOT) NULL LIKE BETWEEN GREATEST LEAST IS DISTINCT FROM IS NOT DISTINCT FROM < > <= >= <> != ( conditions ) #parenthesised conditions

Operadores join compatibles

Se admiten los siguientes operadores JOIN. Para obtener más información acerca de la ejecución de consultas en varias tablas, consulte Soporte avanzado de consultas en varias tablas.

UNION UNION ALL EXCEPT INTERSECT LEFT JOIN RIGHT JOIN INNER JOIN

Soporte avanzado de consultas en varias tablas

CloudTrail Lake admite un lenguaje de consulta avanzado en varios almacenes de datos de eventos.

Para ejecutar la consulta, utilice el comando start-query de la AWS CLI. A continuación, se presenta un ejemplo en el que se utiliza una de las consultas de muestra de esta sección.

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 respuesta es una cadena QueryId. Para obtener el estado de una consulta, ejecute describe-query utilizando el valor QueryId devuelto por start-query. Si la consulta se realiza correctamente, se puede ejecutar get-query-results para obtener resultados.

UNION|UNION ALL|EXCEPT|INTERSECT

El siguiente es un ejemplo de consulta que usa UNION y UNION ALL busca eventos por su ID y nombre de evento en tres almacenes de datos de eventosEDS1,EDS2, yEDS3. Los resultados se seleccionan primero de cada almacén de datos de eventos y, a continuación, se concatenan, se ordenan por ID de evento y se limitan a diez eventos.

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

El siguiente es un ejemplo de consulta que utiliza LEFT JOIN para buscar todos los eventos de un almacén de datos de eventos denominado eds2, asignados a edsB y que coincidan con los de un almacén de datos de eventos principal (izquierda), edsA. Los eventos devueltos se producen el 1 de enero de 2020 o antes, y solo se devuelven los nombres de los eventos.

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;