CDCソースからの変更データのキャプチャ Snowflake Data Cloud Connectorを使用して、Oracle CDCやOracle CDC V2などのCDCソースから変更データを書き込み、その変更データをSnowflakeターゲットに書き込むことができます。
マッピングを設定するときは、CDCソースを追加してから関連するマッピングタスクを実行して、変更データをSnowflakeに書き込みます。Snowflakeターゲットテーブルで必要に応じてカラムを定義する場合は、タスクを実行する前にCDCソースのカラムをマッピングのSnowflakeターゲットの必要なカラムにマッピングします。
マッピングタスクでのCDCソースからの変更データの処理時に、Snowflake Data Cloud ConnectorはSnowflakeに状態テーブルを作成します。変更データをCDCソースから受信すると、Snowflake Data Cloud Connectorは変更データをステージングテーブルにアップロードします。次に、Job_Id を生成し、再起動情報とともにJob_Id を状態テーブルに書き込みます。
次に、コネクタは、ステージテーブルをSnowflakeの実際のターゲットテーブルにマージします。状態テーブルが存在しない場合、Snowflake Data Cloud Connectorは、マッピングタスクを実行するたびに状態テーブルを作成して状態情報を格納します。
リカバリ戦略が有効になっているCDCマッピングタスクを停止した場合、またはこれが予期せず終了した場合は、タスクの先頭から再開するか、ジョブの詳細ページからタスクが最後に終了したところから再開することもできます。
マッピングタスクの再起動と再開の詳細については、データ統合ドキュメントの「タスク」を参照してください。
Snowflake Data Cloud Connectorは、テーブルに次の命名規則を使用します。
• 状態テーブル名: <MappingTaskID>_<Instance(s)> • ステージングテーブル名: <MappingTaskID>_<TargetInstanceName> 制限 変更されたデータをCDCソースからキャプチャするときは、次の制限を考慮してください。
CDCマッピングのソースまたはルックアップオブジェクト CDCマッピングではSnowflakeターゲットを使用して、CDCソースからデータを書き込むことができます。CDCマッピングでSnowflakeソースまたはルックアップを使用することはできません。 ステージング最適化プロパティ Secure AgentのDTMではステージングデータに設定した最適化プロパティは適用されません。CDCおよびステージングプロパティを有効にしてマッピングを実行すると、マッピングは正常に実行されます。ただし、ステージングの最適化は無効になりますが、セッションログに記録されたメッセージを表示することができます。 リカバリ初期化エラー CDCマッピングを実行してCDCソースから実行時に作成されたSnowflakeターゲットにデータを書き込むと、次のエラーが発生する場合があります。 Error occured while initializing CCI State Handler com.informatica.cci.runtime.internal.utils.impl.CExceptionImpl: Internal error: Recovery Init failed このエラーを回避するには、Snowflakeでテーブルを作成する権限を付与する必要があります。 DTMエラー [JDBC URLの追加パラメータ] フィールドのProcessConnDBパラメータとProcessConnSchemaパラメータで構成されたSnowflakeターゲット接続を使用するCDCマッピングを実行する場合、マッピングが次のDTMエラーで失敗する可能性があります:内部エラー。DTMプロセスが予期せず終了しました。Informaticaグローバルカスタマサポートにお問い合わせください。 このエラーを回避するには、Snowflake Data Cloud接続の[JDBC URLの追加パラメータ] フィールドからProcessConnDBパラメータとProcessConnSchemaパラメータを削除します。ただし、ProcessConnDBパラメータとProcessConnSchemaパラメータを使用して一時ステージテーブルとリカバリ状態テーブルを作成する場合は、必要なデータベースとスキーマに必要な権限があることを確認してください。 CDCソースから読み取るためのマッピングタスクの設定 Snowflake Data Cloud Connectorを使用して、CDCソースから変更データをキャプチャし、変更データをSnowflakeターゲットに書き込むことができます。
CDCソースをマッピングに追加してから、関連するマッピングタスクを実行して、変更データをSnowflakeターゲットに書き込みます。単一のマッピングで複数のパイプラインを設定して、キャプチャされた変更データをSnowflakeターゲットに書き込むこともできます。
変更データをCDCソースからSnowflakeに書き込むようにマッピングを設定した場合は、Snowflakeターゲットトランスフォーメーションで次のような詳細プロパティを設定できます。
• データベース• スキーマ• ウェアハウス• ロール• Pre SQL• Post SQL• ターゲットテーブルの切り詰め• テーブル名• 更新オーバーライド手順1.ソースを設定します Oracle CDCやOracle CDC V2などのCDCソースから読み取るようにソーストランスフォーメーションを設定します。
1 ソーストランスフォーメーションの全般プロパティで、名前と説明を指定します。
2 [ソース] タブで、設定済みの任意のCDC接続を選択し、必要なソースプロパティを指定します。
ソースオブジェクトにプライマリキーを含めることをお勧めします。
手順2.ターゲットを設定します 変更されたデータをCDCソースからSnowflakeに書き込むようにターゲットトランスフォーメーションを設定します。
CDCソースから変更されたデータを書き込む場合は、マッピングで単一のSnowflake Data Cloudターゲットトランスフォーメーションのみを設定できます。
1 [ターゲット] タブで、次の手順を実行してターゲットプロパティを設定します。
a [接続] フィールドで、Snowflake Data Cloud接続を選択します。 b [ターゲットの種類] フィールドで、ターゲットオブジェクトのタイプを選択します。 c [オブジェクト] フィールドで、必要なターゲットオブジェクトを選択します。 d [操作] フィールドで、 [挿入] または [データドリブン] を選択します。 注: ターゲットの更新、更新/挿入、および削除操作は適用されません。ターゲットテーブルにSnowflakeで定義されたプライマリキーがないことを確認します。
e [データドリブン条件] を選択した場合は、 DD_INSERT 条件を指定します。 注: ターゲットテーブルにSnowflakeで定義されたプライマリキーがないことを確認します。
f CDCモードに適用可能な詳細ターゲットプロパティを設定します。 2 [フィールドマッピング] タブで、受信フィールドをターゲットフィールドにマップします。手動でマップすることも、フィールド名に基づいて自動的にマップすることもできます。
Snowflakeターゲットテーブルで必要に応じてカラムを定義する場合は、CDCソースのカラムをマッピングのSnowflakeターゲットの必要なカラムにマッピングします。
手順3.マッピングタスクを設定します マッピングを作成した後に、マッピングをマッピングタスクに追加して、詳細プロパティを設定します。関連するマッピングタスクを実行して、変更されたデータをSnowflakeに書き込みます。
1 [アクション] メニューで、 [新しいマッピングタスク] をクリックします。
[新しいマッピングタスク] ページが表示されます。
2 [定義] タブで、タスク名を入力し、設定済みのマッピングを選択します。
3 [CDCランタイム] タブで、選択したCDCソースに必要なプロパティを指定します。
[CDCランタイム] プロパティの詳細については、選択したCDCソースのソースプロパティを参照してください。
4 [ランタイムオプション] タブの [詳細セッションプロパティ] セクションで、次のプロパティを追加します。
a [ファイル終端(EOF)でコミット] フィールドで、このプロパティの値として [いいえ] を選択します。 b [コミットタイプ] フィールドで、このプロパティの値として [ソース] を選択します。 c [リカバリストラテジ] フィールドで、このプロパティの値として [最終チェックポイントから再開] を選択します。 5 [保存] > [実行] をクリックして、マッピングタスクを保存して実行します。
スケジュールを作成して、手動で操作しなくてもマッピングタスクが定期的に実行されるようにすることもできます。マッピングタスクの実行間隔ができるだけ短くなるようにスケジュールを定義できます。Monitor で、タスクの実行後にログのステータスを監視できます。
パフォーマンスを向上させるには、マッピングタスクウィザードの[CDCランタイム]ページで[コミットあたりの最大行数]プロパティのコミット間隔をより長く設定します。ただし、コミット間隔を長くすると、失敗した場合に回復に時間がかかります。
リカバリメカニズムの無効化 CDCジョブでエラーが発生したときにリカバリ状態テーブルを使用して変更内容を取得しないようにする場合は、ターゲットおよびマッピングタスクでリカバリを無効にします。
リカバリを無効にするには、次のタスクを実行します。
1 Snowflake Data Cloudターゲットトランスフォーメーションの[追加の書き込みランタイムパラメータ] フィールドでdisableSnowflakeRecoveryCDC=true プロパティを設定します。2 マッピングタスクの[ランタイムオプション] タブの[詳細セッションプロパティ] で、設定済みのリカバリストラテジを削除します。注: CDCマッピングのソースがSnowflakeではないことを確認してください。マッピングにSnowflakeソースとターゲットが含まれており、ターゲットに対してdisableSnowflakeRecoveryCDC プロパティが設定されている場合、マッピングジョブでは正しい結果が表示されません。