このページでは、BigQuery Reservations に関連するコンセプトについて説明します。
管理プロジェクト
BigQuery Reservations は、Google Cloud 組織全体の BigQuery リソースを安全に一元管理するのに役立ちます。この作業は、1 つの Google Cloud プロジェクトを管理プロジェクトとして選択することによって行います。
管理プロジェクトを選択するには、対象のプロジェクトで BigQuery Reservations API を有効にします。
このプロジェクトによって、BigQuery Reservations リソースの所有権が作成および管理されます。また、このプロジェクトはこれらのリソースに対する請求のプライマリ ソースになります。これらのリソースは、割り当てを使用することによって、組織内の他のすべてのプロジェクトと共有できます。新しいプロジェクトを作成する際には、わかりやすい名前を付けることをおすすめします。
管理プロジェクトによって所有されている予約を使用するプロジェクトでは、分析(つまり、クエリ実行)は請求対象外ですが、ストレージの利用に対しては継続的な請求が別途発生します。
コミットメント
容量コミットメントとは、コミットした期間(たとえば、1 か月)を最小使用期間としてコンピューティング容量を購入する方法です。BigQuery のコンピューティング容量は、スロットという形で測定されます。これは、CPU、RAM、分散メモリの動的容量を含むリソース バンドルです。容量コミットメントは、コミットメント期間が終了するまで削除できません。
組織はコミットメントを定額料金で利用することもできます。詳細については、BigQuery の定額料金をご覧ください。
動作
- 最小コミットメント サイズは 500 スロットであり、500 スロット単位で増やすことができ、上限はありません。
- コミットメントの数に上限はありません。
- 容量コミットメントはリージョン リソースです。あるリージョンで購入したコミットメントを他のリージョンで使用することや、コミットメントをリージョン間で移動することはできません。
- コミットメントをアップグレードすることはできません。コミットメントの正味容量を増やすには、追加のコミットメントを購入する必要があります。
- コミットメントの購入が正常に終了した時点から 1 秒単位で課金されます。
- コミットメントはいつでも、より長期のコミットメント タイプに変換できます。詳細については、長期契約コミットメント タイプへのコミットメントの変換をご覧ください。
プロパティ
- スロット数(作成時に指定する):
- 対象コミットメントのスロット数。
- コミットメント プラン(作成時に指定する):
- コミットメントの期間。
- 状態(システムによって生成され、作成時には指定しない):
- 保留中: リクエストした容量のプロビジョニング待ちです。
- アクティブ: リクエストした容量のプロビジョニングが終了し、使用を開始できます。
- コミットメント終了時間(コミットメント プランに基づいてシステムによって生成される)
- 更新プラン(年間プランの場合のみ):
- プランの終了時間が経過したときに年間プランが変換されるコミットメント タイプを示します。
コミットメント プラン
BigQuery には、Flex コミットメント プラン、月間コミットメント プラン、年間コミットメント プランが用意されています。
- Flex Slots:
- コミットメントがアクティブになってから 60 秒間はキャンセルできません。
- 60 秒経過後はいつでもキャンセルでき、コミットメントがアクティブである期間中にのみ秒単位で課金されます。
- 例:
- 10 月 5 日の 6:00:00 にコミットメントを購入した場合、その時点から課金が開始されます。
- 10 月 5 日の 6:01:00 まではキャンセルできません。
- 10 月 5 日の 6:01:01 にキャンセルした場合は、61 秒間に対して課金されます(10 月 5 日の 6:00:00 から 10 月 5 日の 6:01:01 まで)。
- キャンセルされるまで、課金が継続されます。
- 月間コミットメント:
- コミットメントがアクティブになってから 30 日間はキャンセルできません。
- 30 日経過後はいつでもキャンセルでき、コミットメントがアクティブである期間中にのみ秒単位で課金されます。
- 例:
- 10 月 5 日の 6:00:00 にコミットメントを購入した場合、その時点から課金が開始されます。
- 11 月 4 日の 6:00:00 まではキャンセルできません。
- 11 月 5 日の 7:10:10 にキャンセルした場合、30 日間プラス 1 日と 1 時間 10 分 10 秒の分だけ課金されます(10 月 5 日の 6:00:00 から 11 月 5 日の 7:10:10 まで)。
- キャンセルされるまで、課金が継続されます。
- 年間コミットメント:
- コミットメントがアクティブになってから 365 日間はキャンセルできません。
- コミットメントの終了日までに、年間コミットメントを更新するか、月間コミットメントまたは、Flex コミットメントに切り替えることができます。詳細については、コミットメントの更新をご覧ください。
- 例:
- 2019 年 10 月 5 日の 6:00:00 にコミットメントを購入した場合、その時点から課金が開始されます。
- 2020 年 10 月 4 日の 6:00:00 まではキャンセルも更新もできません(2020 年はうるう年です)。
- 2020 年 10 月 4 日の 6:00:00 になるまでに自動更新を選択した場合は、2020 年 10 月 4 日の 6:00:00 にコミットメントが更新され、さらに 1 年間有効になります。
- 2020 年 10 月 4 日の 6:00:00 になるまでに Flex コミットメントへの更新を選択した場合は、2020 年 10 月 4 日の 6:00:00 にコミットメントが Flex コミットメントに切り替わります。この時点で Flex スロット料金が課金されるようになりますが、いつでもキャンセルできます。
- 2020 年 10 月 4 日の 6:00:00 になるまでに月間コミットメントへの更新を選択した場合は、2020 年 10 月 4 日の 6:00:00 にコミットメントが月間コミットメントに切り替わります。この時点で月間コミットメント料金が課金されるようになりますが、30 日間はキャンセルできません。
トライアルのスロット
- コミットメントがアクティブになってから 182 日間はキャンセルできません。
- 182 日が経過すると、コミットメントは Flex Slots に変換されます。いつでも解約でき、コミットメントが有効であった秒数だけ請求されます。Flex Slots の料金が請求されるようになります。
- 例:
- 2020 年 10 月 5 日の 6:00:00 にコミットメントを購入した場合、その時点から課金が開始されます。
- 2021 年 4 月 5 日 6:00:00 まではキャンセルできません。
- 2021 年 4 月 5 日 6:00:00 にコミットメントが Flex Slots のスロットに変換されます。Flex Slots のスロットの料金が請求されるようになり、いつでもキャンセルできるようになります。
コミットメントの更新
年間コミットメントの場合は、コミットメントの終了日までに、終了後の対応を選択できます。次のオプションが用意されています。
- さらに 1 年間の更新をする。
- 更新をせず、コミットメントの終了日に、月間コミットメントに切り替える。月額料金が課金されるようになりますが、いつでもキャンセルできます。
- 更新をせず、コミットメントの終了日に Flex コミットメントに切り替える。Flex スロット料金が課金されるようになりますが、いつでもキャンセルできます。
更新オプションの選択方法については、コミットメントの更新をご覧ください。
コミットメントのキャンセル
コミットメントを作成した後、コミットメントの終了時刻までキャンセルすることはできません。
コミットメントを誤って購入した場合や、コミットメントを構成したときに間違えた場合は、Cloud Billing サポートにお問い合わせください。
予約
予約を使用すると、容量コミットメントをワークロード、チーム、および部門に分割できます。各予約は分離された BigQuery スロットプールとして機能し、アイドル状態の容量は予約間でシームレスに共有されるという利点があります。
スロットを初めて購入すると、default
という予約が自動的に作成されます。default
の予約は特別なものではなく、便宜上作成されたものです。ユーザーは、独自の予約を別途作成し、それらに専用スロットを割り当てることができます。
プロジェクト、フォルダ、組織を予約に割り当てます。予約に割り当てられたプロジェクトから開始されたジョブは、その予約から実行されます。複数のプロジェクトを予約に割り当てた場合、スロットは最初にプロジェクト間で均等に分配され、次にプロジェクトのジョブ内で分配されます。
アイドル スロット
予約で実行中のクエリでは、他の予約のアイドル スロットを自動的に使用します。アイドル状態の容量は、必要に応じてすぐに親の予約に戻されます。これにより、アイドル状態の容量を使用しているクエリが中断されることはありません。これは自動的にリアルタイムで行われます。
この機能を無効にして、個々の予約に明示的にプロビジョニングされたスロットのみが使用されるようにするには、ignore_idle_slots
を true に設定します。
未割り当てスロット
未割り当てスロットとは、コミット済みでも特定の予約に割り当てられていないスロットを指します。未割り当てスロットは無駄にはならず、予約間でのスロット共有で説明されているルールに従って、プロジェクト間、クエリ間で均等に共有されます。
予約内でのスロットの共有
BigQuery スケジューラでは、スロットを予約内の実行中のクエリとともにプロジェクト間で均等に共有し、さらに特定のプロジェクトの複数ジョブでも均等に共有するように自動的に調整されます。スケジューラでは最終的な公平性を確保します。このため、短期的にいくつかのジョブでスロットの割り当てが不均衡になることがあっても、スケジューラによって最終的には是正されます。スケジューラの目的は、過度に積極的で、実行中のタスクのエビクションが発生する(結果としてスロット時間が無駄になる)状況と、過度に寛容で、ジョブでのタスク実行が長引く(結果としてスロット時間の割り当てが不均衡になる)状況の中間を見つけることです。
この公平性ポリシーの影響で重要なジョブに頻繁に支障が生じる場合は、追加の予約を作成し、スロット数を確保することを検討してください(ワークロード管理をご覧ください)。このジョブを新しい予約に割り当てて、最小限の数のスロットが提供されるようにできます。
予約間でのスロット共有
未割り当てスロットまたはアイドル スロットの共有は、予約での作業の共有の仕組みと非常によく似ています。スロットは、実行中のクエリが含まれるすべてのプロジェクト間、ignore_idle_slots
が false に設定されているすべての予約間、それらのプロジェクトのクエリ間で均等に共有されます。
アイドル状態のスロットまたは未割り当てのスロットは、同じ管理プロジェクトで作成された予約間でのみ共有されます。予約の作成に別の管理プロジェクトを使用した場合、その管理プロジェクトの予約間でアイドル状態のスロットが共有されることはありません。
割り当て
割り当てとは、プロジェクト、フォルダ、および組織を予約に割り当てることです。予約に割り当てたプロジェクトでは、その予約を使用してジョブが処理されます。
割り当ては次の 2 つのジョブタイプに対して行うことができます。
- ジョブタイプ
QUERY
の割り当ては、クエリ(SQL、DDL、DML、BigQuery ML クエリなど)用の予約割り当てを示します。 - ジョブタイプ
PIPELINE
の割り当ては、バッチ読み込みおよび抽出ジョブで予約を使用する必要があることを示します。
予約割り当ては、プロジェクト、フォルダ、または組織のいずれかのレベルで行うことができます。フォルダレベルまたは組織レベルでの割り当ては、該当するフォルダ内または組織内のすべてのプロジェクトで特定の予約が使用されることを示します。最下位レベルでの割り当ては上位レベルでの割り当てよりも優先されるため、特定のプロジェクトによって、デフォルトの組織割り当てが無視される可能性があります。
予約割り当てには次の要素があります。
- 割り当て先: 予約に割り当てられた容量を使用してクエリを実行できる予約ユーザー。プロジェクト、フォルダ、または組織のいずれかになります。
- ジョブタイプ: 割り当てが適用されるジョブのタイプ。