障害復旧の構成¶
Snowflake Connector for ServiceNow® は、 Snowflake Connector Terms の対象となります。
Snowflake Connector for ServiceNow® は障害復旧をサポートするためにセカンドインスタンスを使用するように構成することができます。
Snowflake Connector for ServiceNow® 障害復旧サポートについて¶
Snowflake Connector for ServiceNow® は、構成されたテーブルに関するメタデータと、アプリケーションインスタンス内の独自の構成を保存します。アプリケーションがドロップされたり破損したりすると、この内部状態は失われます。これを防ぐため、コネクタは、次のような固有のイベント時に、インジェストされたデータと一緒にメタデータを宛先データベースにエクスポートします。
新規インジェスチョンのスケジュール
リロードの完了
リロードのキャンセル
エクスポート処理では、エクスポート先のスキーマに複数のテーブルが作成され、コネクタの内部状態が格納されます。これらのテーブルには取り込まれたデータは含まれませんが、アプリケーションがドロップされたり破損したりした後にコネクタの状態を回復するために不可欠です。複製すると、これらのテーブルを使用して、別のSnowflakeアカウントのコネクタの状態を回復することもできます。エクスポート処理により、以下のテーブルが作成されます。
APP_CONFIG_SFSDKEXPORT_V1
APP_STATE_SFSDKEXPORT_V1
CONNECTOR_ERRORS_LOG_SFSDKEXPORT_V1
INGESTION_PROCESS_SFSDKEXPORT_V1
INGESTION_RUN_SFSDKEXPORT_V1
NOTIFICATIONS_STATE_SFSDKEXPORT_V1
RESOURCE_INGESTION_DEFINITION_SFSDKEXPORT_V1
__CONNECTOR_STATE_EXPORT
コネクタの新しいインスタンスに既存のデータやレポートをインポートします。¶
Snowflake Connector for ServiceNow® がアンインストールされたり破損した場合でも、インストール先のデータベースが削除されていなければ、以前に構成したテーブルのインジェスチョンを再開することができます。コネクタで構成されたテーブルのメタデータは、インジェストされたデータと宛先データベースに保存されます。
新しいコネクタインスタンスをインストールした後も引き続きデータをインジェストするには、以下を実行します。
コネクタを構成する
Snowsightを使用したコネクタのインストールと構成 または SQL コマンドを使用したコネクタのインストールおよび構成 の指示に従ってコネクタを構成します。コピー先のデータベースとスキーマを選択する場合は、コネクタの前のインスタンスによって取り込まれたデータを含む既存のスキーマを選択します。
コネクタに必要な権限を付与します。
注釈
この手順は、 SQL コマンドを使用してコネクタをインストールおよび構成した場合にのみ必要です。 Snowsight を使用してコネクタをインストールした場合は、この手順を省略できます。
次のコマンドを実行して、新しくインストールされたコネクタが既存のスキーマ内のすべてのオブジェクトの所有者になるようにします。
system$grant_ownership_to_application('your_application_instance', true, '<database>', '<schema>');
<データベース>
と<スキーマ>
は、それぞれ既存のデータベースとスキーマの名前です。コネクタを一時停止します。
call pause_connector();
既存データとテーブル構成のインポート
インストールされたアプリケーションのコンテキストから以下のコマンドを実行して、既存のデータとテーブル構成をインポートします。
call import_state(force => true);
force パラメーターは、 true に設定され、新しくインストールされたコネクタに加えられたかもしれない変更が、古いインストールからのテーブル構成と内部データで上書きされるようにします。
コネクタを再開する
call resume_connector();
この時点で、 Snowflake Connector for ServiceNow® コネクタの新しいインスタンスは、既存のテーブルのインジェスチョンを再開するはずです。
デスティネーション データベースとコネクタの状態を別の Snowflake デプロイメントに複製します。¶
このセクションでは、複製先データベースのコンテンツを複製する手順について説明します。宛先データベースには、インジェストされたデータと、コネクタで構成されたテーブルのメタデータが格納されます。コネクタまたはコネクタによってダウンロードされるデータがビジネスにとって重要な場合は、別のリージョンにセカンダリSnowflakeアカウントをセットアップし、デスティネーションデータベースをセカンダリアカウントに複製することを検討してください。
規約と定義¶
以下の用語と定義は、障害復旧構成プロセスで使用されます。
- 宛先データベース
コネクタがインジェクトしたデータのターゲットとして構成されたデータベース。これは、コネクタの内部状態がエクスポートされるデータベースでもあります。
- 宛先スキーマ
コネクタがインジェストするデータのターゲットとして構成されたスキーマ。
- 内部状態
コネクタの内部データと構成(テーブル構成、取り込み状態、エラーログなど)。
- コネクタインスタンス
Snowflakeアカウントにインストールされた Snowflake Connector for ServiceNow® コネクタインスタンス。
- ACCOUNT_PRIM
プライマリアカウントの例の名前
- ACCOUNT_SEC
セカンダリ(レプリカ)アカウントの例の名前
- APP_PRIM
プライマリアカウントにインストールされた例の Snowflake Connector for ServiceNow® コネクタインスタンス名の例
- APP_SEC
セカンダリアカウントにインストールされた Snowflake Connector for ServiceNow® コネクタインスタンス名の例
- DST_DB.DST_SCHEMA
コネクタインスタンス(データがインジェストされ、コネクタの内部状態が保存される)の宛先スキーマ名の例
- DST_DB
コネクタ用に構成された宛先データベース名の例
- MYORG
組織名の例(両方のアカウントが同じ組織である必要があります。)
概要¶
アカウントにインストールされると、 Snowflake Connector for ServiceNow® コネクタ(コネクタインスタンス)は、データやプロシージャなどを含む通常のデータベースとして表示されます。ただし、通常のデータベースと同じようにセカンダリアカウントに複製することはできません。現在のところ、内部状態を持つコネクタインスタンスをレプリカアカウントに複製するネイティブなメカニズムはありません。具体的には、インストールされたアプリケーションを複製グループに追加できません。
コネクタインスタンスを直接複製する代わりに、コネクタは構成されたテーブルのメタデータを、コネクタの設定処理中に構成された宛先スキーマにエクスポートします。状態はそこに保存され、取り込まれたデータと一緒に複製することができます。
たとえば、宛先スキーマ DST_DB.DST_SCHEMA にデータを取り込むようにコネクタを構成した場合、コネクタは内部状態をこのスキーマに自動的に保存します。その後、以下のコマンドを使用して、取り込んだデータと内部状態の両方を複製できます。
create replication group connector_dest_database_group
object_types = databases
allowed_databases = dst_db
allowed_accounts = ...;
取り込んだデータと構成レポートの複製セットアップ¶
以下のセクションには、Snowflakeのすべてのバージョンに適用される説明が記載されています。
プライマリアカウントへのコネクタのインストール
プライマリアカウントに Snowflake Connector for ServiceNow® をインストールして構成します。詳細な手順については、 Snowsightを使用したコネクタのインストールと構成 または SQL コマンドを使用したコネクタのインストールおよび構成 をご参照ください。
プライマリアカウントで複製グループを作成し、 DST_DB を許可データベースとして追加します。
-- on primary account create replication group connector_rep_group_prim object_types = databases allowed_databases = dst_db allowed_accounts = myorg.account_sec replication_schedule = '10 minute';
セカンダリアカウントの複製セットアップ
DST_DB をプライマリアカウントからセカンダリアカウントに複製するには、セカンダリアカウントに新しい複製グループを作成します。
-- on secondary account create replication group connector_rep_group_sec as replica of myorg.account_prim.connector_rep_group_prim; alter replication group connector_rep_group_sec refresh;
この時点で、読み取り専用の DST_DB データベースがセカンダリアカウント上に作成され、プライマリアカウントからのデータが構成されたスケジュールに従って複製されるはずです。
セカンダリアカウントにコネクタをインストール
プライマリアカウントと同じ方法で、セカンダリアカウントに Snowflake Connector for ServiceNow® をインストールし、構成します。複製データベースとスキーマにデータを取り込むインスタンスを指定します。複製が実行されている間(セカンダリアカウントの複製グループがドロップされるまで)、データベースは読み取り専用モードになります。コネクタは読み取り専用データベースをインジェスチョンターゲットとして使用するように構成できますが、データベースが読み書きモードに移行するまでデータをインジェストできません。
セカンダリアカウントでコネクタを構成した後、実行してコネクタを一時停止します。
-- on secondary account call pause_connector();
この時点で、コネクタがインストールされ、プライマリアカウントに障害が発生した場合に引き継ぐ準備ができています。
リカバリープロシージャ¶
プライマリデプロイが利用できなくなった場合は、セカンダリアカウントにコネクタインスタンスを構成して、インジェスチョンを続行します。
重要
すべての手順はセカンダリアカウントで実行する必要があります。
複製グループをドロップする
セカンダリアカウントの複製グループをドロップして、複製されたデータベースを読み取り/書き込みモードに移行します。
drop replication group connector_rep_group_sec;
既存のデータベースオブジェクトの所有権をコネクタに付与
以下を実行して、複製スキーマ内のすべてのオブジェクトの所有権をコネクタに付与します。
call system$grant_ownership_to_application('app_sec', true, 'dst_db', 'dst_schema');
状態をインポートする
プライマリアカウントから複製された状態でコネクタを初期化します。
call import_state(true);
コネクタを再開する
実行でコネクタを再開します。
call resume_connector();
この時点で、セカンダリアカウントのコネクタはデータのインジェスチョンを再開し、プライマリアカウントのコネクタが終了したところから継続します。
注釈
プライマリアカウントとセカンダリアカウントの両方が同じ組織に属していることを確認してください。複製スケジュールは要件に応じて調整できます。