【发布时间】:2022-01-04 02:16:24
【问题描述】:
我有一个数据流,它从 Parquet 文件中读取数据,进行一些过滤,然后加载到 Delta Lake 中。数据流会运行多次,我不想在我的 Delta Lake 中出现重复数据。为了保障这一点,我想实现一个删除插入机制——找到传入数据的最小和最大日期,并删除目标(delta)中落入此范围内的所有数据。删除后,所有过滤的传入数据都将插入到 delta Lake 中。
从文档中,我看到我需要在 Alter Row Tx 的行级别添加策略以标记该特定行以进行删除。我将 Delete-If 条件添加为 - between(toDate(date, 'MM/dd/yyyy'), toDate("2021-12-22T01:49:57", 'MM/dd/yyyy'), toDate("2021-12-23T01:49:57", 'MM/dd/yyyy')) 其中日期是传入数据中的一列。
但是,在 Alter Row Tx 的数据预览中,当肯定有属于该范围的记录时,所有行都被标记为插入,0 为删除。
我怀疑 Delete-If 条件不能按我希望的方式工作。在这种情况下,如何在以 Delta 为目标的 Data Flow 中的数据范围之间实现删除?
【问题讨论】:
标签: azure date azure-data-factory delete-row azure-data-flow