Skip to content
Last updated

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では:

MySQL、BigQuery、SQL serverなどのdatabase integrationsでは、incremental dataをロードするためにcolumnまたはfield namesが必要です。例えば:

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を提供します。

  2. last_session_time variableをinput connector configuration fileに注入します。

  3. workflowによってinput connectorがトリガーされると、適切なlast session timeがconnector configuration fileに注入されます。失敗したworkflow sessionのリトライがある場合、variable valueは変更されません。

これらのアプローチの違いを理解することで、ユーザーは特定のdata ingestionニーズに基づいて最適な方法を選択できます。