ノートブックの複製

注釈

ノートブックを複製するには、アカウントで2025_07動作変更バンドルを有効にする必要があります。アカウントでこのバンドルを有効にする には、以下のステートメントを実行します。

SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2025_07');
Copy

複製は、ノートブックやその他の重要なオブジェクトをアカウント間で利用可能にすることで、災害、停止、利用不能の場合のビジネス継続性をサポートします。管理者によって構成される複製グループは、定義されたスケジュールで、プライマリアカウントから1つ以上のセカンダリアカウントにアカウントオブジェクトとデータベースを複製します。

ノートブックは、複製グループまたはフェールオーバーグループに含まれるデータベースの一部である場合、複製されます。セカンダリアカウントでは、複製されたコンテンツは読み取り専用で、ノートブックは実行可能ですが編集はできません。

データベースの複製は、高可用性をサポートするフェールオーバーグループとして構成できます。セカンダリフェールオーバーグループがプライマリに昇格すると、ノートブックを含むすべてのオブジェクトが新しいプライマリアカウントで書き込み可能になります。

詳細については、 複数のアカウント間にわたる複製とフェールオーバーの概要 をご参照ください。

複製を有効化

ORGADMIN ロールを持つユーザーは、組織内のソースとターゲットの各アカウントで複製を有効にする必要があります。

USE ROLE ORGADMIN;
SELECT SYSTEM$GLOBAL_ACCOUNT_SET_PARAMETER(
    '<organization_name>.<account_name>',
    'ENABLE_ACCOUNT_DATABASE_REPLICATION',
    'true');
Copy

詳しくは、組織内のアカウントで複製を有効にする を参照してください。

プライマリアカウントに複製グループを作成します

ノートブックを複製するには、複製グループでノートブックを含むデータベースを指定します。

USE ROLE ACCOUNTADMIN;

CREATE REPLICATION GROUP myrg
    OBJECT_TYPES = DATABASES
    ALLOWED_DATABASES = db1
    ALLOWED_ACCOUNTS = myorg.myaccount2
    REPLICATION_SCHEDULE = '10 MINUTE';
Copy

この例では:

  • ALLOWED_DATABASES :ノートブックが含まれているデータベースの名前。

  • ALLOWED_ACCOUNTS :複製先のセカンダリアカウント。

  • REPLICATION_SCHEDULE :複製の発生頻度(たとえば、「10MINUTE」や「1HOUR」など)

ウェアハウスの複製

複製されたノートブックをセカンダリアカウントで意図したとおりに実行するには、ウェアハウス、EAIs 、タスクなどの関連オブジェクトを個別に複製または再作成する必要があります。

ウェアハウスを複製するには、複製/フェールオーバーグループの OBJECT_TYPES パラメーターにウェアハウスを含めます。

-- Create a new warehouse if required
CREATE WAREHOUSE IF NOT EXISTS mywarehouse
  WAREHOUSE_SIZE = 'X-SMALL'
  AUTO_SUSPEND = 60
  AUTO_RESUME = TRUE
  COMMENT = 'Warehouse for Snowflake Notebooks';

-- Set up warehouse replication
CREATE REPLICATION GROUP mywarehouserg
  OBJECT_TYPES = WAREHOUSES
  ALLOWED_ACCOUNTS = myorg.myaccount2
  REPLICATION_SCHEDULE = '10 MINUTE';
Copy

構文およびオプションの詳細については、CREATE REPLICATION GROUP をご参照ください。

セカンダリアカウントの動作

セカンダリアカウントでは、複製されていないデータベースにのみ新しいノートブックを作成できます。これらのノートブックは複製グループには含まれず、完全に読み書き可能です。

複製されたノートブックは読み取り専用です。しかし、ユーザーは関連するコンピューティングリソースや外部アクセス統合(EAIs)を変更することができます。これらのリソースは個別に作成または複製する必要があります。それらが利用できない場合、ノートブックにはそれらのリソースは添付されません。

ソースアカウントの複製グループ myrg のレプリカとして、ターゲットアカウントに複製グループを作成します。

CREATE REPLICATION GROUP myrg
    AS REPLICA OF myorg.myaccount1.myrg;
Copy

また、必要に応じてウェアハウス用の複製グループを作成することもできます。アカウント内のすべてのウェアハウスが複製されることに注意してください。

CREATE REPLICATION GROUP mywarehouserg
    AS REPLICA OF myorg.myaccount1.mywarehouserg;
Copy

複製グループは、以下のコマンドを実行して 手動でリフレッシュ することもできます。

ALTER REPLICATION GROUP myrg REFRESH;
Copy

フェールオーバーグループを作成する

停止中にセカンダリアカウントをプライマリに昇格させるには、フェールオーバーグループを使用します。

USE ROLE ACCOUNTADMIN;
CREATE FAILOVER GROUP myfg
  OBJECT_TYPES = DATABASES
  ALLOWED_DATABASES = db1
  ALLOWED_ACCOUNTS = myorg.myaccount2
  REPLICATION_SCHEDULE = '10 MINUTE';
Copy

この例では、ALLOWED_DATABASES がフェールオーバーグループに作成されるデータベースです。フェールオーバーグループに複製されたノートブックは読み取り専用ですが、実行は可能です。フェールオーバーグループをプライマリに昇格 させると、ノートブックは読み書き可能になります。

考慮事項

  • セカンダリアカウントのスケジュールされたノートブックは、フェールオーバーするまで一時停止されます。フェールオーバー後、スケジューリングは再開されます。

  • 複製とタスクの動作については、複製に関する考慮事項 を参照してください。

  • ノートブックの結果は、ノートブックを実行したアカウントにのみ保存されます。ノートブックの結果は複製されません。

制限事項

  • フェールオーバー後のGit統合は現在サポートされていません。昇格したセカンダリアカウントのノートブックがGitに再接続できるようにするには、Gitを再設定する必要があります。

コンテナランタイムノートブック

Container Runtimeを使用するノートブックは完全に複製されません。具体的には、コンピューティングプールは複製されないので、セカンダリアカウントで手動で作成する必要があります。

セカンダリアカウントでContainer Runtimeノートブックを実行する方法は次のとおりです。

  1. ソースアカウントで使用されているコンピューティングプールを特定します。

  2. セカンダリアカウントに、同じ名前と構成のコンピューティングプールを作成します。例えば、複製されたノートブックが compute_pool という名前のコンピューティングプールを参照している場合、セカンダリアカウントにそのコンピューティングプールを作成します。

-- In the secondary account, create a new compute pool with a matching name and configuration

CREATE COMPUTE POOL compute_pool
  MIN_NODES = 1
  MAX_NODES = 10
  INSTANCE_FAMILY = CPU_X64_XS;
Copy

一度作成されると、複製されたノートブックは、セカンダリアカウントで実行するためにコンピューティングプールを使用することができます。