У меня есть рамка данных pandas размером около 300 000 строк (20 мб) и вы хотите записать в базу данных SQL-сервера.
У меня есть следующий код, но он очень медленный. Хотите узнать, есть ли лучший способ?
import pandas
import sqlalchemy
engine = sqlalchemy.create_engine('mssql+pyodbc://rea-eqx-dwpb/BIWorkArea?
driver=SQL+Server')
df.to_sql(name='LeadGen Imps&Clicks', con=engine, schema='BIWorkArea',
if_exists='replace', index=False)
Если вы хотите ускорить процесс записи в базу данных sql, вы можете настроить типы данных таблицы в своей базе данных по типу данных ваших pandas
DataFrame
from sqlalchemy import types, create_engine
d={}
for k,v in zip(df.dtypes.index,df.dtypes):
if v=='object':
d[k]=types.VARCHAR(df[k].str.len().max())
elif v=='float64':
d[k]=types.FLOAT(126)
elif v=='int64':
d[k] = types.INTEGER()
затем
df.to_sql(name='LeadGen Imps&Clicks', con=engine, schema='BIWorkArea', if_exists='replace', index=False,dtype=d)