Openflow Connector for Veeva Vault について¶
注釈
このコネクタは、 Snowflakeコネクタ規約 に従うものとします。
Openflow Connector for Veeva Vault は `直接データ API<https://general.veevavault.dev/direct-data-api>`_ を使用して、Veeva VaultインスタンスからSnowflakeにデータを複製します。コネクタは直接データファイルをダウンロードし、含まれている CSV を抽出し、Snowpipe Streamingを使用してそのデータをSnowflakeテーブルにロードします。完全なスナップショット、増分更新、およびオプションの監査ログのインジェスチョンをサポートしています。
ユースケース¶
コネクタは、次のユースケースをサポートしています。
完全データ複製: レポート、分析、およびコンプライアンスのために、すべてのVeeva Vaultデータの1回限りの完全なスナップショットをSnowflakeに実行します。
増分同期: 最初のスナップショットの後、コネクタは構成可能なスケジュール(デフォルト:15分ごと)で増分ダイレクトデータファイルをポーリングし、Veeva Vaultの変更でSnowflakeテーブルを最新の状態に保ちます。
監査ログのインジェスチョン: オプションで、データアーカイブと一緒にVeeva Vaultの監査ログアーカイブをインジェストし、Snowflakeに完全な監査証跡を提供します。
移行および分析: システム間の分析、データサイエンス、および規制レポートのために、SnowflakeでVeeva Vaultデータを一元化します。
複製のライフサイクル¶
テーブルの複製サイクルは完全なデータスナップショットから始まり、増分同期に移行します。
スナップショットフェーズ: コネクタは、Veeva Vaultから最新の完全な直接データファイルをダウンロードします。このアーカイブは、Vaultデータオブジェクトごとに1つの CSV を含むtar.gzファイルです。コネクタはアーカイブを解凍し、各オブジェクトに対してSnowflakeに宛先テーブルを作成し(まだ存在しない場合)、Snowpipe Streamingを通じてデータをステージングテーブルにロードし、ステージングデータを最終的な宛先テーブルにマージします。
増分フェーズ: スナップショットが完了すると、コネクタは増分直接データファイルのVeeva Vaultをポーリングします。各増分ファイルには、前の増分ファイル以降に変更された記録のみが含まれています。コネクタは、同じステージングおよびマージパイプラインを介して更新を適用し、構成された削除戦略に基づいて削除を個別に処理します。Snowflakeのデータ鮮度は、Veeva Vaultが直接データファイルを公開する頻度と、コネクタの構成された同期頻度によって異なります。
監査ログフェーズ(オプション): 監査ログのインジェスチョンが有効な場合、コネクタは
log_directdataファイルもダウンロードし、同じパイプラインに従ってSnowflakeにロードします。
コネクタは、報告された時間ウィンドウでダイレクトデータファイルをグループ化し、一度に1つのウィンドウを処理して、各バッチが次のバッチに移動する前にアトミックに処理されるようにします。
コネクタは、最後に処理されたタイムスタンプを記録する永続的な状態を使用して、進行状況を追跡します。コネクタが停止して再起動すると、中断したところから再開します。
インジェスチョンモード¶
コネクタは、直接データファイルの消費方法を制御する3つのインジェスチョンモードをサポートしています。
- SNAPSHOT_AND_INCREMENTAL (デフォルト):
コネクタは最初に、最新の完全な直接データファイル(スナップショット)を処理します。スナップショットが完了すると、増分アーカイブのポーリングに移行します。これは、ほとんどのデプロイで推奨されるモードです。
- SNAPSHOT:
コネクタは、最新の完全なダイレクトデータファイルを継続的にポーリングします。新しい完全なファイルが利用可能になるたびに、処理されます。Snowflakeのすべてのデータを定期的に最新の完全なエキスポートデータで置き換えたい場合は、このモードを使用します。
- INCREMENTAL:
コネクタは、増分直接データファイルに対してのみポーリングします。完全なスナップショットは実行されません。このモードは、スナップショットが他の方法で既にロードされている場合や、最近の変更のみが必要な場合に使用します。オプションで開始時間を指定することにより、増分ポーリングの開始時期を制御できます。
認証¶
コネクタは、セッションベースの認証を使用してVeeva Vaultを認証します。サービスアカウントのユーザー名とパスワードを入力すると、コネクタはVault API 認証エンドポイントからセッション識別子を取得します。このセッションはリクエスト間で再利用され、期限が切れると自動的に更新されます。
Snowflake認証では、コネクタは2つの戦略をサポートしています。
- SNOWFLAKE_MANAGED (デフォルト):
Openflowランタイムロールに関連付けられたSnowflake管理のトークンを使用します。これは Openflow - Snowflake Deployments および Openflow - BYOC Deployments の両方に対して推奨される戦略です。
- KEY_PAIR:
認証にユーザー提供の RSA キーペアを使用する。この戦略は Openflow - BYOC Deployments でのみ利用可能で、コネクタがOpenflowランタイムをホストしているSnowflakeアカウントとは異なるSnowflakeアカウントに書き込む必要がある、クロスアカウントシナリオを想定しています。
削除の処理方法¶
コネクタはVeeva Vaultから削除抽出を受け取ると、構成された削除戦略に従ってSnowflakeで削除を適用します。
- ハード削除(デフォルト):
DELETEステートメントを使用して、宛先テーブルから行が永久に削除されます。- ソフト削除:
行は削除されません。代わりに、コネクタは
__SNOWFLAKE_DELETED列をTRUEに設定し、__SNOWFLAKE_DELETED_AT列を現在のタイムスタンプに設定します。これらの列が宛先テーブルに存在しない場合、コネクタは自動的に追加します。
スキーマの進化¶
Veeva Vaultデータの構造がファイル間で変更された場合、コネクタはスキーマの進化をサポートします。コネクタは受信ファイルで新しい列を検出すると、それらの列をSnowflakeの宛先テーブルとステージングテーブルに自動的に追加します。
列が受信ファイルに存在しなくなると、コネクタは構成された列削除戦略を適用します。
- 列をドロップ(デフォルト):
Snowflakeテーブルから列を削除します。
- 列の名前の変更:
構成可能なサフィックスを追加して列の名前を変更します(デフォルト:
__deleted)これにより、テーブル内の履歴データが保持されます。- 列を無視:
Snowflakeテーブルの列をそのまま残し、入力を停止します。
自動再試行の処理¶
コネクタは、指数バックオフ戦略を使用して、失敗した API 呼び出しを自動的に再試行します。再試行可能な条件には HTTP ステータスコード500、502、503、504、および一時的なネットワークエラーが含まれます。
セッションの有効期限が切れるか無効になった場合、コネクタは自動的に再認証し、リクエストを再試行します。
制限事項¶
コネクタを使用する場合は、次の制限を考慮してください。
コネクタを使用する前に、Vaultインスタンスで直接データを有効にする必要があります。この機能を有効にするには、Veeva Vault管理者にお問い合わせください。
コネクタは、セッションベースのユーザー名とパスワードの認証情報を使用して認証します。その他の認証方法(OAuth など)はまだサポートされていません。
コネクタは、ダイレクトデータファイルからのみ構造化データを複製します。ドキュメントや添付ファイルのコンテンツ(Veeva Vaultに格納されているファイルなど)は複製されません。
コネクタは現在、タイプ `legacy_workflow<https://platform.veevavault.help/en/gr/5205/>`_ のオブジェクトの初期ロードのみを実行し、進行中の変更を複製しません。
次のステップ¶
コネクタの設定方法については、 Openflow Connector for Veeva Vault の設定 をご参照ください。