sqitch init snowflake 无法确定 Snowflake 账户名

Posted

技术标签:

【中文标题】sqitch init snowflake 无法确定 Snowflake 账户名【英文标题】:sqitch init snowflake cannot determine Snowflake account name 【发布时间】:2020-03-10 15:25:58 【问题描述】:

我正在学习 sqitchtutorial-snowflake 教程,但在初始化一个 sqitch 项目时卡住了

当我运行sqitch init widgets --engine snowflake

终端提示,“无法确定雪花账户名”

【问题讨论】:

能否请您分享错误,通过看到错误似乎帐户名无效。 @Sriga - sqitch 从哪里获取帐户名? 通过查看 sqitch 文档页面,建议使用如下项目 URI: sqitch init flipr --uri github.com/sqitchers/sqitch-snowflake-intro --engine snowflake 您可以使用以下链接参考文档页面:sqitch.org/docs/manual/sqitchtutorial-snowflake @Sriga 那是我做的第一件事。同样的错误... uri 实际上不是必需的,但这不是重点。 从我所见,看起来 sqitch 使用了 snowSQL 配置文件?或者它是否有自己的文件,如果有,请检查以确保这些文件中的帐户名只是第一个“。”之前的信息。在您的 Snowflake 实例 url 中。 【参考方案1】:

呃,听起来像是 Sqitch 的一个缺陷。如果找不到帐户代码,它会抱怨,因为没有帐户代码就无法连接到 Snowflake。但是,当命令无法连接到 Snowflake 时,它​​应该抑制该错误,就像在 init 命令中一样。

这是bug report;我们应该在 v1.0.1 之前修复它。

同时,如 cmets 中所述设置 SnowSQL config file 是一个不错的解决方法,但您也可以设置 $SNOWSQL_ACCOUNT 环境变量,例如,

SNOWSQL_ACCOUNT=xxx ./t/sqitch init foo --engine snowflake

【讨论】:

【参考方案2】:

Sriga 提供了此答案viewed here 的文档。

但是,要回答您的问题,要确定帐户名称,需要设置 SnowSQL 配置文件。为此,您需要按照有关如何在计算机上设置 SnowSQL 的指南来建立与 Snowflake 的连接。

SnowSQL config File

确保您还按照本文开头提供的文档中的步骤连接 Sqitch。

【讨论】:

具体来说,您需要确保在配置中设置了“accountname”...不幸的是,sqitch 文档没有说明它使用 snowsql 配置。它也没有说明必须在配置中设置帐户名。 Sqitch 也不允许您在命令中设置帐户名称。 这很奇怪 - 你能确认这是否有效吗?如果没有,我想联系文档作者。 您希望我确认什么? 你是否还在设置snowsql config文件时遇到无法确定账户名的错误? 1) 创建一个没有默认值的 snowsql 配置文件 -> snowsql 可以工作,因为作为命令的一部分,您可以指定 -a MYACCCOUNTNAME -> 但是,如果在 snowql 配置中未设置 accountname 属性-> sqitch 将不起作用。 2) 在 snowsql 配置中设置“accountname”属性——> sqitch 将起作用。总结 1) 如果文档说明这一点会很有帮助 2) 如果 sqitch 允许您将帐户名称作为 CLI 命令的一部分来指示,那就更好了,类似于 snowsql 的做法。

以上是关于sqitch init snowflake 无法确定 Snowflake 账户名的主要内容,如果未能解决你的问题,请参考以下文章

Sqitch 部署到雪花 DW 失败

无法使用Pyspark从EMR群集连接到Snowflake

Sqitch 无法连接到正在运行的 Postgres 实例

sqitch:跨多个环境部署更改

如何降级 Sqitch?

如何使用 sqitch 部署雪花数据库?