2

実行に Durable Functions (v2) を使用する ETL プロセスを開発しています。基本的なプロセスは次のとおりです。

  1. アクティビティを使用して、処理する製品コードのリストを取得します
  2. メイン オーケストレーターから N 個のサブオーケストレーションにファンアウトして、複数の統合データ ソースを単一のオブジェクトにマージし、Cosmos DB で更新します。

メインのオーケストレーションは、一度に 1 つのインスタンスのみが実行されるように、シングルトン インスタンス パターンを使用して実装されます。

正常に動作していますが、基礎となる TaskHub テーブル ストレージの実行履歴は、このプロセスの実行ごとに大幅に増加します。このプロセスは正時に実行され、基礎となるテーブルに大量のデータが生成されるため、明らかにメンテナンス上の懸念があります。 TaskHub テーブル。

このプロセスの実行履歴を維持して、大きくなりすぎないようにする方法についてのガイダンスを見つけるのに苦労しています。私はContinueAsNewAsync()API を認識していますが、これはプロセスを再度実行することを強制するため、私の設計にはあまり適していません。実行履歴をクリアするために使用できる API に関する情報も見つかりません。

別のタイマートリガー機能を使用して、テーブルを直接手動でクリアすることは問題ですか? 永続関数テーブルのスキーマがいつでも変更される可能性があることを考えると、これは少しハック/揮発性に感じます。

4

3 に答える 3