CloudTrail SQLRestrições do lago - AWS CloudTrail

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á.

CloudTrail SQLRestrições do lago

CloudTrail As consultas do Lake são SQL sequências de caracteres. Esta seção fornece informações sobre funções, operadores e esquemas compatíveis.

Somente instruções SELECT são permitidas. Nenhuma string de consulta pode alterar ou modificar dados.

A sintaxe do CloudTrail Lake para uma SELECT declaração é a seguinte. O ID do armazenamento de dados do evento — a parte do ID do armazenamento de dados do evento ARN — é especificado para o 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 O Lake suporta todas as SQL SELECT instruções, funções e operadores válidos do Presto. Para obter mais informações sobre as SQL funções e operadores suportados, consulte Funções e operadores no site de documentação do Presto.

O CloudTrail console fornece vários exemplos de consultas que podem ajudar você a começar a escrever suas próprias consultas. Para obter mais informações, consulte Veja exemplos de consultas com o console CloudTrail .

Funções, condições e operadores de junção compatíveis

Funções compatíveis

CloudTrail O Lake suporta todas as funções do Presto. Para obter mais informações sobre as funções compatíveis, consulte Funções e operadores no site de documentação do Presto.

Operadores de condição compatíveis

Os operadores de condição a seguir são compatíveis.

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

Operadores de junção compatíveis

Os operadores JOIN a seguir são compatíveis. Para obter mais informações sobre a execução de consultas em várias tabelas, veja Compatibilidade avançada para consultas com várias tabelas.

UNION UNION ALL EXCEPT INTERSECT LEFT JOIN RIGHT JOIN INNER JOIN

Compatibilidade avançada para consultas com várias tabelas

CloudTrail O Lake suporta linguagem de consulta avançada em vários armazenamentos de dados de eventos.

Para executar sua consulta, use o comando start-query na AWS CLI. Veja a seguir um exemplo que usa uma das amostras de consultas nesta seção.

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;"

A resposta é uma string de QueryId. Para obter o status de uma consulta, execute describe-query usando o valor QueryId retornado por start-query. Se a consulta tiver êxito, você poderá executar get-query-results para obter os resultados.

UNION|UNION ALL|EXCEPT|INTERSECT

Veja a seguir um exemplo de consulta que usa UNION e UNION ALL para encontrar eventos pelo ID e nome do evento em três armazenamentos de dados de eventos EDS1EDS2,, EDS3 e. Os resultados são selecionados primeiramente de cada armazenamento de dados de eventos e, em seguida, os resultados são concatenados, ordenados por ID do evento e limitados a dez 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

Veja a seguir um exemplo de consulta que usa LEFT JOIN para encontrar todos os eventos de um armazenamento de dados de eventos chamado eds2, mapeado para edsB, que correspondam aos eventos de um armazenamento primário (à esquerda) de dados de eventos, edsA. Os eventos retornados ocorrem até 1.º de janeiro de 2020 e somente os nomes dos eventos são retornados.

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;