首页 > 解决方案 > 我可以强制刷新 Databricks Delta 表,以便磁盘副本具有最新/一致的数据吗?

问题描述

我正在从 Azure 数据工厂访问 Databricks Delta 表,它没有与 Databricks 表的本机连接器。因此,作为一种解决方法,我使用 LOCATION 关键字创建表以将它们存储在 Azure Data Lake 中。然后,由于我知道表格文件的位置,我只需从数据工厂读取底层 Parquet 文件。这工作正常。

但是……如果 Delta 事务日志中有缓存信息还没有写入磁盘怎么办?比如说,一个应用程序更新了表中的一行,而磁盘还没有反映这个事实。那么我从数据工厂中读取的内容将是错误的。

那么,两个问题...

标签: databricksdelta-lake

解决方案


在这个主题上也有人问过类似的问题(例如,请参见此处)。

对于 delta 表,您需要 delta-lake 支持(因为 delta 日志正在捕获真实情况)。因此,到目前为止,您必须使用 Databricks 活动在 delta 表上使用 Azure 数据工厂进行进一步处理(您还可以将数据集复制到 parquet,以使数据可用于尚不支持 delta-lake 的其他服务)。从理论上讲,您可以使用 0 的保留期进行清理,但不建议这样做,并且可能会导致数据不一致。

根据Azure 反馈论坛,计划在未来对此提供支持。


推荐阅读