

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 Restrições do Lake SQL
<a name="query-limitations"></a>

**nota**  
AWS CloudTrail O Lake não estará mais aberto a novos clientes a partir de 31 de maio de 2026. Se você gostaria de usar o CloudTrail Lake, inscreva-se antes dessa data. Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [CloudTrail Alteração na disponibilidade do lago](cloudtrail-lake-service-availability-change.md).

CloudTrail As consultas Lake são cadeias de caracteres SQL. 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 de eventos (a parte ID do ARN do armazenamento de dados de eventos) é especificado pelo 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 O Lake oferece suporte a todas as `SELECT` instruções, funções e operadores válidos do Trino SQL. Para obter mais informações sobre as funções e os operadores SQL compatíveis, consulte [Funções e operadores](https://trino.io/docs/current/functions.html) no site de documentação do Trino. 

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](lake-console-queries.md).

Para obter mais informações sobre como otimizar as consultas, consulte [Otimize as consultas CloudTrail do Lake](lake-queries-optimization.md).

**Topics**
+ [Funções, condições e operadores de junção compatíveis](#query-aggregates-condition-operators)
+ [Compatibilidade avançada para consultas com várias tabelas](#query-advanced-multi-table)

## Funções, condições e operadores de junção compatíveis
<a name="query-aggregates-condition-operators"></a>

**Funções compatíveis**

CloudTrail O Lake suporta todas as funções do Trino. Para obter mais informações sobre as funções compatíveis, consulte [Funções e operadores](https://trino.io/docs/current/functions.html) no site de documentação do Trino.

**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](#query-advanced-multi-table).

```
UNION 
UNION ALL 
EXCEPT 
INTERSECT 
LEFT JOIN 
RIGHT JOIN 
INNER JOIN
```

## Compatibilidade avançada para consultas com várias tabelas
<a name="query-advanced-multi-table"></a>

CloudTrail O Lake suporta linguagem de consulta avançada em vários armazenamentos de dados de eventos.
+ [`UNION|UNION ALL|EXCEPT|INTERSECT`](#query-multi-table-union)
+ [`LEFT|RIGHT|INNER JOIN`](#query-multi-table-left-right)

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`
<a name="query-multi-table-union"></a>

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 EDS1 EDS2,, 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`
<a name="query-multi-table-left-right"></a>

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