You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Azure ML Jupyter笔记本将Pandas数据框写入Azure SQL数据库?

解决Azure ML中将Pandas数据框写回Azure SQL的问题

一、Driver参数的正确设置

你代码里写的{ODBC Driver 17 for SQL Server}是完全正确的,Azure ML的计算实例默认预装了该版本的ODBC驱动,直接使用即可。

需要注意的是你代码中server变量末尾多了一个空格,这会导致连接失败,修正后应为:

server = 'server.windows.net'

二、更优实现方式

1. 使用SQLAlchemy引擎(推荐)

Pandas的to_sql对SQLAlchemy的兼容性更好,还能自动管理连接池,代码更简洁稳定:

import pandas as pd
from sqlalchemy import create_engine

# 数据准备
data = [
    ['94732','John', 'Y', 'Seg1'],
    ['93045','Jane', 'N', 'Seg2']]
headers=['ID', 'name', 'Class', 'Segment']
testing_df = pd.DataFrame(data, columns=headers)

# 连接参数
server = 'server.windows.net'
database = 'database'
username = 'username'
password = 'pwd'
driver = 'ODBC Driver 17 for SQL Server'

# 构建SQLAlchemy连接字符串(替换空格为+适配URL格式)
connection_string = f"mssql+pyodbc://{username}:{password}@{server}/{database}?driver={driver.replace(' ', '+')}"
engine = create_engine(connection_string)

# 写入数据
table_name = 'ddo_datacove_output_test'
testing_df.to_sql(table_name, engine, index=False, if_exists='append')

2. 利用Azure ML工作区连接资产(更安全)

既然你已将Azure SQL表设为资产,可直接通过Azure ML SDK获取预配置的连接,避免硬编码敏感信息:

import pandas as pd
from azureml.core import Workspace
from sqlalchemy import create_engine

# 获取当前工作区
ws = Workspace.from_config()

# 获取已注册的SQL数据库连接资产(替换为你的连接资产名称)
sql_datastore = ws.datastores['AzureSQL_Connection']

# 构建连接字符串
driver = 'ODBC Driver 17 for SQL Server'
connection_string = f"mssql+pyodbc://{sql_datastore.username}:{sql_datastore.password}@{sql_datastore.server_name}/{sql_datastore.database_name}?driver={driver.replace(' ', '+')}"
engine = create_engine(connection_string)

# 写入数据
testing_df.to_sql('ddo_datacove_output_test', engine, index=False, if_exists='append')

额外注意事项

  • 确保Azure ML计算实例的公网IP已加入Azure SQL数据库的防火墙允许列表,否则会被拒绝连接。
  • 若遇到驱动版本问题,可执行pyodbc.drivers()查看当前环境可用的驱动列表,选择对应版本即可。

内容的提问来源于stack exchange,提问作者DC2021

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 03:10:04