

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# CloudTrail Lake SQL の制約
<a name="query-limitations"></a>

**注記**  
AWS CloudTrail Lake は、2026 年 5 月 31 日以降、新規のお客様に公開されなくなります。CloudTrail Lake を使用する場合は、その日付より前にサインアップします。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[CloudTrail Lake の可用性の変更](cloudtrail-lake-service-availability-change.md)」を参照してください。

CloudTrail Lake クエリは SQL 文字列です。このセクションでは、サポートされている関数、演算子、スキーマについて説明します。

`SELECT` ステートメントのみが許可されます。データを変更できるクエリ文字列はありません。

`SELECT` ステートメントの CloudTrail Lake 構文は次のとおりです。イベントデータストア ID (イベントデータストアの ARN の ID 部分) を、`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 は、有効な Trino SQL `SELECT` ステートメント、関数、演算子をすべてサポートしています。サポートされている SQL 関数と演算子の詳細については、Trino ドキュメントウェブサイトの「[関数と演算子](https://trino.io/docs/current/functions.html)」を参照してください。

CloudTrail コンソールには、独自クエリの作成を開始するために役立つ、サンプルクエリが多数用意されています。詳細については、「[CloudTrail コンソールにサンプルクエリを表示する](lake-console-queries.md)」を参照してください。

クエリを最適化する方法については、「[CloudTrail Lake クエリを最適化する](lake-queries-optimization.md)」を参照してください。

**Topics**
+ [サポートされている関数、条件、結合演算子](#query-aggregates-condition-operators)
+ [高度なマルチテーブルクエリのサポート](#query-advanced-multi-table)

## サポートされている関数、条件、結合演算子
<a name="query-aggregates-condition-operators"></a>

**サポートされている関数**

CloudTrail Lake は、Trino 関数をすべてサポートしています。サポートされている関数の詳細については、Trino ドキュメントウェブサイトの「[関数と演算子](https://trino.io/docs/current/functions.html)」を参照してください。

**サポートされている条件演算子**

以下は、サポートされている条件演算子です。

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

**サポートされている結合演算子**

以下は、サポートされている `JOIN` 演算子です。複数テーブルクエリの実行の詳細については、「[高度なマルチテーブルクエリのサポート](#query-advanced-multi-table)」を参照してください。

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

## 高度なマルチテーブルクエリのサポート
<a name="query-advanced-multi-table"></a>

CloudTrail Lake は、複数のイベントデータストアで高度なクエリ言語をサポートしています。
+ [`UNION|UNION ALL|EXCEPT|INTERSECT`](#query-multi-table-union)
+ [`LEFT|RIGHT|INNER JOIN`](#query-multi-table-left-right)

クエリを実行するには、 AWS CLIの **start-query** コマンドを使用します。このセクションのサンプルクエリのいずれかを使用した例を次に示します。

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

レスポンスは `QueryId` 文字列です。クエリのステータスを取得するには、`start-query` によって返された `QueryId` 値を使用して `describe-query` を実行します。クエリが成功した場合は、`get-query-results` を実行して結果を取得できます。

### `UNION|UNION ALL|EXCEPT|INTERSECT`
<a name="query-multi-table-union"></a>

3 つのイベントデータストア (EDS1、EDS2、および EDS3) 内のイベント ID とイベント名でイベントを検索するために `UNION` と `UNION ALL` を使用するサンプルクエリを次に示します。結果は最初に各イベントデータストアから選択されてから連結され、イベント ID 順に並べられます。10 個のイベントに制限されます。

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

`edsB` にマッピングされた `eds2` という名前のイベントデータストアから、プライマリ (左) イベントデータストア `edsA` 内のイベントと一致するすべてのイベントを検索するために `LEFT JOIN` を使用するサンプルクエリを次に示します。返されるイベントは 2020 年 1 月 1 日以前に発生したものであり、イベント名のみが返されます。

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