从 Azure Synapse Analytics Spark 池连接到 Azure MI

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

我需要通过 synapse 笔记本连接(读/写)到 Azure MI。部分数据位于 ADLS Gen2 中,我需要将其迁移到 MI。我想安排这个笔记本每天执行。

目前正在寻找使用 pyodbc 和 Jdbc 库。我使用了以下命令并显示相同的错误消息。我什至找不到任何相关的 Microsoft 文档。

token=TokenLibrary.getConnectionString(MILinkedServiceName) 令牌= mssparkutils.credentials.getConnectionStringOrCreds(MILinkedServiceName)

错误:

检查了支持的链接服务,但那里没有任何关于Azure MI的内容。

我无法使用Syanpse管道复制/数据流来满足此要求,因为我需要在Delta表上编写查询(Joins/Sunqueries)以获取迁移到MI的相关数据。如有任何帮助,我们将不胜感激。

pyodbc azure-synapse azure-sql-managed-instance spark-jdbc
1个回答
0
投票
"errorMessage":"[Code=LinkedServiceTypeNotSupported, Target=AzureSqlMI1, Message=Linked Service Type 'AzureSqlMI' not supported].

根据 this Azure SQL 数据库托管实例不在受支持的链接服务列表中。

enter image description here

这可能是出现上述错误的原因。 您可以配置公共端点 - Azure SQL 托管实例并在 Spark Notebook 中使用以下代码:

jdbcHostname = "<MIName>.public.da292b1d138f.database.windows.net"
jdbcDatabase = "<databasename>"
jdbcPort = "3342"
username = "<iuserName>"
password = "<password>"
jdbcUrl = "jdbc:sqlserver://{0}:{1};database={2}".format(jdbcHostname, jdbcPort, jdbcDatabase)
connectionProperties = {
"user" : username,
"password" : password,
"driver" : "com.microsoft.sqlserver.jdbc.SQLServerDriver"

}
query = "Select * from <tablename>"
df = spark.read.jdbc(url=jdbcUrl, table=pushdown_query, properties=connectionProperties)
display(df)  

它将成功从 Spark Notebook 连接并读取 SQL MI 数据库中的数据。

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