View a markdown version of this page

クエリ処理キャパシティを管理する - Amazon Athena

クエリ処理キャパシティを管理する

キャパシティ予約を使用して、Athena で実行するクエリ専用のサーバーレス処理キャパシティを確保することができます。キャパシティ予約を使用することで、ワークロード管理機能で重要なワークロードの優先順位付け、制御、スケーリングを簡単に行えます。例えば、キャパシティを追加して同時に実行できるクエリの数を増やしたり、そのキャパシティを使用できるワークロードを選択したり、ワークロード間でキャパシティを共有したりすることができます。キャパシティはサーバーレスで、 Athena によって完全に管理され、必要な限り長く維持されます。セットアップは簡単で、SQL クエリを変更する必要はありません。

クエリの処理キャパシティを確保するには、キャパシティ予約を作成し、必要なデータ処理ユニット (DPU) の数を指定し、予約に 1 つ以上のワークグループを割り当てます。

キャパシティ予約を使用する際に、ワークグループは重要な役割を果たします。ワークグループによって、クエリを論理的グルーピングやユースケースにまとめることができます。キャパシティ予約によって、キャパシティをワークグループに選択的に割り当て、各ワークグループのクエリの動作と請求方法を制御できます。ワークグループの詳細については、「ワークグループを使用してクエリのアクセスとコストを制御する」を参照してください。

ワークグループをキャパシティ予約に割り当てると、リザーブドキャパシティで実行されて DDL と DML のクエリクォータにはカウントされないため、これらのクエリを優先できます。例えば、時間的制約のある財務報告クエリに使用されるワークグループにキャパシティを割り当てて、それらのクエリを別のワークグループ内の重要度の低いクエリから隔離することができます。これにより、重要なワークロードに対するクエリ実行が予測可能になり、他のワークロードは独立して実行できます。

キャパシティ予約とワークグループを組み合わせて使用すると、さまざまな要件に対応することができます。例としていくつかのシナリオを次に挙げます。

  • 重要なクエリを分離 – 重要なワークロードに必要なキャパシティを必要なときに確保するには、キャパシティ予約を作成し、そのワークグループをキャパシティ予約に割り当てます。割り当てたワークグループのクエリのみが、そのキャパシティ予約の処理容量を使用します。例えば、運用アプリケーションをサポートするクエリの実行の信頼性を確保するには、それらのクエリの運用ワークグループをキャパシティ予約に割り当てます。クエリを開発するときには、予約に関連付けられていない別個のワークグループを使用し、準備が整ったら運用ワークグループにクエリを移動させます。

  • 同様のワークロード間でキャパシティを共有 – 1 つの予約のキャパシティを複数のワークロードで共有できます。これにより、これらのワークロードの予測可能なコストを達成し、それらの同時実行を制御できます。例えば、クエリ実行開始時刻の遅延に耐えられるようにワークロードをスケジュールした場合、それらのワークグループを 1 つの予約に割り当てることができます。これにより、同じアカウントで実行されるインタラクティブクエリの DDL クエリクォータと DML クエリクォータが解放され、これらのクエリが最小限の遅延で開始されます。

DPU を理解する

キャパシティはデータ処理ユニット (DPU) で測定されます。DPU は、Athena がユーザーに代わってデータにアクセスして処理するために使用するサーバーレスのコンピューティングリソースとメモリリソースです。通常は、1 つの DPU で 4 個の vCPU と 16 GB のメモリを使用できます。保持している DPU の数によって、同時に実行できるクエリ数が決まります。例えば、DPU 256 個の予約では、DPU 128 個の予約の約 2 倍の同時クエリ数に対応できます。

キャパシティ要件の見積もりについては、「キャパシティ要件を決定する」を参照してください。料金については、「Amazon Athena の料金」を参照してください。

考慮事項と制限事項

  • スキャンされたデータに基づいて、キャパシティ予約とクエリ単位の請求を同じアカウントで同時に使用できます。

  • キャパシティ予約で実行されるクエリは、DDL クエリクォータと DML クエリクォータにはカウントされません。

  • キャパシティが他のクエリの処理でビジー状態になっている場合、新たに送信されたクエリはキャパシティが利用可能になるまでキューに入れられます。キューの最大許容時間は 10 時間です。

  • 1 つのキャパシティ予約に一度に割り当てることができるワークグループは 1 個です。1 つの予約に合計 20 個のワークグループを割り当てることができます。予約に複数のワークグループを割り当てると、キャパシティはワークグループ間で共有され、送信順序に基づいてクエリに割り当てられます。Athena がクエリにキャパシティを動的に割り当てる方法では、それが原因で実行順序にばらつきが生じる場合があります。

  • Athena は、複雑さに基づいて DML クエリに 4~124 個の DPU を自動的に割り当てます。DDL クエリはそれぞれ 4 個の DPU を消費します。詳細については、次のトピックを参照してください。

  • 各キャパシティ予約に必要な最小限の DPU 数は 4 個です。料金については、「Amazon Athena の料金」を参照してください。

  • アカウントとリージョンごとに、最大合計 1,000 個の DPU で最大 100 個のキャパシティ予約を作成できます。ユースケースに 1,000 個を超える DPU が必要な場合は、athena-feedback@amazon.com までご連絡ください。

  • キャパシティのリクエストは保証されないため、完了するまでに最大 30 分かかる場合があります。キャパシティを別のキャパシティ予約、AWS アカウント、または AWS リージョン に転送することはできません。

  • DPUConsumed CloudWatch メトリクスは予約ごとではなく、ワークグループごとに対応します。そのため、ワークグループをある予約から別の予約に移動すると、そのワークグループが最初の予約に属していたときのデータが DPUConsumed メトリクスに含まれます。Athena の CloudWatch メトリクスの使用に関する詳細については、「CloudWatch による Athena クエリメトリクスのモニタリング」を参照してください。

  • 予約に割り当てられているワークグループを削除するには、まず予約からワークグループを削除します。

  • Apache Spark を使用するように設定されたワークグループはサポートされていません。

  • キャパシティ予約は次の商用 AWS リージョン で利用できます。

    • イスラエル (テルアビブ)

    • 中東 (アラブ首長国連邦)

    • 中東 (バーレーン)

    • アジアパシフィック (ニュージーランド)