You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查Databricks发起的查询是否被下推至Snowflake执行

方法1:查看Spark执行计划

对最终生成的DataFrame执行df.explain("extended")或者df.explain("formatted"),查看输出的执行计划结构即可判断:

  • 如果Scan Snowflake节点中明确展示PushedFilters列表包含你编写的过滤条件,同时Join、聚合等操作被包含在Snowflake Scan的下推逻辑中,甚至可以直接看到连接器生成的完整下推SQL语句,说明对应逻辑已经下推到Snowflake侧运行
  • 如果执行计划中出现Exchange、HashAggregate、SortMergeJoin等纯Spark原生算子,且前置的Snowflake Scan仅返回了原始全量表数据,说明对应逻辑是在Databricks集群侧运行
方法2:查看Snowflake侧查询历史

登录Snowflake控制台,进入查询历史页面,筛选你Databricks连接所用的Snowflake账号、和代码运行时间匹配的时间窗口:

  • 如果你能找到和DataFrame计算逻辑匹配的SQL查询(包含你编写的过滤条件、Join字段、聚合函数等),且查询执行时间和Databricks代码运行时间吻合,说明对应逻辑在Snowflake侧运行
  • 如果你仅能看到SELECT * FROM 目标表这类全量拉取的简单查询,说明后续的所有计算都在Databricks侧运行
注意事项
  • 自定义Spark UDF、非标准SQL函数、部分复杂窗口函数无法被下推,遇到这类算子时连接器会先拉取前置计算结果到Spark侧再执行后续计算
  • 如果需要提升下推概率,可以先将中间计算结果写入Snowflake临时表,再基于临时表做后续计算

内容的提问来源于stack exchange,提问作者Ashok Khote

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 11:48:00