保持数据切片刷新的正确方法是什么?想象一下,我有一个包含各种列的表格,但重要的是DATE_CREATED
和DATE_MODIFIED
列。
如果我的数据切片策略基于DATE_CREATED
,我可以定期重新处理旧切片。这遵循ADF对重复性的指导"。我不认为ADF有办法自动执行此操作,但我可以通过API从外部触发刷新(我猜测。)这似乎是最正确的方法,但考虑到ADF没有&# 39;似乎支持这个作为一个功能,它让我觉得有更好的方式做它...它似乎也有点浪费。
如果我的数据切片策略基于DATE_MODIFIED
,我会遇到ADF活动不可重复的问题。刷新时,旧切片会产生不同的结果,因为窗口内的行可能已移动到不同的窗口。另一方面,最新的切片将始终捕获已更改的行。另一个问题是阻止行重复。事前活动清理操作需要以某种方式能够在复制之前清除目标表中的记录。或者必须使用某种类型的UPSERT方法。
最后一个选项是每天TRUNCATE
目的地表。这适用于较小的表,但有其自身的缺点,(1)我们不是真的"切片"完全没了。这只是焦土。 (2)任何时候处理任何切片,由于桌子被吹走,所有日期的所有下游切片都有失败的危险。 (3)如果您的表中有任何可观的数据量,则几乎不可能。
没有选择似乎很好但第一种选择似乎更好。寻求解决此问题或有ADF经验的人的建议。