使用雪花+DBT时随机发生无效JWT令牌



我们已经使用雪花+DBT和密钥对认证很长时间了,我们从来没有遇到过任何问题。

最近,我们开始在一些模型上出现随机连接错误:

250001 (08001): Failed to connect to DB: account.region.snowflakecomputing.com:443. JWT token is invalid.

大多数模型将工作,但其中一些可能会失败。这可能发生在任何模型上,而且不可能是相同的——有时是第一个模型,有时是最后一个模型,有时是一堆模型。它发生在许多模型的运行中,或者在单个模型的运行中。

这是非常不一致的,似乎没有任何模式。有时有效,有时无效。

我们也尝试过1、4或8个线程,无论如何都会发生。

显然,凭证或配置没有任何问题——否则,什么都不会运行。所以我认为DBT处理连接的方式一定有问题。

有趣的是,错误只发生在局部(到目前为止)。我们还没有在DBT Cloud运行中看到它。

DBT版本在这两种情况下都是0.20.2。我们尝试了其他版本(0.21.0,0.20.0 &0.19.1),问题仍然存在。我不知道为什么我们会遇到这个问题,因为我们以前使用过这些其他版本,没有任何问题。

这和这个问题很相似,只是在我们的例子中,它根本不会一直发生。我们试着"不带地区"地连接。(使用Snowflake Organizations),但没有任何区别:

250001 (08001): Failed to connect to DB: organization-account.snowflakecomputing.com:443. JWT token is invalid.

我们能做什么来解决这个问题吗?

编辑:错误发生时,模型挂起60秒,直到出现错误。

编辑2:我认为这个错误可能是在我们开始使用dbt提供的Docker镜像时开始发生的。不确定到底是什么问题,但我们会尝试回到我们自己的自定义图像,看看是否有效。

这种情况已经停止了。🤷‍♂️

可能是因为雪花的变化:

"雪花的云服务层增加了一个改进,放宽了有效性限制">

而且,我们现在使用不同的Docker容器,所以这可能也有一些关系:

  • 首先,我们从Docker Hub切换到xemuliam/dbt。
  • 但是由于不再维护,我们现在使用GitHub的官方DBT Docker图像(在发布问题时不可用):
    • dbt-core
    • dbt-postgres
    • dbt-snowflake

最新更新