从 Azure ML 中的 pyodbc 连接到 Azure SQL 数据库的驱动程序的名称是什么?

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

我正在尝试创建一个“Reader”替代方案,以使用 Azure ML 中的“执行 python 脚本”模块从 Azure SQL 数据库读取数据。 在此过程中,我尝试使用 pyodbc 库连接到 Azure SQL。

这是我的代码:

def azureml_main(dataframe1 = None, dataframe2 = None):
    import pyodbc   
    import pandas as pd

    conn = pyodbc.connect('DRIVER={SQL Server}; SERVER=server.database.windows.net; DATABASE=db_name; UID=user; PWD=Password')
    SQLCommand = ('''select * from table1 ''')
    data_frame = pd.read_sql(SQLCommand, conn)
    return data_frame,

还尝试使用不同的驱动程序名称:

{SQL Server Native Client 11.0}

这是我收到的错误:

错误:('IM002','[IM002] [Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序 (0) (SQLDriverConnect)')

有人知道我应该使用哪个驱动程序吗?

为了确定,我尝试了

{SQL Server}
{SQL Server Native Client 11.0}
{SQL Server Native Client 10.0}
并得到了同样的错误

我还尝试了不同的格式:

conn = pyodbc.connect('DRIVER={SQL Server}; SERVER=server.database.windows.net; DATABASE=db_name; user=user@server; password=Password')

conn = pyodbc.connect('DRIVER={SQL Server Native Client 11.0}; SERVER=server.database.windows.net; DATABASE=db_name; user=user@server; password=Password')
python pyodbc azure-sql-database azure-machine-learning-service cortana-intelligence
5个回答
3
投票

根据这个答案,连接字符串应该是:

conn = pyodbc.connect('DRIVER={SQL Server};SERVER=yoursqlAzureServer.database.windows.net,1433', user='yourName@yoursqlAzureServer', password='Password', database='DBName')

注意格式上的差异:用户、密码和数据库的参数不同,与第一个字符串中的所有参数相同。

同样相关,请参阅此 Azure 页面:在 Windows 上使用 Python 连接到 SQL 数据库。它声明使用

pymssql
,但没有提及
pyodbc


2
投票

您需要 Microsoft ODBC 驱动程序才能使用 pyodbc。您可以从这里下载:https://www.microsoft.com/en-us/download/details.aspx?id=36434。下载后,尝试使用以下连接字符串:

conn = pyodbc.connect('DRIVER={SQL Server Native Client 11.0}; SERVER=server.database.windows.net; DATABASE=db_name; user=user@server; password=Password')

如果此字符串不起作用,请尝试这个:

conn = pyodbc.connect('DRIVER={SQL Server};SERVER=server.database.windows.net,1433', user='user@server', password='Password', database='db_name')

2
投票

我从 Azure 支持那里得到了答复:

目前无法从 SQL Azure 数据库中访问 “执行Python脚本”模块。正如您怀疑的那样,这是由于 执行环境中缺少 odbc 驱动程序。建议 解决方法是 a) 使用阅读器模块或 b) 导出到 blob 并使用 Azure Python SDK 访问这些 blob http://blogs.msdn.com/b/bigdatasupport/archive/2015/10/02/using-azure-sdk-for-python.aspx

因此目前从 Azure-ML 中的“执行 python 脚本”模块连接到 SQL Server 是“不可能”的。如果您想更改,请投票这里


1
投票
{SQL Server Native Client 10.0}

,因为以下原因。


Azure门户上显示的SQL数据库连接字符串,请参见下面的图1和图2。
  1. 图 1. 在 Azure 旧门户上

图 2. 在 Azure 新门户上(版本 11.0 之后 v10.0)

根据
    Pyodbc代码注释
  1. ,请参见下图3。
  2. 图3。


0
投票

https://www.connectionstrings.com/sql-azure/

用它作为构建你的指南。

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