3

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

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

那么,两个问题...

  • 这会发生吗?在被写出之前,更改是否会在日志中保留一段时间?
  • 我可以强制刷新事务日志,以便我知道磁盘副本已更新吗?
4

2 回答 2

1

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

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

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

于 2020-01-27T18:53:07.377 回答
0

自 2020 年 7 月起,ADF 支持 Delta Lake 格式:

https://techcommunity.microsoft.com/t5/azure-data-factory/adf-adds-connectors-for-delta-lake-and-excel/ba-p/1515793

Microsoft Azure 数据工厂团队正在启用 .. 和数据流连接器,用于使用 Delta Lake 进行数据转换

Delta 目前在 ADF 中作为内联数据集的数据流中的公共预览版提供。

于 2021-02-01T04:57:07.413 回答