【发布时间】:2021-10-14 18:36:23
【问题描述】:
设置:Delta-lake,Powerbi 使用的 Databricks SQL 计算。
我想知道以下场景:我们有一个列timestamp 和一个派生列date(这是timestamp 的日期),我们选择partitionby 日期。当我们查询时,我们在过滤器中使用timestamp,不是日期。
我的理解是,databrikcs 先验不会连接时间戳和日期,并且似乎不会从分区中获得任何优势。但是由于文件实际上是由时间戳(隐式)分区的,所以当 databricks 查看所有文件的最小/最大时间戳时,它会发现它毕竟可以跳过大多数文件。因此,即使分区在我们没有在查询中显式使用的列上,我们似乎也可以获得相当大的好处。
- 这是正确的吗?
- 以这种方式过滤掉文件与直接使用分区相比,性能成本(大致)是多少。
- databricks 是否会将所有最小/最大信息都保存在内存中,还是必须出去查看每个查询的文件?
【问题讨论】:
标签: databricks delta-lake