マネージド障害復旧に移行する
このページでは、BigQuery クロスリージョン レプリケーションから BigQuery マネージド障害復旧に移行する方法について説明します。
概要
BigQuery のクロスリージョン レプリケーション(CRR)とマネージド障害復旧(DR)は、どちらもデータの可用性と障害復旧機能を強化するために設計された機能です。ただし、リージョン停止の処理方法は異なります。CRR では、プライマリ リージョンが使用できない場合、セカンダリ レプリカを昇格させることはできません。一方、DR では、プライマリ リージョンが使用できない場合でもセカンダリ レプリカへのフェイルオーバーが可能であるため、より包括的な保護が提供されます。CRR ではストレージのみが複製されますが、DR ではストレージとコンピューティング容量の両方が複製されます。
次の表に、CRR と DR の機能を示します。
機能 | CRR | DR |
---|---|---|
初期レプリケーション プロセス | CRR を使用して、データセットを最初に複製します。 | 初期読み込みは、CRR データセットを DR データセットに移行する前に、CRR で複製されています。 |
プロモーションのレプリケーション | 標準レプリケーションを使用します。 | ターボ レプリケーションを使用します。 |
プロモーションのプロセス | データセット レベルでプロモートします。 | 予約レベルでプロモートします(予約のフェイルオーバーとデータセットのプロモーション)。1 つのフェイルオーバー予約に多数のデータセットを接続できます。DR では、データセット レベルのプロモーションは使用できません。 |
プロモーションの実施 | 各データセットの UI または SQL ベースの DDL コマンドを使用します。CLI、クライアント ライブラリ、API、Terraform はサポートされていません。 | 各 EPE 予約の UI または SQL ベースの DDL コマンドを使用します。CLI、クライアント ライブラリ、API、Terraform はサポートされていません。 |
フェイルオーバー モード | ソフト フェイルオーバー。 | ハード フェイルオーバー。 |
エディションの要件 | 任意の容量モデル。 | Enterprise Plus エディション |
制限事項 | CRR の制限事項。 | CRR の制限事項と DR の制限事項の両方が含まれます。 |
書き込みアクセス | 容量モデルで実行されているジョブは、プライマリ リージョンの複製されたデータセットに書き込むことができます。セカンダリは常に読み取り専用です。 | Enterprise Plus 予約で実行されているジョブのみが、プライマリ リージョンの複製されたデータセットに書き込むことができます。セカンダリ データセットと予約レプリカは常に読み取り専用です。 |
読み取りアクセス権 | 任意の容量モデルで実行されているジョブは、複製されたデータセットから読み取ることができます。 | 任意の容量モデルで実行されているジョブは、複製されたデータセットから読み取ることができます。 |
移行への影響
以降のセクションでは、DR に移行する際に発生する費用と機能の変更の概要について説明します。
費用への影響
CRR から DR に移行する場合は、次の費用への影響を考慮してください。
DR は Enterprise Plus エディションからの書き込みアクセスのみをサポートしているため、コンピューティング費用が高くなります。どの容量モデルからでも読み取ることができるため、既存のジョブの読み取り費用は変わりません。
DR ではターボ レプリケーションが使用されます。この場合、リージョンペアに応じて追加費用が発生します。
ストレージ料金は、CRR と DR の両方で同じです。
料金の詳細については、料金をご覧ください。
機能への影響
CRR から DR に移行する場合は、次の機能への影響を考慮してください。
DR は予約レベルでのフェイルオーバーのみをサポートします。データセット レベルのフェイルオーバーに依存する既存のジョブは失敗します。
データセットが DR 予約に接続されると、Enterprise Plus エディションのクエリのみがデータセットに書き込むことができます。コンピューティング容量に Enterprise Plus エディションを使用していない既存の書き込みジョブは失敗します。
始める前に
移行を開始する前に、クロスリージョン レプリケーションとマネージド 障害復旧のコンセプトを理解しておいてください。
DR に移行するには、次の前提条件を満たしている必要があります。
BigQuery が有効になっているアクティブな Trusted Cloud by S3NS プロジェクトがある。
CRR を使用してデータセットを作成、複製済みである。
データセットのプライマリ ロケーションとセカンダリ ロケーションが、DR に使用するロケーションと同じである。
DR を操作するために必要な権限がある。権限の詳細については、始める前にをご覧ください。
CRR から DR に移行する
以降のセクションでは、データセットを CRR から DR に移行する方法について説明します。ここでは、データセットが CRR 用にすでに構成されていることを前提としています。
フェイルオーバー予約を作成する
障害復旧を有効にするには、プライマリ リージョンにフェイルオーバー予約を作成する必要があります。適切なプライマリ リージョンとセカンダリ リージョンを使用して予約を構成します。プライマリ リージョンとセカンダリ リージョンは、DR に移行するすべての CRR データセットのリージョンと一致している必要があります。フェイルオーバー予約を作成するには、次のいずれかのオプションを選択します。
コンソール
Trusted Cloud コンソールで、[BigQuery] ページに移動します。
ナビゲーション メニューで、[容量管理]、[予約を作成] の順にクリックします。
[予約名] フィールドに、予約の名前を入力します。
[場所] リストで、ロケーションを選択します。
[エディション] リストで、Enterprise Plus エディションを選択します。
[最大予約サイズ セレクタ] リストで、最大予約サイズを選択します。
省略可: [ベースライン スロット数] フィールドに、予約用のベースライン スロット数を入力します。
使用可能な自動スケーリング スロットの数は、[最大予約サイズ セレクタ] の値から [ベースライン スロット数] の値を引いた数になります。たとえば、ベースライン スロットを 100 個、最大予約サイズを 400 個として予約を作成した場合、その予約には 300 個の自動スケーリング スロットがあります。ベースライン スロットの詳細については、ベースライン スロットと自動スケーリング スロットとともに予約を使用するをご覧ください。
[セカンダリ ロケーション] リストで、セカンダリ ロケーションを選択します。
アイドル スロットの共有を無効にして、指定したスロット容量のみを使用するには、[アイドル スロットを無視する] トグルをクリックします。
[詳細設定] セクションを開くには、
展開矢印をクリックします。省略可: ターゲット ジョブの同時実行を設定するには、[自動のターゲット ジョブ同時実行をオーバーライドする] トグルをクリックしてオンに切り替えた後、[ターゲット ジョブ同時実行] の値を入力します。スロットの内訳が [費用予測] テーブルに表示され、予約の概要が [容量の概要] テーブルに表示されます。
[保存] をクリックします。
新しい予約が [スロットの予約] タブに表示されます。
SQL
予約を作成するには、データ定義言語(DDL)ステートメントの CREATE RESERVATION
を使用します。
Trusted Cloud コンソールで、[BigQuery] ページに移動します。
クエリエディタで次のステートメントを入力します。
CREATE RESERVATION `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME` OPTIONS ( slot_capacity = NUMBER_OF_BASELINE_SLOTS, edition = ENTERPRISE_PLUS, secondary_location = SECONDARY_LOCATION);
次のように置き換えます。
ADMIN_PROJECT_ID
: 予約リソースを所有する管理プロジェクトのプロジェクト ID。LOCATION
: 予約のロケーション。BigQuery Omni のロケーションを選択した場合、エディション オプションは Enterprise エディションに限定されます。RESERVATION_NAME
: 予約の名前。名前に使用できるのは英小文字、数字、ダッシュのみです。先頭と末尾は英小文字または数字にしてください。
NUMBER_OF_BASELINE_SLOTS
: 予約に割り当てるベースライン スロットの数。slot_capacity
オプションとedition
オプションを同じ予約内で設定することはできません。SECONDARY_LOCATION
: 予約のセカンダリ ロケーション。リージョンが停止した場合は、この予約に接続されているすべてのデータセットがこのロケーションにフェイルオーバーします。
[
実行] をクリックします。
クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。
データセットを予約に接続する
フェイルオーバー予約を作成したら、クロスリージョン データセットを予約に接続します。これにより、接続されたすべてのデータセットのフェイルオーバーが有効になります。データセットを予約に接続するには、次のいずれかのオプションを選択します。
コンソール
Trusted Cloud コンソールで、[BigQuery] ページに移動します。
ナビゲーション メニューで [容量管理] をクリックし、[スロットの予約] タブをクリックします。
データセットを接続する予約をクリックします。
[障害復旧] タブをクリックします。
[フェイルオーバー データセットを追加] をクリックします。
予約に関連付けるデータセットの名前を入力します。
[追加] をクリックします。
SQL
データセットを予約に接続するには、DDL ステートメントの ALTER SCHEMA SET OPTIONS
を使用します。
Trusted Cloud コンソールで、[BigQuery] ページに移動します。
クエリエディタで次のステートメントを入力します。
ALTER SCHEMA `DATASET_NAME` SET OPTIONS ( failover_reservation = ADMIN_PROJECT_ID.RESERVATION_NAME);
次のように置き換えます。
DATASET_NAME
: データセットの名前。ADMIN_PROJECT_ID.RESERVATION_NAME
: データセットを関連付ける予約の名前。
[
実行] をクリックします。
クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。
構成を確認する
構成のステータスを確認するには、INFORMATION_SCHEMA.SCHEMATA_REPLICAS
ビューに対してクエリを実行します。
PROJECT_ID.`region-REGION`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS[_BY_PROJECT]
データセットが正しいリージョンの正しい予約に接続されていることを確認します。
次のように置き換えます。-
省略可:
PROJECT_ID
: Trusted Cloud プロジェクトの ID。指定しない場合は、デフォルトのプロジェクトが使用されます。 -
REGION
: 任意のデータセット リージョン名。例:`region-us`
例
次の例では、GoogleSQL を使用した実践的な例を使用して、CRR から DR に移行する手順を説明します。この例では、次のことを前提としています。
myproject
という名前のプロジェクトで作業している。mydataset
という名前のデータセットを作成し、CRR で構成済みである。mydataset
のプライマリ リージョンはus-central1
、セカンダリ リージョンはus-west1
である。
データセットの DR への移行を開始するには、まず Enterprise Plus エディションで予約を作成します。この例では、予約の名前は myreservation
です。
CREATE RESERVATION `myproject.region-us-central1.myreservation`
OPTIONS (
slot_capacity = 0,
edition = ENTERPRISE_PLUS,
autoscale_max_slots = 50,
secondary_location = 'us-west-1');
予約を作成したら、データセットを予約に接続できます。次の例では、データセットを予約に接続します。
ALTER SCHEMA
`myproject.mydataset`
SET OPTIONS (
failover_reservation = 'myproject.myreservation');
次に、データセットが正常に接続されたことを確認します。
SELECT
failover_reservation_project_id,failover_reservation_name,
FROM
`myproject`.`region-us-west1`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS
WHERE
schema_name='mydataset';
このクエリの結果は次のようになります。
+---------------------------------+---------------------------+ | failover_reservation_project_id | failover_reservation_name | +---------------------------------+---------------------------+ | myproject | myreservation | | myproject | myreservation | +---------------------------------+---------------------------+
次のステップ
クロスリージョン レプリケーションの詳細について、クロスリージョン データセット レプリケーションを確認する。
マネージド障害復旧の詳細について、マネージド障害復旧を確認する。