在 Azure 中读取 Databricks 表

Reading Databricks tables in Azure

请澄清我的困惑,因为我一直听说我们需要阅读 Databricks Delta tables 创建的每个 Parquet 文件,以在 SCD2 table 的情况下获取最新数据。这是真的吗?

我们可以简单地使用 SQL 并获取最新的行吗? 我们可以使用一些 date/time 列来获取该行的更改历史记录吗?

谢谢

如果愿意,您可以创建和管理 Delta table 作为 SCD2。实际上,让您感到困惑的一定是 Time Travel 功能。它只允许您将 Delta table 回滚到由 Databricks 自动管理的任何历史状态。

答案:

  • 没有。相反,我们需要查看所有作为 JSON 文件存储在 _delta_log 文件夹内的 Delta lake 事务日志以及 Parquet 文件,然后查看哪些 parquet 文件被用作最新数据。有关详细信息,请参阅此 doc
  • 是的。我们可以使用 SQL 来获取最新的行。实际上,任何 SQL 脚本执行都将始终是 return 最新数据。但是,有两种方法可以通过 SQL 获取 table 的历史版本,它们是 1) 指定“截至版本”和 2) 指定“截至时间戳”。阅读 more.

PS这个问题问得好