Synapse Notebook 到 Azure SQL 数据库的连接问题

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

在 Synapse Analytics 中创建了到 Azure SQL 数据库的链接服务,该服务使用身份验证类型“ 系统分配的托管身份”。而不是在 PySpark Notebook 中引用它。方法 getConnectionString 用于获取访问令牌。

但它失败并出现错误 Message=Missing required property 'connectionstring' on AzureSqlLinkedservice

以下是代码和错误消息详细信息

代码:

jdbcUrl = "jdbc:sqlserver://my_server_name.database.windows.net:1433;database=my_db_name;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30"
token=TokenLibrary.getConnectionString("AzureSQLLinkedServiceName")

pushdown_query = "(SELECT col1 FROM my_table_name) as tbl"connectionProperties = {
 "driver" : "com.microsoft.sqlserver.jdbc.SQLServerDriver",
 "accessToken" : token
}
df = spark.read.jdbc(url=jdbcUrl, table=pushdown_query, properties=connectionProperties)
display(df)

错误:

Py4JJavaError:调用 z:com.microsoft.azure.synapse.tokenlibrary.TokenLibrary.getConnectionString 时发生错误。 :com.microsoft.azure.synapse.tokenlibrary.TokenServiceClientResponseStatusException:令牌服务返回“客户端错误”(400),消息:{“result”:“DependencyError”,“errorId”:“BadRequest”,“errorMessage”:“[代码 = 400,目标 = AzureSqllinkedservice,消息 = AzureSqllinkedservice 上缺少必需的属性“连接字符串”]。错误成分:LSR”}

jupyter-notebook azure-sql-database connection-string azure-synapse-analytics linked-service
1个回答
0
投票

您面临的错误是因为您正在使用不正确的配置创建链接服务,要在创建链接服务时解决该问题,您必须选择

version
作为 Legacy 并且
Authentication
应该是 系统分配的托管身份。

enter image description here

执行:

enter image description here

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