我需要通过 synapse 笔记本连接(读/写)到 Azure MI。部分数据位于 ADLS Gen2 中,我需要将其迁移到 MI。我想安排这个笔记本每天执行。
目前正在寻找使用 pyodbc 和 Jdbc 库。我使用了以下命令并显示相同的错误消息。我什至找不到任何相关的 Microsoft 文档。
token=TokenLibrary.getConnectionString(MILinkedServiceName) 令牌= mssparkutils.credentials.getConnectionStringOrCreds(MILinkedServiceName)
错误:
检查了支持的链接服务,但那里没有任何关于Azure MI的内容。
我无法使用Syanpse管道复制/数据流来满足此要求,因为我需要在Delta表上编写查询(Joins/Sunqueries)以获取迁移到MI的相关数据。如有任何帮助,我们将不胜感激。
"errorMessage":"[Code=LinkedServiceTypeNotSupported, Target=AzureSqlMI1, Message=Linked Service Type 'AzureSqlMI' not supported].
根据 this Azure SQL 数据库托管实例不在受支持的链接服务列表中。
这可能是出现上述错误的原因。 您可以配置公共端点 - 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 数据库中的数据。