障害復旧¶
Snowflake connector for Google Analytics Aggregate Dataは、 コネクタ規約 に従うものとします。
GAAD コネクタは、構成されたレポートに関するメタデータとアプリケーション インスタンス内の独自の構成を保存します。アプリケーションがドロップされたり破損したりすると、この内部状態は失われます。これを防ぐため、コネクタは次のような特定のイベント時に、取り込まれたデータと一緒にメタデータを宛先データベースにエクスポートします。
新しいレポートの構成
レポートの削除
Googleアナリティクスから新しいデータバッチを取得
レポートの取得ページ・サイズの変更
エクスポート処理では、エクスポート先のスキーマに複数のテーブルが作成され、コネクタの内部状態が格納されます。これらのテーブルには取り込まれたデータは含まれませんが、アプリケーションがドロップされたり破損したりした後にコネクタの状態を回復するために不可欠です。複製すると、これらのテーブルを使用して、別の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
既存のデータやレポートをコネクタの新しいインスタンスにインポートします。¶
GAAD コネクタがアンインストールまたは破損している場合、宛先データベースがドロップされていなければ、以前に構成したレポートの取り込みを再開できます。コネクタで構成されたレポートのメタデータは、取り込まれたデータと一緒に宛先データベースに保存されます。新しいコネクタインスタンスをインストールした後もデータの取り込みを継続するには、以下の手順に従ってください。
コネクタを構成します。
Snowflake Connector for Google Analytics Aggregate Data のインストールと構成 の指示に従ってコネクタを構成してください。コピー先のデータベースとスキーマを選択する場合は、コネクタの前のインスタンスによって取り込まれたデータを含む既存のスキーマを選択します。
コネクタに必要な権限を付与します。
注釈
Snowsight を使用して新しいコネクタをインストールし構成した場合は、この手順は不要です。SQL コマンドを使用してコネクタをインストールした場合のみ実行してください。
次のコマンドを実行して、新しくインストールされた GAAD コネクタが既存のスキーマ内のすべてのオブジェクトの所有者になるようにします。
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 Google Analytics Aggregate Data コネクタの新しいインスタンスは、既存のレポートの取り込みを再開する必要があります。
デスティネーション データベースとコネクタの状態を別の Snowflake デプロイメントに複製します。¶
このセクションでは、複製先データベースのコンテンツを複製する手順について説明します。宛先データベースには、取り込まれたデータと、コネクタで構成されたレポートのメタデータが格納されます。コネクタまたは GAAD コネクタによってダウンロードされるデータがビジネスにとって重要な場合は、別のリージョンにセカンダリ Snowflake アカウントをセットアップし、デスティネーションデータベースをセカンダリアカウントに複製することを検討してください。
規約と定義¶
宛先データベース - GAAD コネクタが取り込むデータのターゲットとして構成されたデータベース。これは、コネクタの内部状態がエクスポートされるデータベースでもあります。
Sink Database - GAAD コネクタによって取り込まれるデータのターゲットとして構成されたスキーマ。
内部状態 - GAAD コネクタの内部データと構成(レポート構成、取り込み状態、エラー ログなど)。
GAAD instance - Snowflake アカウントにインストールされている Snowflake Connector for Google Analytics Aggregate Data コネクタインスタンス。
GAAD - Snowflake Connector for Google Analytics Aggregate Data
ACCOUNT_PRIM - プライマリアカウントの例
ACCOUNT_SEC - セカンダリ(レプリカ)アカウントの例
APP_PRIM - 例 Snowflake Connector for Google Analytics Aggregate Data プライマリアカウントにインストールされたコネクタインスタンス名
APP_SEC - 例 Snowflake Connector for Google Analytics Aggregate Data セカンダリアカウントにインストールされたコネクタインスタンス名
DST_DB.DST_SCHEMA - GAAD インスタンス(データが取り込まれ、コネクタの内部状態が保存される)の宛先スキーマ名の例。
DST_DB - GAAD コネクタ用に構成された宛先データベース名の例
MYORG - 組織名(両方のアカウントが同じ組織である必要があります。)
概要¶
アカウントにインストールすると、 Snowflake Connector for Google Analytics Aggregate Data コネクタ(GAAD インスタンス)は、データやプロシージャなどを含む通常のデータベースとして表示されます。ただし、通常のデータベースと同じようにセカンダリアカウントに複製することはできません。現在のところ、 GAAD インスタンスとその内部状態をレプリカアカウントに複製するネイティブなメカニズムはありません。具体的には、インストールされたアプリケーションを複製グループに追加できません。
コネクタは、 GAAD インスタンスを直接複製する代わりに、構成されたレポートのメタデータを、コネクタのセットアップ プロセス中に構成された宛先スキーマにエクスポートします。状態はそこに保存され、取り込まれたデータと一緒に複製することができます。
たとえば、宛先スキーマ DEST_DATABASE.PUBLIC にデータを取り込むようにコネクタを構成した場合、コネクタは内部状態をこのスキーマに自動的に保存します。その後、以下のコマンドを使用して、取り込んだデータと内部状態の両方を複製できます。
create replication group gaad_dest_database_group object_types = databases allowed_databases = dst_db allowed_accounts = ...;
取り込んだデータと構成レポートの複製セットアップ¶
注釈
ディザスタリカバリのプロシージャを常にテストし、データと状態の複製が期待どおりに機能していることを確認します。
注釈
以下のセクションには、Snowflakeのすべてのバージョンに適用される説明が記載されています。
注釈
先に進む前に、Snowflake複製 https://docs.snowflake.com/en/user-guide/account-replication-intro についてよく理解してください。
プライマリアカウントへの GAAD のインストール
プライマリアカウントに Snowflake Connector for Google Analytics Aggregate Data をインストールして構成します。詳細な手順については、 Snowflake Connector for Google Analytics Aggregate Data のインストールと構成 をご参照ください。
プライマリアカウントで複製グループを作成し、 DST_DB を許可データベースとして追加します。
-- on primary account create replication group gaad_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 gaad_rep_group_sec as replica of myorg.account_prim.gaad_rep_group_prim; alter replication group gaad_rep_group_sec refresh;
この時点で、読み取り専用の DST_DB データベースがセカンダリアカウント上に作成され、プライマリアカウントからのデータが構成されたスケジュールに従って複製されるはずです。
セカンダリアカウントへの GAAD のインストール
プライマリアカウントと同じ方法で、セカンダリアカウントに Snowflake Connector for Google Analytics Aggregate Data をインストールし、構成します。複製データベースとスキーマにデータを取り込むインスタンスを指定します。複製が実行されている間(セカンダリアカウントの複製グループがドロップされるまで)、データベースは読み取り専用モードになります。GAAD は読み込み専用データベースを取り込みターゲットとして使用するように構成できますが、データベースが読み書きモードに移行するまでデータを取り込むことはできません。
セカンダリアカウントでコネクタを構成した後、実行してコネクタを一時停止します。
-- on secondary account call pause_connector();
この時点で、 GAAD コネクタがインストールされ、プライマリアカウントに障害が発生した場合に引き継ぐ準備ができています。
リカバリープロシージャ¶
プライマリ配置が使用できなくなった場合は、セカンダリアカウントで GAAD インスタンスを構成して、取り込みを続行します。
注釈
すべての手順はセカンダリアカウントで実行する必要があります。
複製グループをドロップする
セカンダリアカウントの複製グループをドロップして、複製されたデータベースを読み取り/書き込みモードに移行します。
drop replication group gaad_rep_group_sec;
既存のデータベースオブジェクトの所有権をコネクタに付与
以下を実行して、複製スキーマ内のすべてのオブジェクトの所有権を GAAD コネクタに付与します。
call system$grant_ownership_to_application('app_sec', true, 'dst_db', 'dst_schema');
状態をインポートする
プライマリアカウントから複製された状態でコネクタを初期化します。
call import_state(false);
コネクタを再開する
実行でコネクタを再開します。
call resume_connector();
この時点で、セカンダリアカウントの GAAD コネクタは、プライマリアカウントの GAAD が終了したところから継続して、データの取り込みを再開するはずです。
注釈
プライマリアカウントとセカンダリアカウントの両方が同じ組織に属していることを確認してください。複製スケジュールは要件に応じて調整できます。