提问人:Anil Panda 提问时间:9/3/2023 最后编辑:Alex OttAnil Panda 更新时间:9/9/2023 访问量:217
增量实时表中的 skipChangeCommits
skipChangeCommits in Delta live table
问:
我正在尝试创建一个 DLT 管道来实现 SCD 类型 1。但是,在我最初的完全刷新之后,当我尝试进行增量刷新时,它失败并出现以下错误:
“发生错误,因为我们检测到对源表中的一行或多行进行了更新或删除。流式处理表只能使用仅追加的流式处理源。如果希望将来删除或更新源表的行,请将表<>转换为实时表,而不是流式实时表。若要解决此问题,请对表执行完全刷新<>。完全刷新将尝试清除表<>中的所有数据,然后从流式处理源加载所有数据。"
根据 Databricks 文档,
“默认情况式处理表需要仅追加的源。当一个流式处理表使用另一个流式处理表作为源,并且源流式处理表需要更新或删除(例如,GDPR“被遗忘权”处理)时,可以在目标流式处理表上设置 skipChangeCommits 标志以忽略这些更改。"
但我的怀疑是,除非我们对 DLT 管道进行全面刷新,否则自动加载器无论如何都不会选择对现有文件进行任何更改,并且只会选择添加的新文件。在这种情况下,skipChangeCommit 有什么用?
有人可以解释一下skipChangeCommits的确切用例是什么吗?
我尝试在流式处理表中将 skipChangeCOmmits 设置为 True,但错误无法解决。
答: 暂无答案
评论