Я хочу использовать Dask, чтобы получить кучу данных.
Я использую
SQLAlchemy==1.3.9
dask==2.5.2
pyodbc==4.0.27
У меня есть следующие файлы в том же каталоге, что и scrips:
odbc.ini
odbcinst.ini
и я не могу правильно настроить. Я видел несколько строк подключения для SQLAlchemy, но я не смог заставить ни одну из них работать.
Этот код работает:
#!/usr/bin/env python
import pyodbc
import getpass
#odbc is the prefered method for contacting microsoft sqlserver
sql_server_cnxn_str = 'DRIVER={ODBC Driver 17 for SQL Server};' + \
'SERVER=XXXX;DATABASE=YYYY;' + \
'Trusted_Connection=yes;'
#get username
print ("Input username then hit enter: ")
name = input()
#Get password
psswd = getpass.getpass()
#Create connection using odbc
conn = pyodbc.connect(sql_server_cnxn_str)
cursor = conn.cursor()
query = "SELECT * from Foo.Testing"
cursor.execute(query)
data = cursor.fetchall()
print(data)
Итак, я знаю соединение работает.
Это код, который я пытаюсь заставить работать:
#!/usr/bin/env python
import pyodbc
import getpass
import dask.dataframe as dd
from dask.diagnostics import ProgressBar
#odbc is the prefered method for contacting microsoft sqlserver
sql_server_cnxn_str = 'DRIVER={ODBC Driver 17 for SQL Server};' + \
'SERVER=XXXX;DATABASE=YYYY;' + \
'Trusted_Connection=yes;'
#get username
print ("Input username then hit enter: ")
name = input()
#Get password
psswd = getpass.getpass()
#If neither divisions or npartitions is given, the memory footprint of the first few rows will be determined, and partitions of size ~256MB will be used.
data = dd.read_sql_table("Foo.Testing", sql_server_cnxn_str, index_col="Test")
Я получаю эту ошибку:
File "src/pymssql.pyx", line 642, in pymssql.connect
sqlalchemy.exc.OperationalError: (pymssql.OperationalError) (18456, b"Login failed for user 'foobar'.DB-Lib error message 20018, severity 14:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (ROEFDN819Q)\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (ROEFDN819Q)\n")
Я перепробовал много строк подключения форматы, в том числе: 'mssql + pyodb c: // имя_сервера / имя_базы_данных? driver = SQL сервер? Trusted_Connection = yes'
"mssql+pymssql://{user}:{password}@{host}:{port}/{database}".format(user=username, password=password, host=server, database=database, port=port)
("mssql+pyodbc://%s:%s@%s/%s?driver=%s" % (username, password, server, database, driver ) )
"mssql+pyodbc://{0}:{1}@XXXX/YYYY".format(username,password)
Ничего не работает. Не могу ли я как-нибудь просто вытащить правильную конфигурацию из pyodb c? Большое спасибо за вашу помощь!