新手求助:如何在Snowflake中建立Dremio连接?
在Snowflake中连接Dremio的正确操作指南
你提供的CREATE STAGE语句存在几个关键问题,下面直接给你修正方案和完整步骤:
原语句的问题点
- URL路径错误:不能直接指向Dremio的9047端口根目录,必须指定具体的Dremio数据源和数据集路径
- 认证方式错误:Dremio不支持直接用USERNAME/PASSWORD在Snowflake阶段中认证,需要使用Dremio的个人访问令牌(PAT)
- 格式配置重复:
DATA_FORMAT和FILE_FORMAT只需保留一个即可
正确操作步骤
1. 先获取Dremio个人访问令牌(PAT)
- 登录Dremio UI,点击右上角头像 → Settings → Personal Access Tokens
- 创建新令牌,务必保存好生成的令牌字符串(只会显示一次)
2. 创建正确的Snowflake外部阶段
CREATE OR REPLACE STAGE <自定义阶段名> URL = 'http://<Dremio主机地址>:9047/api/v3/source/<Dremio数据源名>/<数据集完整路径>' CREDENTIALS = ( AUTHENTICATOR = 'OAUTH2', OAUTH_CLIENT_ID = '<你的Dremio用户名>', OAUTH_REFRESH_TOKEN = '<你刚才生成的PAT令牌>' ) FILE_FORMAT = (TYPE = PARQUET);
示例:如果Dremio里的数据集是Samples.dremio.com/nyc-taxi-trips,URL就写http://dremio-server:9047/api/v3/source/Samples.dremio.com/nyc-taxi-trips
3. 验证连接是否成功
执行以下命令测试能否访问Dremio的数据集:
LIST @<自定义阶段名>;
额外注意事项
- 确保Snowflake的IP地址能访问Dremio的9047端口(云环境要配置安全组/防火墙规则)
- 如果Dremio启用了HTTPS,URL要改成
https://<Dremio主机地址>:9047,同时在阶段配置里加上SSL = TRUE - 数据集路径要和Dremio里的完全一致,注意大小写(Dremio路径区分大小写)
内容的提问来源于stack exchange,提问作者janu sh
相关产品推荐
相关产品推荐

