使用DBeaver连接Snowflake时查询执行成功但无返回结果卡在Discover attributes阶段
DBeaver使用3.13.5版本JDBC驱动连接Snowflake卡在Discover attributes阶段解决方案
该问题根因为3.13.x版本Snowflake JDBC驱动重构了元数据拉取逻辑,默认会遍历所有有权限的Schema拉取列属性,和DBeaver默认的全量元数据预加载逻辑冲突,导致本地属性识别阶段阻塞,但查询请求已经正常发送到Snowflake端执行完成。
可按以下优先级依次尝试解决:
- 优先替换Snowflake JDBC驱动版本:将现有3.13.5版本降级到3.12.17稳定版,该版本和DBeaver的元数据拉取逻辑兼容性最好,不会出现执行完成但卡属性识别的问题。操作路径为:DBeaver编辑对应Snowflake连接,进入驱动设置页,删除现有3.13.5版本驱动,手动导入3.12.17版本的jar包后保存连接,重启DBeaver再测试查询。
- 若需保留3.13.x版本驱动,可在连接的自定义参数中添加配置:
CLIENT_METADATA_REQUEST_USE_CONNECTION_CTX=TRUE,该参数会强制驱动在拉取元数据时使用当前连接的上下文,仅拉取当前Schema的元数据,避免跨会话全量拉取元数据超时导致的卡Discover attributes问题。 - 调整DBeaver结果集加载配置:进入DBeaver全局设置,找到编辑器 - SQL编辑器 - 结果集,关闭「自动获取所有列属性」选项,手动限制结果集预加载行数为1000以内,避免一次性拉取大量元数据导致的本地阻塞。
- 确认账号权限:确保当前连接账号拥有对应查询表的
SELECT和METADATA READ权限,权限不足也会导致元数据拉取卡住但查询本身在Snowflake侧执行完成。
内容的提问来源于stack exchange,提问作者Naveed
相关产品推荐
相关产品推荐

