Cortex Search Serviceの複製

Cortexでは、ソースアカウントから同じ組織内にある1つ以上のターゲットアカウントへCortex Search Serviceを複製できます。この複製は、Snowflake複製およびフェールオーバーグループとシームレスに統合され、ターゲットアカウント上のオブジェクトに対して特定時点における一貫性を提供します。複製とフェールオーバーの詳細については、複数のアカウント間にわたる複製とフェールオーバーの概要 をご参照ください。

親データベースが複製グループまたはフェールオーバーグループにある場合、検索サービスは自動的に複製されます。自動的に複製された検索サービスは、他の複製されたエンティティと同じ動作に従います。

  • 複製されたCortex Search Serviceは読み取り専用です。複製されたエンティティでは、直接 ALTER または DROP コマンドは許可されていません。

  • 複製されたCortex Search Serviceは、複製スケジュールに従ってプライマリサービスと同期します。具体的に、プライマリレプリカがサービスを削除すると、複製の更新中にセカンダリサービスも削除されます。

  • 複製が完了した後、サービングシステムが複製されたサービスをロードするまで、最大10分の遅延が発生する可能性があります。サービスのロード後、複製されたCortex Search Serviceは通常のサービスと同様にクエリ可能です。

    注釈

    フェールオーバーグループ内の複製されたサービスは、サービスが一時停止し、クエリ可能ではありません。これらの複製されたサービスは、フェールオーバーグループが新しいプライマリになると再アクティブ化されます。

  • 複製中、データ転送とコンピューティングリソースに複製関連コストが発生する可能性があります。Cortex Search Serviceのサービングコストは、プライマリサービスのコストと同様です。Cortex Searchのインデックス作成に追加コストはありません。詳細については、 複製コストについて をご参照ください。

複製グループとフェールオーバーグループの詳細については、CREATE REPLICATION GROUP をご参照ください。

複製されたCortex Search Serviceを作成する

複製されたCortex Search Serviceを作成するには、サービスの親データベースを含む複製グループを作成します。

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

    CREATE REPLICATION GROUP myrg
        OBJECT_TYPES = DATABASES
        ALLOWED_DATABASES = <database1>
        ALLOWED_ACCOUNTS = <org-name>.<secondary-account>
        REPLICATION_SCHEDULE = '60 MINUTE';
    
    Copy
  2. セカンダリアカウントから次のコマンドを実行して、セカンダリアカウントにプライマリアカウントデータベースのレプリカを作成します。

    CREATE REPLICATION GROUP myrg
        AS REPLICA OF <org-name>.<primary-account>.myrg;
    
    Copy
  3. セカンダリアカウントから、手動でレプリカを更新します。

    ALTER REPLICATION GROUP myrg REFRESH;
    
    Copy
  4. プライマリデータベースにCortex Search Serviceを作成します。詳細については、 CREATE CORTEX SEARCH SERVICE をご参照ください。検索サービスは、複製スケジュールに従って自動的に複製されます。

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

フェールオーバーグループを使用すると、複製されたサービスを使用せず、または支払いをすることなく、追加のアカウントでデータをバックアップできます。フェールオーバーグループがあれば、操作を再開する必要がある場合にのみ、フェールオーバーをアクティブ化できます。Cortex Search Service用のフェールオーバーグループを作成するには、サービスの親データベースを含むフェールオーバーグループを作成します。

  1. プライマリアカウントにフェールオーバーグループを作成します。

    CREATE FAILOVER GROUP myrg
        OBJECT_TYPES = DATABASES
        ALLOWED_DATABASES = <database1>
        ALLOWED_ACCOUNTS = <org-name>.<secondary-account>
        REPLICATION_SCHEDULE = '60 MINUTE';
    
    Copy
  2. セカンダリアカウントから次のコマンドを実行して、セカンダリアカウントにプライマリアカウントデータベースのフェールオーバーを作成します。

    CREATE FAILOVER GROUP myrg
        AS REPLICA OF <org-name>.<primary-account>.myrg;
    
    Copy
  3. セカンダリアカウントから、手動でフェールオーバーグループを更新します。

    ALTER FAILOVER GROUP myrg REFRESH;
    
    Copy
  4. プライマリデータベースにCortex Search Serviceを作成します。詳細については、 CREATE CORTEX SEARCH SERVICE をご参照ください。検索サービスは、複製スケジュールに従って自動的に複製されます。

  5. 障害復旧時に、セカンダリアカウントで次のSQLを実行して、新しいプライマリアカウントにします。複製されたサービスはアクティブ化され、クエリのためにサービングシステムにロードされます。

    ALTER FAILOVER GROUP myrg PRIMARY;
    
    Copy