通过 ODBC 将 SSIS 连接到 Snowflake

问题描述 投票:0回答:1

我们的组织正在从 SQL Server 迁移到 Snowflake,现在我们负责确定是否应该继续使用 SSIS 来实现自动化流程,或者是否应该迁移到 Azure 数据工厂 (ADF)。 ADF 可能最有意义,因为 ADF 和 Snowflake 都存在于云中,但我们至少必须检查是否可以继续使用 SSIS,因为如果我们迁移到 ADF,我们的所有流程都需要重写。

无论如何,我正在尝试使用 32 位 ODBC 驱动程序连接到 Snowflake。我实际上从 Snowflake 站点下载了 32 位和 64 位版本,但是当我使用 64 位 ODBC 工具创建系统 DSN 时,我创建的 DSN 没有显示在 SSIS 中。 32 位的就可以了,所以这就是我正在使用的。因此,我着手创建了 32 位 DSN,并且我首先使用了外部浏览器身份验证器,这实际上允许测试连接成功。问题是我们无法使用该身份验证器,因为它会触发浏览器窗口进行身份验证,然后弹出一个对话框,指示连接成功。使用这个几乎迫使某人坐下来观看自动化流程,而我们不能这样做。

在 SSIS 内部,我创建了一个连接(通过连接管理器),但我没有使用 DSN,而是创建了字符串。该字符串看起来像这样:

Driver={SnowflakeDSIIDriver};server=[server].east-us-2.azure.snowflakecomputing.com;uid=[user];database=[database];schema=[schema];warehouse=[warehouse];role=[prod role];authenticator=snowflake_jwt;priv_key_file=[unc location]\rsa_key.p8

顺便说一句,我实际上在字符串中拥有服务器、数据库等的实际值;出于隐私原因,我只是在这里删除了它们。无论如何,当我尝试使用此字符串进行连接时,我收到以下错误消息:

Test connection failed because of an error in initializing provider.  ERROR [HY000] [Snowflake][Snowflake] (44) Error finalize setting:  Marshaling private key failed.

我检查了所有设置,一切似乎都正常。我实际上可以在 DBeaver、私钥文件等中使用这些相同的设置,并获得连接。所以对我来说很奇怪的是我无法在 SSIS 中建立连接(尽管是的,微软以希望所有的东西都是他们的而闻名)。但是如果我可以在 DBeaver 中获得连接,为什么我无法在 SSIS 中获得连接?

我做了一些谷歌搜索,我发现当提供的密码或凭据存在问题时,最常出现该错误。我已经验证了凭据,并且如上所述,使用相同的凭据我可以在 DBeaver 中获得连接。那么有人知道为什么我无法在 SSIS 中获得一个吗?

ssis snowflake-cloud-data-platform odbc
1个回答
0
投票

您能够成功 SSIS 到 Snowflake 的连接吗?如果是这样,您能否详细分享 ODBC DNS 创建以及如何在 SSIS 中连接。 我正在尝试使用 Snowflake 32 位 ODBC 驱动程序创建 DNS。还没有成功。然后我需要将它连接到 SSIS 以将 Snowflake 中的数据获取到 SSIS。

© www.soinside.com 2019 - 2024. All rights reserved.