Amazon Athena での SQL クエリに関する考慮事項と制約事項 - Amazon Athena

Amazon Athena での SQL クエリに関する考慮事項と制約事項

Athena でクエリを実行するときは、以下の考慮事項と制限事項に留意してください。

  • ストアドプロシージャ – ストアドプロシージャはサポートされていません。

  • パーティションの最大数CREATE TABLE AS SELECT (CTAS) ステートメントで作成できるパーティションの最大数は 100 です。詳細については、「CREATE TABLE AS」を参照してください。回避策については、「CTAS および INSERT INTO を使用して 100 パーティションの制限を回避する」を参照してください。

  • サポートされていないステートメント – サポートされていないステートメントには次が含まれます。Athena でサポートされていない DDL ステートメントの完全なリストについては、「サポートされない DDL」を参照してください。

    • CREATE TABLE LIKE はサポートされていません。

    • DESCRIBE INPUTDESCRIBE OUTPUT はサポートされていません。

    • MERGE ステートメントは、トランザクションテーブル形式でのみサポートされています。詳細については、「MERGE INTO」を参照してください。

    • UPDATE ステートメントはサポートされません。

    • DELETE FROM はサポートされていません。

  • Trino および Presto コネクタTrino コネクタも Presto コネクタもサポートされていません。データソースの接続には Amazon Athena の横串検索を使用します。詳細については、「Amazon Athena 横串検索を使用する」(Amazon Athena フェデレーティッドクエリを使用する) を参照してください。

  • 多数のパーティションがあるテーブルでのタイムアウト – Athena は、何千ものパーティションがあるテーブルをクエリするときにタイムアウトする場合があります。これは、テーブルに string 型ではないパーティションが多数ある場合に発生する可能性があります。string 型を使用すると、Athena はメタストアレベルでパーティションをプルーニングします ただし、他のデータ型を使用する場合、Athena はサーバー側のパーティションをプルーニングします。パーティションの数が多いほど、このプロセスにかかる時間が長くなり、クエリがタイムアウトする可能性が高くなります。この問題を解決するには、パーティションの型を string に設定して、Athena がメタストアレベルでパーティションをプルーニングするようにします。これにより、オーバーヘッドが軽減され、クエリがタイムアウトするのを防ぐことができます。

  • S3 Glacier のサポート — 復元された Amazon S3 Glacier オブジェクトをクエリするための詳細については、「復元された Amazon S3 Glacier オブジェクトをクエリする」を参照してください。

  • 非表示として扱われるファイル – Athena は、アンダースコア (_) またはドット (.) で始まるソースファイルを非表示として扱います。この制限を回避するには、ファイルの名前を変更します。

  • 行または列サイズの制限 – 単一の行、またはその列を 32 MB を超えるサイズにすることはできません。この制限は、例えば CSV ファイルまたは JSON ファイルの行に 300 MB の単一の列が含まれる場合に超過する可能性があります。この制限を超えると、「Line too long in text file」というエラーメッセージが表示されることもあります。この制限を回避するには、行内の列の合計データサイズが 32 MB 未満であることを確認してください。

  • LIMIT 句の最大値LIMIT 句に指定できる最大行数は

    9223372036854775807。ORDER BY を使用するとき、LIMIT 句でサポートされる行の最大数は 2147483647 です。この制限を超えると、NOT_SUPPORTED: ORDER BY LIMIT > 2147483647 is not supported (NOT_SUPPORTED: ORDER BY LIMIT > 2147483647 はサポートされていません) というエラーメッセージが表示されます。

  • information_schemainformation_schema のクエリのパフォーマンスは、AWS Glue メタデータの量が少ない、または中程度の場合に最も高くなります。大量のメタデータがある場合は、エラーが発生する可能性があります。AWS Glue メタデータのための information_schema データベースのクエリについては、「AWS Glue Data Catalog をクエリする」を参照してください。

  • 配列初期化— Java の制限により、254 個を超える引数を持つ配列を Athena で初期化することはできません。

  • 非表示メタデータ列 — Hive または Iceberg の非表示メタデータ列 $bucket$file_modified_time$file_size、および $partition は、ビューでサポートされていません。Athena の $pathメタデータ列の使用方法については「Amazon S3 内にあるソースデータのファイルの場所の取得 」を参照してください。

クエリ文字列の最大長、クエリタイムアウトのクォータ、アクティブな DML クエリ数のクォータについては、「Service Quotas」を参照してください。