6

Ich versuche, eine "Reader" Alternative zum Lesen von Daten aus Azure SQL-Datenbank mit dem Modul "Python-Skript ausführen" in Azure ML zu erstellen. dabei versuche ich, eine Verbindung zu Azure Sql mit Pyodbc-Bibliothek herzustellen. hier ist mein Code:Wie lautet der Name des Treibers für die Verbindung mit Azure SQL Database aus Pyodbc in Azure ML?

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, 

auch versucht, einen anderen Treiber-Namen zu verwenden: {SQL Server Native Client 11.0}

Hier ist der Fehler, den ich bin immer:

Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)') 

niemanden wissen welchen Treiber sollte ich verwenden?

nur um sicherzugehen, habe ich versucht "{SQL Server}", "{SQL Server Native Client 11.0}" und "{SQL Server Native Client 10.0}" und bekam den gleichen Fehler

Ich habe auch versucht ein anderes Format:

conn = pyodbc.connect('DRIVER={SQL Server}; SERVER=server.database.windows.net; DATABASE=db_name; [email protected]; password=Password') 

und

conn = pyodbc.connect('DRIVER={SQL Server Native Client 11.0}; SERVER=server.database.windows.net; DATABASE=db_name; [email protected]; password=Password') 
+0

Mögliche Duplikate von [Verbindung mit Azure SQL-Datenbank über pyodbc] (http://StackOverflow.com/Questions/30802199/connect-to-azure-SQL-Database-Via- pyodbc) –

Antwort

2

bekam ich eine Antwort von azur Unterstützung:

Currently it is not possible to access sql azure dbs from within an “execute python script” module. As you suspected this is due to missing odbc drivers in the execution environment. Suggested workarounds are to a) use reader module or b) export to blobs and use the Azure Python SDK for accessing those blobs http://blogs.msdn.com/b/bigdatasupport/archive/2015/10/02/using-azure-sdk-for-python.aspx

So ist es derzeit unmöglich zu SQL Server von „ausführen Python-Skript“ -Modul in Azure- verbinden ML. Wenn Sie es ändern möchten, wählen Sie bitte here

2

nach this answer sollte die Verbindungszeichenfolge sein:

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

Beachten Sie den Unterschied im Format: verschiedene Parameter für Benutzer, Passwort und Datenbank vs. alle in einem in der ersten Zeichenfolge.

Siehe auch diese Azure-Seite: Connect to SQL Database by using Python on Windows. Es heißt pymssql, ohne Erwähnung von pyodbc.

+0

@aberoid, ich habe das auch versucht, aber dieses Modul ist nicht in Azure ML Python-Skripten verfügbar. als ich es versuchte, es. Ich habe "ImportError: Kein Modul namens pymssql" – marnun

+0

es ist unmöglich, in Azure-ML zu tun "Ausführen von Python-Skript" -Modul – marnun

+0

tat dies mit https://azure.microsoft.com/en-gb/documentation/articles/machine-learning -data-science-sample-data-sql-server/ – marnun

1

Die ultimative Quelle der Wahrheit :-) für Verbindungszeichenfolgen ist:

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

es als Führer verwenden Sie zu konstruieren.

+0

dies beantwortet nicht die Frage – marnun

+0

Ich habe es versucht, bekam die gleiche Verbindungszeichenfolge – marnun

+0

Server = tcp: [Ihr Server hier] .database.windows.net; Database = db_name ; User ID = Benutzer @ [Ihr Server hier]; Passwort = Passwort; Trusted_Connection = False; Verschlüsseln = True; Dies sollte Ihre Verbindungszeichenfolge sein. – jazz

1

Der Name des SQL-Datenbanktreibers für Pyodbc sollte aus folgenden Gründen {SQL Server Native Client 10.0} sein.

  1. Die Verbindungszeichenfolge für die SQL-Datenbank, die im Azure-Portal angezeigt wird, finden Sie in Abb. 1 & Abb. 2 unten.

Abb 1. Azure alte Portal enter image description here

Bild 2. Auf Azure neues Portal (Version 11.0 später dann v10.0) enter image description here

  1. Nach the Pyodbc code comments, siehe die Abbildung 3 unten.

Abb. 3. enter image description here

+0

Pan, das hat nicht funktioniert, sowie – marnun

+0

haben Sie versucht, es in Azure-ML zu reproduzieren? – marnun

2

benötigen Sie den Microsoft ODBC-Treiber, um pyodbc zu verwenden. Sie können es von hier herunterladen: https://www.microsoft.com/en-us/download/details.aspx?id=36434. Sobald Sie das Download, versuchen Sie die folgende Verbindungszeichenfolge:

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

Wenn diese Zeichenfolge nicht funktioniert, versuchen Sie dieses:

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

Wenn Sie noch nicht wissen, können Sie mich Pyodbc lassen.

Cheers,
Treffen

+0

ist es unmöglich, in Azure-ML auszuführen "Python-Skript ausführen" -Modul – marnun

Verwandte Themen