注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Foundry のトランスフォームを使用すると、Apache Iceberg の変更履歴とスナップショット機能を活用して、堅牢でスケーラブルな変更データキャプチャ(CDC)パイプラインを簡単に構築できます。トランスフォームで CDC を使用すると、前回のパイプライン実行以降に新規作成、更新、削除されたレコードを効率的に処理でき、効率的でインクリメンタルかつ低遅延なデータ移動と処理を実現できます。
Foundry は、データセットに対する追加専用のインクリメンタルトランスフォームの既存サポートに加え、transforms-tables ライブラリの一部として、Iceberg テーブルの完全な CDC 処理をサポートするようになりました。この機能は、Iceberg の変更履歴ビュー ↗を活用して、Iceberg テーブルのスナップショット間の挿入、更新、削除を取得します。
Iceberg テーブルで CDC を使用すると、次のようなメリットがあります。
Palantir のトランスフォーム API を使用して、Iceberg テーブルの変更履歴を読み書きできます。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13from transforms.api import incremental, transform from transforms.tables import TableInput, TableOutput @incremental(v2_semantics=True).with_table_incremental_options(table_read_mode="changelog") @transform.spark.using( source=TableInput("<PATH>/your_iceberg_input_table"), output=TableOutput("<PATH>/your_iceberg_output_table"), ) def cdc_transform(ctx, source, output): # 前回の実行以降の変更のみを読み込みます changelog_df = source.changelog(["your_primary_key"]) # 変更履歴にビジネスロジックを適用します output.apply_changelog(changelog_df, ["your_primary_key"])
より詳細なガイドと例については、次のセクションにある変更履歴のコード例と技術入門を参照してください。入力に主キーがない例のウォークスルーも含まれています。