Pandas to_sql < /p>
< /li>
SQL Alchemy Insert () < /p>
< /li>
< /ol>
Können Sie bitte die beste und schnelle Möglichkeit vorschlagen, Daten zu laden? < /p>
Ich verwende
Treiber : ODBC 18 für SQL Server; UID: ; PWD : ; autoCommit = yes ; TrustedServercertificate = yes
", isolation_level =" autocommit ")
Fall 1 : pandas to_sql (dies dauert 4 bis 5 Stunden zum Laden)
Hier lade ich riesige Daten in DataFrame Chunk von Chunk < /p>
Code: Select all
data_chunk = pd.Data_Frame()
data_chunk = pd.read_csv('file_path, chunksize=50000,sep='I')
for chunk. in data_chunk:
finaldata = finaldata._append(str)
< /code>
[b] Laden Sie den Datenframe in SQL Server -Tabelle < /strong>
finaldata.to_sql('Table_Name',conn=engine.connect(),if_exists='append',index=False,chunk_size=50000)
unten funktioniert fein mit chunk_size = 10, aber ich habe Millionen von Datensätzen geladen. Mit Chunk_Size = 15+ gibt es unten Fehler < /p>
pyodbc.Error:('07002','A07002] [Microsoft] [ODBC -Treiber 18 für SQL Server] [Zählfeld Falsch oder Syntaxfehler (0) (SQLEXECDIRECTW)]
Fall 3 [/b]: SQL -Alchemie -Insert () < /p>
lade hier riesige Daten in Chunk -> DataFrame-> SQL Server -Tabelle mit SQL Alchemy Insert () < /p>
Code: Select all
data_chunk = pd.Data_Frame()
data_chunk = pd.read_csv('file_path, chunksize=10,sep='I')
for chunk. in data_chunk:
finaldata = finaldata._append(str)
mit der gleichen für Loop
Code: Select all
Session = sessionmaker(bind=engine)
session = Session()
data_to_insert = finaldata.to_dict(orient='records')
stmt = insert(table).values(data_to_insert)
session.execute(stmt)
session.commit()
session.close()