将 AWS QuickSight 连接到 Azure SQL 数据库?

Posted

技术标签:

【中文标题】将 AWS QuickSight 连接到 Azure SQL 数据库?【英文标题】:Connect AWS QuickSight to an Azure SQL database? 【发布时间】:2020-02-02 15:13:10 【问题描述】:

我正在尝试使用 AWS QuickSight 分析一些存储在 Azure SQL 服务器上的 SQL Server 中的数据。

根据 QuickSight,它可以连接到 SQL Server,但每当我尝试验证连接时,该过程都会挂起大约一分钟,然后返回“无法打开服务器”。.”由登录请求。登录失败。'

我最初怀疑这是 Azure 上 MS SQL 服务器上的防火墙的问题。因此,I looked up the IP regions here

我使用的区域是美国西部(俄勒冈) (us-west-2),因此我将 IP 范围 54.70.204.128 到 54.70.204.159 列入白名单 - 但我仍然得到完全相同的 1 分钟(或所以)暂停,在错误再次出现在 Quick Sight 中之前。

确切的错误是:

您的数据库生成了 SQL 异常。这可能是由查询超时、资源限制、查询之前或期间的意外 DDL 更改以及其他数据库错误引起的。检查您的数据库设置和查询,然后重试。

如果我点击“显示详细信息”,则会收到一条进一步的消息:

错误详情 地区:us-west-2 时间戳:XXX 请求编号:XXX 源错误代码:40532 sourceErrorMessage:无法打开登录请求的服务器“...”。登录失败。客户端连接ID:* 源错误状态:S0001 sourceException: com.microsoft.sqlserver.jdbc.SQLServerException 源类型:SQLSERVER

显然以上部分内容已被删节。

我不敢相信 QuickSight 无法连接到 Azure MS SQL 数据库,所以我想知道是否有其他人遇到过这个问题,他们的解决方案是什么?

【问题讨论】:

“登录失败”通常意味着它实际上设法找到并连接,但您的登录不正确。您可以使用具有这些凭据的其他方法登录吗?在 Azure SQL 中有必要指定一个默认数据库 - 确保你这样做 嗨@Nick.McDermain - 感谢您的评论。我使用的登录详细信息绝对正确(从连接字符串复制/粘贴),并且我可以确认连接字符串在各种其他方法中都有效。另外,我也在指定一个默认数据库,但感谢您指出。您是否有机会从 QuickSight 连接到 MS SQL Azure 数据库?目前我开始怀疑这是否可能。 不,我从未使用过 QuickSight。销售宣传特别提到“AWS 数据源,包括 Amazon RDS”和“本地数据库,如 SQL Server”。我不知道这是否是 Azure SQL 的特定排除。接下来要做的是使用此方法从 Azure SQL 日志获取有关登录错误的更多信息:***.com/questions/50539077/… 它会告诉您例如密码错误、登录错误、无法访问数据库等。 这很有趣,谢谢@Nick.McDermaid。我将进行调查,但目前我花了很长时间试图让 QuickSight 与 Azure MS SQL 对话,以至于我不得不放弃并恢复使用 Tableau,这是我试图避免的事情。如果我回到这个并让它工作,我会在这里发布解决方案。再次感谢! 【参考方案1】:

我自己也遇到过这个问题,似乎很多其他人也遇到过。但是,如上所述,几乎没有文档提供连接 Quicksight 和 Azure Sql Server 的步骤。

我自己的问题主要在于我提供给 Quicksight 的细节。大多数与 Azure sql server 数据库的连接都与您的基本信息无缝连接:

服务器、端口、数据库名称、用户名、密码

但是,AWS Quicksight 试图通过 JDBC 身份验证连接到我的 Azure Sql 服务器。

JDBC 身份验证要求您的用户名输入为 = "username"@"servername"

正确连接示例:

服务器:“服务器名称”.database.windows.net 端口:1433 数据库名称:“数据库名称” 用户名:“用户名”@“服务器名” 密码:“密码”

最后,我关闭了 SSL 复选框。它不适用于 SSL 连接。

【讨论】:

【参考方案2】:

请参阅此文档:Relational Data Sources

您可以使用以下任何关系数据存储作为 Amazon QuickSight 的数据源:

亚马逊雅典娜 亚马逊极光 亚马逊红移 Amazon Redshift Spectrum 亚马逊 S3 Amazon S3 分析 Apache Spark 2.0 或更高版本 MariaDB 10.0 或更高版本 Microsoft SQL Server 2012 或更高版本 mysql 5.1 或更高版本 PostgreSQL 9.3.1 或更高版本 Presto 0.167 或更高版本 雪花 Teradata 14.0 或更高版本

注意

您可以通过支持的数据源链接或导入此处未列出的其他数据源。

您可以从 PostgreSQL 实例中的表和物化视图以及所有其他数据库实例中的表中检索数据。

Amazon Redshift 集群、Amazon Athena 数据库和 Amazon Relational Database Service (RDS) 实例必须位于 AWS 中。其他数据库实例必须位于以下环境之一,才能从 Amazon QuickSight 访问:

亚马逊 EC2 在您的本地网络上 在数据中心或其他可访问 Internet 的环境中

AWS QuickSight 文档没有说它支持 Azure SQL 数据库,只是说支持的其他数据库环境。

其他人在 AWS 论坛上问过这个问题,没有人或 AWS QuickSight 官方给出答案。

参考:Can Quicksight connect to Azure SQL Database?

我们可以猜测它目前不支持 Azure SQL。

希望这会有所帮助。

【讨论】:

这确实有帮助,谢谢。似乎它不受支持 - 至少,根据我的经验,这里没有人说他们已经设法让它工作。 @ThomasOwen,是的,我们找不到更多关于此的信息。如果我的答案对您有帮助,您可以接受它作为答案(单击答案旁边的复选标记,将其从灰色切换为已填充。)。或者,请将您的标记为答案。这对其他社区成员可能是有益的。谢谢。 @ThomasOwen,你能接受它作为答案吗?或者请标记自己,非常感谢!【参考方案3】:

根据我所做的任何谷歌搜索以及此处发布的回复,似乎虽然 AWS 或 Azure 没有具体声明说两者无法连接,但同样没有回复说它们可以连接。有趣的是,没有人回应说他们已经开始工作了。我现在的感觉是它行不通。

【讨论】:

【参考方案4】:

虽然 Azure SQL 未明确列为 QuickSight data sources 之一,但您仍可以将其用作数据源。现在也支持TLS/SSL,我亲自测试过。

您只需要确保使用“用户名”@“服务器名”格式作为用户名,正如 Scotty Smith 所述。

【讨论】:

以上是关于将 AWS QuickSight 连接到 Azure SQL 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

Quicksight 数据集 - 无法查看雪花模式和表

更改雪花数据库所有者

AWS Quicksight 创建仪表板 BOTO3 API 调用错误

AWS Quicksight,Redshift“引用嵌套表的子查询不能包含 WINDOW 操作”

将 AWS Amplify 前端连接到 AWS Elastic Beanstalk 后端时出现 CORS 问题

如何将特定 AWS API Gateway 阶段连接到特定 AWS lambda 别名