Ошибка при подключении базы данных SQL Azure из службы машинного обучения Azure с использованием python - PullRequest
0 голосов
/ 21 сентября 2019

Я пытаюсь подключиться База данных SQL Azure из Служба машинного обучения Azure , но я получил следующую ошибку.

Пожалуйста, проверьте ошибку: -

**('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found and no default driver specified (0) (SQLDriverConnect)')**

Пожалуйста, проверьте приведенный ниже код, который я использовал для подключения к базе данных: -

import pyodbc

class DbConnect:
    # This class is used for azure database connection using pyodbc
    def __init__(self):
        try:
            self.sql_db = pyodbc.connect(SERVER=<servername>;PORT=1433;DATABASE=<databasename>;UID=<username>;PWD=<password>')

            get_name_query = "select name from contacts"
            names = self.sql_db.execute(get_name_query)
            for name in names:
                print(name)

        except Exception as e:
            print("Error in azure sql server database connection : ", e)
            sys.exit()

if __name__ == "__main__":
    class_obj = DbConnect()

Есть ли способ устранить вышеуказанную ошибку?Пожалуйста, дайте мне знать, если есть какой-либо способ.

Ответы [ 2 ]

1 голос
/ 22 сентября 2019

Я бы подумал об использовании azureml.dataprep поверх pyodbc для этой задачи (API может измениться, но это работало в прошлый раз, когда я пытался):

import azureml.dataprep as dprep

ds = dprep.MSSQLDataSource(server_name=<server-name,port>,
                           database_name=<database-name>,
                           user_name=<username>,
                           password=<password>)

Затем вы должны бытьвозможность собирать результат запроса SQL в пандах, например, через

dataflow = dprep.read_sql(ds, "SELECT top 100 * FROM [dbo].[MYTABLE]")
dataflow.to_pandas_dataframe()
0 голосов
/ 24 сентября 2019

В качестве альтернативы вы можете создать хранилище данных SQL и создать набор данных из хранилища данных SQL.Узнайте, как: https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-create-register-datasets#create-tabulardatasets

Пример кода:

from azureml.core import Dataset, Datastore

# create tabular dataset from a SQL database in datastore
sql_datastore = Datastore.get(workspace, 'mssql')
sql_ds = Dataset.Tabular.from_sql_query((sql_datastore, 'SELECT * FROM my_table'))

@ AkshayGodase Любая конкретная причина, по которой вы хотите использовать pyodbc?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...