Databricks-查找最近更新的delta表



我正在Databricks-GCP中处理一个用例,在那里我试图找出Databricks中架构/数据库中的delta表,这些表在过去1天内更新。我使用了DESCRIBE DETAIL <tableName>,并对所有表名循环运行了此命令,并对"lastModified"列进行了检查,但这需要花费大量时间。

有没有办法一次得到所有表的lastModified时间。

我不认为有本机方法可以做到这一点,但如果你知道所有表的路径,你可以使用一个小技巧:检查表的_delta_log文件夹中的_last_checkpoint文件。如果你得到了这个文件的时间(例如,使用Python函数os.path.getmtime,不要忘记在使用它的路径的开头添加/dbfs(,你基本上会得到最后修改的日期。

这样做可能会快得多,如果需要,你甚至可以并行化工作,但缺点是你需要有所有表的路径(或者至少可以通过浏览文件夹找到它,带有_delta_log的文件夹是一个delta表,所以你应该能够扫描磁盘(。

编辑(以防以后有人看不到评论(:

正如您所说,_last_checkpoint文件应该每10次提交才修改一次,所以这并不好。作为一种变通方法,您可以查看_delta_log中所有文件的日期,并进行最后一次修改(这里的示例(,这应该可以工作,我怀疑它仍然比desc detail快得多。

相关内容

  • 没有找到相关文章