# About Incremental Loading Treasure Data CDPの多くのbatch input connectorsは、incremental data loadingをサポートしています。この機能は、次のような場合に便利です: - data sourcesが大きすぎて、定期的に完全に再インポートできない場合。 - 情報を最新の状態に保つために、更新されたデータを頻繁にインポートする必要がある場合。 - 使用量を最適化するために、取り込まれる行数を最小限に抑える必要がある場合。 ## Incremental Loadの仕組み incremental loadingを有効にするには、data sourceに新しいレコードを識別するのに役立つ特定のカラム(例: created_date)が必要です。incremental loadを有効にする方法は、Integration HubとTreasure Workflowのどちらを使用しているかによって異なります。 ## Integration Hub経由のIncremental Load Integration Hubでsource settingを使用する場合、incremental loadメカニズムはTreasure Dataによって管理されます。プロセスは次のように機能します: 1. ユーザーは1つ以上のincremental columns(例: `id,` `created_at)を指定します。` 2. input connectorは定期的に実行されるようにスケジュールされます。 3. Treasure Dataは、`Config Diff`という特別なセクションにincremental columnsの最新の値を自動的に記録します。 4. スケジュールされた各実行で、connectorはこれらの記録された値に基づいて新しいレコードのみを取得します。 Treasure Dataはlast_recordsを自動的に維持および更新するため、ユーザーは各実行のためにparametersを手動で設定する必要はありません。 このアプローチは、前回のスケジュールされた実行以降に変更されたobject targetsのみを取得したい場合に便利です。 例えば、UIでは: ![](/assets/incremental1.bd8de63b4b82f357f5dfd0776df91405e70977c6d82d8927be94760cd09eaaaa.9b411a8b.png) MySQL、BigQuery、SQL serverなどのdatabase integrationsでは、incremental dataをロードするためにcolumnまたはfield namesが必要です。例えば: ![](/assets/incrementalloading.7d9cc254817b7a3d616c26f0a9bcea5ff5c67203dc8f00fe2d3c401ed94e3b6b.9b411a8b.png) ## Treasure Workflow経由のIncremental Load(推奨) Treasure Workflow経由でincremental loadingを設定する場合、プロセスはユーザーによる明示的な管理が必要です。UIベースのアプローチとは異なり、Treasure Workflowはincremental valuesを自動的に追跡しません。代わりに: 1. ユーザーは、`session_time`やその他のworkflow parametersなどのworkflow variablesを使用して、独自のincremental logicを定義します。 2. この`session_time値はconnector configuration fileに注入されます。` 3. workflowが実行されるたびに、指定されたsession timeを使用してどのデータをインポートするかを決定します。 4. workflow sessionが失敗した場合、同じ`session_time`を再利用してデータの一貫性を確保できます。 このアプローチは、履歴データを再ロードする必要があるbackfill operationsなどのシナリオを処理できるように、より柔軟性を持つように設計されています。 ### incremental loading用のYMLファイルを作成する このアプローチでは、input connectorのincremental-loading機能は使用されません。代わりに、workflow variablesがconnector configurationに注入され、各workflow sessionでデータの異なる部分をロードできるようになります。 1. workflow variableの使用を宣言するworkflow definitionを作成します。workflowは、incremental loadingやその他の目的に役立つさまざまなvariablesを提供します。 ![](/assets/image-20240906-102329.185571543c525237614e864df719771ad9739dc84b33eb7ece3500e9bf113bcd.9b411a8b.png) 2. `last_session_time` variableをinput connector configuration fileに注入します。 ![](/assets/image-20240906-102711.f98a8bef8b79782b82df229906b096bca532647f92c6b1c011443d2e48930391.9b411a8b.png) 3. workflowによってinput connectorがトリガーされると、適切なlast session timeがconnector configuration fileに注入されます。失敗したworkflow sessionのリトライがある場合、variable valueは変更されません。 これらのアプローチの違いを理解することで、ユーザーは特定のdata ingestionニーズに基づいて最適な方法を選択できます。