我正在开发一个使用 Durable Functions (v2) 执行的 ETL 流程。基本流程如下:
- 使用活动检索要处理的产品代码列表
- 从主编排器扇出到 N 个子编排,以将多个集成数据源合并为单个对象并在 Cosmos DB 中更新
主要编排是使用单例实例模式实现的,因此一次只运行一个实例。
它工作正常,但是底层 TaskHub 表存储中的执行历史随着该进程的每次执行而显着增长,并且存在明显的维护问题,因为该进程将按小时运行,并且会在底层生成大量数据TaskHub 表。
我正在努力寻找有关如何维护此流程的执行历史以使其不会增长太多的指导。我知道ContinueAsNewAsync()
API,但这并不太适合我的设计,因为它也会强制进程再次运行。我也找不到任何可用于清除执行历史记录的 API 信息。
现在是否需要直接手动清除表格,比如使用单独的计时器触发函数?考虑到持久函数表的架构可以随时更改,这感觉有点 hacky / volatile。