ノートブックの複製¶
注釈
ノートブックを複製するには、アカウントで2025_07動作変更バンドルを有効にする必要があります。アカウントでこのバンドルを有効にする には、以下のステートメントを実行します。
SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2025_07');
複製は、ノートブックやその他の重要なオブジェクトをアカウント間で利用可能にすることで、災害、停止、利用不能の場合のビジネス継続性をサポートします。管理者によって構成される複製グループは、定義されたスケジュールで、プライマリアカウントから1つ以上のセカンダリアカウントにアカウントオブジェクトとデータベースを複製します。
ノートブックは、複製グループまたはフェールオーバーグループに含まれるデータベースの一部である場合、複製されます。セカンダリアカウントでは、複製されたコンテンツは読み取り専用で、ノートブックは実行可能ですが編集はできません。
データベースの複製は、高可用性をサポートするフェールオーバーグループとして構成できます。セカンダリフェールオーバーグループがプライマリに昇格すると、ノートブックを含むすべてのオブジェクトが新しいプライマリアカウントで書き込み可能になります。
詳細については、 複数のアカウント間にわたる複製とフェールオーバーの概要 をご参照ください。
複製を有効化¶
ORGADMIN ロールを持つユーザーは、組織内のソースとターゲットの各アカウントで複製を有効にする必要があります。
USE ROLE ORGADMIN;
SELECT SYSTEM$GLOBAL_ACCOUNT_SET_PARAMETER(
'<organization_name>.<account_name>',
'ENABLE_ACCOUNT_DATABASE_REPLICATION',
'true');
詳しくは、組織内のアカウントで複製を有効にする を参照してください。
プライマリアカウントに複製グループを作成します¶
ノートブックを複製するには、複製グループでノートブックを含むデータベースを指定します。
USE ROLE ACCOUNTADMIN;
CREATE REPLICATION GROUP myrg
OBJECT_TYPES = DATABASES
ALLOWED_DATABASES = db1
ALLOWED_ACCOUNTS = myorg.myaccount2
REPLICATION_SCHEDULE = '10 MINUTE';
この例では:
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';
構文およびオプションの詳細については、CREATE REPLICATION GROUP をご参照ください。
セカンダリアカウントの動作¶
セカンダリアカウントでは、複製されていないデータベースにのみ新しいノートブックを作成できます。これらのノートブックは複製グループには含まれず、完全に読み書き可能です。
複製されたノートブックは読み取り専用です。しかし、ユーザーは関連するコンピューティングリソースや外部アクセス統合(EAIs)を変更することができます。これらのリソースは個別に作成または複製する必要があります。それらが利用できない場合、ノートブックにはそれらのリソースは添付されません。
ソースアカウントの複製グループ myrg のレプリカとして、ターゲットアカウントに複製グループを作成します。
CREATE REPLICATION GROUP myrg
AS REPLICA OF myorg.myaccount1.myrg;
また、必要に応じてウェアハウス用の複製グループを作成することもできます。アカウント内のすべてのウェアハウスが複製されることに注意してください。
CREATE REPLICATION GROUP mywarehouserg
AS REPLICA OF myorg.myaccount1.mywarehouserg;
複製グループは、以下のコマンドを実行して 手動でリフレッシュ することもできます。
ALTER REPLICATION GROUP myrg REFRESH;
フェールオーバーグループを作成する¶
停止中にセカンダリアカウントをプライマリに昇格させるには、フェールオーバーグループを使用します。
USE ROLE ACCOUNTADMIN;
CREATE FAILOVER GROUP myfg
OBJECT_TYPES = DATABASES
ALLOWED_DATABASES = db1
ALLOWED_ACCOUNTS = myorg.myaccount2
REPLICATION_SCHEDULE = '10 MINUTE';
この例では、ALLOWED_DATABASES がフェールオーバーグループに作成されるデータベースです。フェールオーバーグループに複製されたノートブックは読み取り専用ですが、実行は可能です。フェールオーバーグループをプライマリに昇格 させると、ノートブックは読み書き可能になります。
考慮事項¶
セカンダリアカウントのスケジュールされたノートブックは、フェールオーバーするまで一時停止されます。フェールオーバー後、スケジューリングは再開されます。
複製とタスクの動作については、複製に関する考慮事項 を参照してください。
ノートブックの結果は、ノートブックを実行したアカウントにのみ保存されます。ノートブックの結果は複製されません。
制限事項¶
フェールオーバー後のGit統合は現在サポートされていません。昇格したセカンダリアカウントのノートブックがGitに再接続できるようにするには、Gitを再設定する必要があります。
コンテナランタイムノートブック¶
Container Runtimeを使用するノートブックは完全に複製されません。具体的には、コンピューティングプールは複製されないので、セカンダリアカウントで手動で作成する必要があります。
セカンダリアカウントでContainer Runtimeノートブックを実行する方法は次のとおりです。
ソースアカウントで使用されているコンピューティングプールを特定します。
セカンダリアカウントに、同じ名前と構成のコンピューティングプールを作成します。例えば、複製されたノートブックが
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;
一度作成されると、複製されたノートブックは、セカンダリアカウントで実行するためにコンピューティングプールを使用することができます。