使用链接服务和自托管IR从本地SQL Server向Azure Synapse Notebook取数求PySpark代码
通过自托管集成运行时和链接服务在Azure Synapse Notebook中读取本地SQL Server数据
可用的PySpark代码示例
以下代码通过已配置的SQL Server链接服务和自托管集成运行时(Self-hosted IR)从本地SQL Server读取数据,请替换代码中的占位符为你的实际配置:
# 替换为你的实际配置信息 linked_service_name = "你的SQL Server链接服务名称" self_hosted_ir_name = "你的自托管集成运行时名称" database_name = "目标数据库名称" target_table_or_query = "dbo.目标表名" # 也可写为'SELECT * FROM dbo.目标表名'这类查询语句 sql_user = "本地SQL Server登录账号" sql_password = "本地SQL Server登录密码" # 读取数据的PySpark逻辑 df = spark.read \ .format("com.microsoft.sqlserver.jdbc.spark") \ .option("url", f"jdbc:sqlserver://AKHAYASQL/SQL2019;databaseName={database_name}") \ .option("dbtable", target_table_or_query) \ .option("linkedServiceName", linked_service_name) \ .option("connectVia", self_hosted_ir_name) \ .option("user", sql_user) \ .option("password", sql_password) \ .load() # 验证读取结果 df.show()
关键配置验证项
确保以下配置已正确完成,否则会导致连接失败:
- 自托管集成运行时状态为在线,且所在本地机器能正常访问
AKHAYASQL/SQL2019服务器 - SQL Server链接服务已通过测试,确认能成功连接到本地SQL Server
- 本地SQL Server账号拥有目标数据库/表的读取权限
- 自托管IR所在机器的防火墙允许SQL Server默认端口(1433)的入站/出站流量
常见报错排查
- 连接超时/无法解析服务器:检查自托管IR是否在线,在IR所在机器上测试
AKHAYASQL/SQL2019的网络连通性 - 权限不足:验证SQL Server账号的读写权限,确认链接服务配置的凭据与实际账号信息一致
- 驱动兼容性问题:Synapse环境默认集成SQL Server JDBC驱动,若仍报错,可确认驱动版本与SQL Server 2019的兼容性
内容的提问来源于stack exchange,提问作者Akhaya Chandan Mishra
相关产品推荐
相关产品推荐

