翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
CloudTrail Lake SQL の制約
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 は、有効な Presto SELECT
ステートメント、関数、演算子をすべてサポートしています。サポートされている SQL 関数と演算子の詳細については、Presto ドキュメントウェブサイトの「関数と演算子
CloudTrail コンソールには、独自クエリの作成を開始するために役立つ、サンプルクエリが多数用意されています。詳細については、「CloudTrail コンソールにサンプルクエリを表示する」を参照してください。
クエリを最適化する方法については、「」を参照してくださいCloudTrail Lake クエリの最適化。
サポートされている関数、条件、結合演算子
サポートされている関数
CloudTrail Lake は、Presto 関数をすべてサポートしています。サポートされている関数の詳細については、Presto ドキュメントウェブサイトの「関数と演算子
サポートされている条件演算子
以下は、サポートされている条件演算子です。
AND OR IN NOT IS (NOT) NULL LIKE BETWEEN GREATEST LEAST IS DISTINCT FROM IS NOT DISTINCT FROM < > <= >= <> != ( conditions ) #parenthesised conditions
サポートされている結合演算子
以下は、サポートされている JOIN
演算子です。複数テーブルクエリの実行の詳細については、「高度なマルチテーブルクエリのサポート」を参照してください。
UNION UNION ALL EXCEPT INTERSECT LEFT JOIN RIGHT JOIN INNER JOIN
高度なマルチテーブルクエリのサポート
CloudTrail Lake は、複数のイベントデータストアで高度なクエリ言語をサポートしています。
クエリを実行するには、 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
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
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;