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 Las consultas de Lake son cadenas SQL. 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
sentencia es la siguiente. Se especifica el ID del almacén de datos de eventos (la parte del ID del ARN del almacén de datos de eventos) para el valor FROM
.
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 SELECT
instrucciones, funciones y operadores válidos de Presto SQL. Para obtener más información acerca de los operadores y funciones SQL compatibles, consulte Funciones y operadores
La CloudTrail consola proporciona una serie de 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.
Para obtener información sobre cómo optimizar las consultas, consulteOptimiza las consultas de CloudTrail Lake.
Temas
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
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 eventos EDS1, EDS2, y EDS3. 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;