# データパイプラインの重要な概念
# データソースと送信先
Workatoのデータパイプラインレシピは、アプリケーション、ファイルシステム、データベース、APIエンドポイント、イベントストリームなど、さまざまなデータソースからデータを抽出し、それらをデータウェアハウスの送信先と同期します。
各パイプラインは、単一のアプリケーションまたはデータソースから複数のオブジェクトやフィールドのデータを取得し、そのデータを単一の送信先に同期(シンク)します。
# シンクとは何ですか?
シンクは、データパイプラインレシピの設定で選択したオブジェクトの抽出とロードを単一の並行実行で行うことです。レシピの設定時にシンクの頻度を設定できます。各シンクが完了すると、ソースからの新規または更新されたデータが送信先に複製され、ソースと送信先間のデータ整合性を確保します。
# ベストプラクティス:バルクまたはバッチ抽出
Workatoのデータパイプラインレシピでは、大量のデータを単一のジョブでバルク処理できます。
バッチ処理はバッチサイズやメモリ制約によって制限される可能性があり、一般的にETL/ELTの文脈ではあまり適していません。
バルク操作は、大量のデータを単一の集団的なトランザクションで処理します。個々のレコードを操作する代わりに、バルク操作はデータを一括で処理し、しばしば数千または数百万のレコードを単一の操作で転送または変更します。
バルクアクションは一般的に非同期アクションであり、次のような利点を提供します:
効率性
バルク操作は大規模なデータセットを扱う際に非常に効率的です。バルク操作は個々のレコードを処理する際のオーバーヘッドを最小化し、実行時間を短縮します。
原子性
バルク操作は一般的に原子的です。つまり、それらは単一の不可分な単位として扱われます。これにより、すべての変更が適用されるか、まったく適用されないかを保証し、データの整合性を維持します。
大規模データセットへの最適化
バルク操作は大量のデータを扱う際にパフォーマンスを最適化し、大規模なデータ移行、同期、変換を含むシナリオに適しています。
ネットワークオーバーヘッドの削減
バルク操作はデータを大きなチャンクで送信するため、個々のレコードを別々に処理する場合と比較して全体的なネットワークオーバーヘッドを削減します。
コール数の削減
バルク転送は、ソースおよび送信先システムへのコール数を減らすことでコストを削減できます。
# 過去および増分シンク
ヒストリカル
既存データの初回バルクロードでは、ソースアプリケーションからすべてのレコードが抽出され、送信先に複製されます。期間は設定可能です。
インクリメンタル
新しいデータの継続的な同期。パイプラインがシンクするたびに、変更されたデータのみが同期されます。
データパイプラインレシピを最初に開始すると、ソースアプリケーションからすべてのデータ、または指定した日付以降のすべてのデータを抽出する完全なヒストリカルシンクが実行されます。その後のすべてのシンクはインクリメンタルです。
# Workatoデータパイプラインでのスキーマのレプリケーションとスキーマドリフトの処理
スキーマドリフトとは、データセットの構造やスキーマが時間とともに変化することを指します。データオーケストレーションの文脈では、データオーケストレーションプロセスが実装された後にソースデータの構造が変化することをスキーマドリフトと呼びます。これらの変化には、フィールド、データ型、その他のスキーマ要素の追加、削除、または変更が含まれます。
スキーマドリフトは、ソースとターゲットシステム間の不整合を引き起こす可能性があるため、データオーケストレーションプロセスに課題をもたらすことがあります。適切に処理されない場合、スキーマドリフトはデータ変換エラー、データの損失、または不正確なデータ分析を引き起こす可能性があります。
# スキーマ変更の処理方法を選択する
Workatoは自動スキーマ検出と適応を通じて、スキーマドリフトを検出し管理します。
データパイプラインレシピを作成する際に、スキーマドリフトを自動的に管理するかどうかを選択できます。
# データパイプラインは削除されたフィールドをどのように処理しますか?
ソースからフィールドが削除された場合、データパイプラインは送信先にそのフィールドを保持するため、以前の値を参照できます。
Last updated: 2024/12/18 21:44:08