以前のスロット コミットメントの購入と管理
BigQuery Reservation API を使用すると、専用スロットを購入し(コミットメントと呼ぶ)、スロットのプールを作成し(予約と呼ぶ)、それらの予約にプロジェクト、フォルダ、組織を割り当てることができます。
容量コミットメントは、最小期間の BigQuery コンピューティング容量の購入です。エディションを使用して予約を作成する場合、容量コミットメントの購入は任意ですが、費用を節約できます。
コミットメントは、リージョン リソースです。あるリージョンやマルチリージョンで購入したコミットメントは、他のリージョンやマルチリージョンでは使用できません。コミットメントを、リージョン間や、リージョンとマルチリージョン間で移動することはできません。
Reservations API を有効にする
BigQuery Reservation API は既存の BigQuery API とは異なり、独立して有効にする必要があります。詳細については、API の有効化と無効化をご覧ください。
- この API の名前は「BigQuery Reservations API」です。
- BigQuery Reservation API のエンドポイントは
bigqueryreservation.googleapis.com
です。
スロットの購入
容量を最小限に抑えるために、容量コミットメントを購入できます。これにより割引が適用され、費用を節約できます。具体的な費用の詳細については、BigQuery の料金をご覧ください。
必要な権限
容量コミットメントを作成するには、次の Identity and Access Management(IAM)権限が必要です。
- コミットメントの所有権を持つ管理プロジェクトに対する
bigquery.capacityCommitments.create
。
この権限は、次の各 IAM 事前定義ロールに含まれています。
BigQuery Admin
BigQuery Resource Admin
BigQuery での IAM のロールの詳細については、事前定義ロールと権限をご覧ください。
容量コミットメントを作成する
コミットメントは、リージョン リソースです。あるリージョンやマルチリージョンで購入したコミットメントは、他のリージョンやマルチリージョンでは使用できません。 コミットメントを、リージョン間や、リージョンとマルチリージョン間で移動することはできません。
コンソール
Google Cloud コンソールで [BigQuery] ページに移動します。
ナビゲーション パネルで [容量管理] セクションに移動します。
[コミットメントを作成] をクリックします。
[設定] で次の操作を行います。
- ロケーションを選択します。
- [容量モデル] セクションで容量モデルを選択します。
- [コミット期間] で、コミットメント プランを指定します。
[年間] コミットメントを購入する場合は、[コミットメントが終了した後の更新プラン] を選択します。
- 更新しないで月間コミットメントに切り替える(デフォルト)。年間コミットメントの期限が切れると、月間コミットメントに変更されます。
- 毎年更新。年間コミットメントの期限が切れると、さらに 1 年間の年間コミットメントとして更新されます。
- 更新しないで Flex Slots に切り替える。年間コミットメントの期限が切れると、Flex Slots コミットメントに変更されます。
詳細については、コミットメントをご覧ください。
購入するスロット数を入力します。
[次へ] をクリックします。
購入費用の見積もりを確認します。
[確認して送信] の下で、
- 「CONFIRM」と入力して購入を確定します。
- [購入] をクリックして、スロットを購入します。
コミットメントを表示するには、[スロット コミットメントを表示] をクリックします。容量がプロビジョニングされると、リクエストされた容量コミットメントのステータスが緑色になります。
初めて容量を購入する場合は、default
予約が作成されます。
SQL
容量コミットメントを作成するには、CREATE CAPACITY
DDL ステートメントを使用します。
Google Cloud コンソールで [BigQuery] ページに移動します。
クエリエディタで次のステートメントを入力します。
CREATE CAPACITY `ADMIN_PROJECT_ID.region-LOCATION.COMMITMENT_ID` OPTIONS ( slot_count = NUMBER_OF_SLOTS, plan = 'PLAN_TYPE');
次のように置き換えます。
[
実行] をクリックします。
クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。
bq
スロットを購入するには、--capacity_commitment
フラグを指定して bq mk
コマンドを使用します。
bq mk \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --capacity_commitment=true \ --plan=PLAN_TYPE \ --slots=NUMBER_OF_SLOTS
次のように置き換えます。
容量コミットメントの表示
必要な権限
コミットメントを表示するには、次の Identity and Access Management(IAM)権限が必要です。
- コミットメントの所有権を持つ管理プロジェクトに対する
bigquery.capacityCommitments.list
。
この権限は、次の各 IAM 事前定義ロールに含まれています。
BigQuery Admin
BigQuery Resource Admin
BigQuery Resource Editor
BigQuery Resource Viewer
BigQuery User
BigQuery での IAM のロールの詳細については、事前定義ロールと権限をご覧ください。
プロジェクトごとの容量コミットメントの表示
プロジェクトごとに容量コミットメントを表示するには:
コンソール
Google Cloud コンソールで [BigQuery] ページに移動します。
ナビゲーション パネルで [容量管理] セクションに移動します。
[スロット コミットメント] タブをクリックします。容量コミットメントは、[コミットメント] の下のテーブルに一覧表示されます。
SQL
管理プロジェクトのコミットメントを表示するには、INFORMATION_SCHEMA.CAPACITY_COMMITMENTS_BY_PROJECT
ビューに対してクエリを実行します。
Google Cloud コンソールで [BigQuery] ページに移動します。
クエリエディタで次のステートメントを入力します。
SELECT capacity_commitment_id FROM `region-LOCATION`.INFORMATION_SCHEMA.CAPACITY_COMMITMENTS_BY_PROJECT WHERE project_id = 'ADMIN_PROJECT_ID' AND slot_count = 100;
次のように置き換えます。
[
実行] をクリックします。
クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。
bq
--capacity_commitment
フラグを指定した bq ls
コマンドを使用して、管理プロジェクトのコミットメントを一覧表示します。
bq ls \ --capacity_commitment=true \ --location=LOCATION \ --project_id=ADMIN_PROJECT_ID
以下を置き換えます。
容量コミットメントの更新
容量コミットメントには、次の更新を行うことができます。
- 既存のコミットメントを更新します。
- コミットメントをより長い期間のコミットメント プランに変換します。
- 1 つのコミットメントを 2 つのコミットメントに分割します。
- 2 つのコミットメントを 1 つのコミットメントに統合します。
必要な権限
容量コミットメントを更新するには、次の Identity and Access Management(IAM)権限が必要です。
- コミットメントの所有権を持つ管理プロジェクトに対する
bigquery.capacityCommitments.update
。
この権限は、次の各 IAM 事前定義ロールに含まれています。
BigQuery Admin
BigQuery Resource Admin
BigQuery での IAM のロールの詳細については、事前定義ロールと権限をご覧ください。
コミットメントを更新する
年間コミットメントには、年間コミットメントを作成、または年間コミットメントに変換するときに指定する更新プランがあります。年間コミットメントの更新プランは、コミットメント終了日より前であればいつでも変更できます。
Console
年間契約の更新プランは、次の手順で変更できます。
Google Cloud コンソールで [BigQuery] ページに移動します。
ナビゲーション パネルで [容量管理] セクションに移動します。
[スロット コミットメント] タブをクリックします。
編集するコミットメントを見つけます。
[アクション] をクリックし、[更新プランを編集] オプションを選択します。
新しい更新プランを選択します。
bq
年間コミットメントの更新プランを変更するには、--capacity_commitment
フラグおよび --renewal_plan
フラグを指定して、bq update
コマンドを使用します。
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --renewal_plan=PLAN_TYPE \ --capacity_commitment=true \ COMMITMENT_ID
次のように置き換えます。
ADMIN_PROJECT_ID
: このコミットメントのオーナー権限を保持する管理プロジェクトのプロジェクト ID。LOCATION
: コミットメントのロケーションPLAN_TYPE
: プランの種類(例:FLEX
、MONTHLY
、ANNUAL
)。COMMITMENT_ID
: コミットメントの IDID を取得するには、購入したコミットメントを表示するをご覧ください。
コミットメントをより長い期間に変換する
コミットメントはいつでも、長期契約コミットメント タイプに変換できます。
- Flex Slots のコミットメントは、月単位または年単位のコミットメントに変更できます。
- 月単位のコミットメントは、年単位のコミットメントに変換できます。
コミットメントを更新するとすぐに、新しいプランに関連付けられたレートが課金され、終了日が再設定されます。
コミットメントを変更するには、--plan
フラグを指定して bq update
コマンドを使用します。
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --plan=PLAN_TYPE \ --renewal_plan=RENEWAL_PLAN \ --capacity_commitment=true \ COMMITMENT_ID
次のように置き換えます。
ADMIN_PROJECT_ID
: プロジェクト IDLOCATION
: コミットメントのロケーションPLAN_TYPE
: プランの種類(例:FLEX
、MONTHLY
、ANNUAL
)。RENEWAL_PLAN
: 更新プランこれは、
PLAN_TYPE
がANNUAL
の場合にのみ適用されます。PLAN_TYPE
がMONTHLY
の場合、このフラグは省略します。COMMITMENT_ID
: コミットメントの IDID を取得するには、購入したコミットメントを表示するをご覧ください。
コミットメントを分割する
コミットメントは、2 つのコミットメントに分割できます。これは、コミットメントの一部を更新する必要がある場合に役立つことがあります。たとえば、1,000 スロットの年間コミットメントがある場合、300 スロットを新しいコミットメントに分割し、700 スロットを元のコミットメントに残すことができます。そうして、年単位で 700 スロットを更新し、終了日後に 300 スロットを Flex Slots のスロットに変更できます。
コミットメントを分割すると、新しいコミットメントには、元のコミットメントと同じプランとコミットメント終了日が設定されます。
コンソール
Google Cloud コンソールで [BigQuery] ページに移動します。
ナビゲーション パネルで [容量管理] セクションに移動します。
[スロット コミットメント] タブをクリックします。
分割するコミットメントを選択します。
[スプリット] をクリックします。
[Split commitment] ページで、[Configure split] スライダーを使用して、各スプリットに含めるスロットの数を 100 単位で増やします。
[スプリット] をクリックして、コミットメントを分割します。新しいコミットメントが [Slot commitments] タブに表示されます。
bq
コミットメントを分割するには、bq update
コマンドを使用します。
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --split \ --slots=SLOTS_TO_SPLIT \ --capacity_commitment=true \ COMMITMENT_ID
次のように置き換えます。
ADMIN_PROJECT_ID
: プロジェクト IDLOCATION
: コミットメントのロケーションSLOTS_TO_SPLIT
: 元のコミットメントから新しいコミットメントに分割するスロットの数COMMITMENT_ID
: コミットメントの IDID を取得するには、購入したコミットメントを表示するをご覧ください。
2 つのコミットメントを統合する
複数のコミットメントを 1 つのコミットメントに統合できます。コミットメントの統合はすべて同じ種類(FLEX
、MONTHLY
、ANNUAL
または THREE_YEAR
)である必要があります。統合されたコミットメントの終了日は、元のコミットメントの終了日のうちの最も遅い終了日です。終了日が他のコミットメントの終了日より早い場合、そのコミットメントは遅い終了日に変更されます。これらのスロットに対しては比例配分された料金が請求されます。
コンソール
Google Cloud コンソールで [BigQuery] ページに移動します。
ナビゲーション パネルで [容量管理] セクションに移動します。
[スロット コミットメント] タブをクリックします。
統合するコミットメントを選択します。
[Merge] をクリックします。
[Merge commitment] ページで、マージの詳細を確認して、[Merge] をクリックします。新しいマージされたコミットメントが [Slot commitments] タブに表示されます。
bq
2 つのコミットメントを統合して 1 つのコミットメントにするには、bq update
コマンドを使用します。
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --merge=true \ --capacity_commitment=true \ COMMITMENT1,COMMITMENT2
次のように置き換えます。
ADMIN_PROJECT_ID
: プロジェクト IDLOCATION
: コミットメントのロケーションCOMMITMENT1
: 最初に統合するコミットメントCOMMITMENT2
: 2 番目に統合するコミットメント
コミットメントの削除
容量コミットメントの終了日が過去の日付の場合は削除できます。コミットメントの終了日は、Google Cloud コンソールに表示されます。コミットメントを削除する前に、割り当てられていないスロットが十分にあることを確認してください。十分でない場合は、予約のスロット数を減らすか、予約全体を削除する必要があります。
必要な権限
容量コミットメントを削除するには、次の Identity and Access Management(IAM)権限が必要です。
- コミットメントの所有権を持つ管理プロジェクトに対する
bigquery.capacityCommitments.delete
。
この権限は、次の各 IAM 事前定義ロールに含まれています。
BigQuery Admin
BigQuery Resource Admin
BigQuery での IAM のロールの詳細については、事前定義ロールと権限をご覧ください。
容量コミットメントの削除
Console
容量コミットメントを削除する手順は次のとおりです。
Google Cloud コンソールで [BigQuery] ページに移動します。
ナビゲーション パネルで [容量管理] セクションに移動します。
[スロット コミットメント] タブをクリックします。
[ロケーション] プルダウン リストで、適切なロケーションを選択します。
削除するコミットメントを見つけます。
[アクション] オプションを展開します。
[削除] をクリックします。
「REMOVE」と入力して、[続行] を押します。
SQL
容量コミットメントを削除するには、DROP CAPACITY
DDL ステートメントを使用します。
Google Cloud コンソールで [BigQuery] ページに移動します。
クエリエディタで次のステートメントを入力します。
DROP CAPACITY `ADMIN_PROJECT_ID.region-LOCATION.COMMITMENT_ID`;
次のように置き換えます。
ADMIN_PROJECT_ID
: コミットメントを所有するプロジェクトLOCATION
: コミットメントのロケーションCOMMITMENT_ID
: コミットメントの IDID を取得するには、購入したコミットメントを表示するをご覧ください。
[
実行] をクリックします。
クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。
bq
容量コミットメントを削除するには、--capacity_commitment
フラグを指定した bq rm
コマンドを使用します。
bq rm \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --capacity_commitment=true \ COMMITMENT_ID
次のように置き換えます。
ADMIN_PROJECT_ID
: プロジェクト IDLOCATION
: コミットメントのロケーションCOMMITMENT_ID
: 削除するコミットメントの ID。ID を取得するには、購入したコミットメントを表示するをご覧ください。
容量コミットメントのトラブルシューティング
このセクションでは、BigQuery Reservations の使用中に問題が発生した場合に役立つトラブルシューティング手順について説明します。
購入したスロットは保留中です
スロットには利用可能な容量が適用されます。スロットを購入して BigQuery で割り振ると、[ステータス] 列にチェックマークが表示されます。BigQuery がリクエストされたスロットをすぐに割り当てられない場合、[ステータス] 列は保留中のままになります。スロットが使用可能になるまで数時間かかることがあります。より早くスロットにアクセスする必要がある場合は、次のことを試してください。
- 保留中のコミットメントを削除します。
- スロット数を減らす場合は、新しいコミットメントを購入します。容量によっては、小さいコミットメントがすぐに有効になる場合があります。
- 残りのスロットは別のコミットメントとして購入します。これらのスロットは [ステータス] 列に保留中として表示されますが、通常は数時間以内にアクティブになります。
- 省略可: 両方のコミットメントが使用できる場合、両方を同じプランで購入した場合に限り、単一のコミットメントに統合できます。
スロット コミットメントが失敗した場合、または完了に時間がかかる場合は、一時的にオンデマンド料金の使用を検討してください。その場合、予約に割り当てられていない別のプロジェクトで重要なクエリを実行することが必要になる場合があります。また、プロジェクトの割り当てを完全に削除する必要が生じることもあります。