Holen Sie sich Daten von Pandas in einen SQL-Server mit PYODBC

8

Ich versuche zu verstehen, wie Python Daten von einem FTP-Server in Pandas ziehen und dann in SQL-Server verschieben konnte. Mein Code hier ist sehr rudimentär, um es gelinde auszudrücken, und ich suche nach einem Rat oder Hilfe überhaupt. Ich habe versucht, die Daten vom FTP-Server zuerst zu laden, der gut funktioniert .... Wenn ich dann diesen Code entferne und ihn in einen aus ms sql Server auswähle, ist es in Ordnung, so funktioniert die Verbindungszeichenfolge, aber die Einfügung in die SQL Server scheint Probleme zu verursachen.

%Vor%

Wenn ich den FTP-Code entferne, läuft das perfekt, aber ich verstehe nicht, wie ich den nächsten Sprung machen kann, um dies in Microsoft SQL Server zu bekommen, oder sogar, wenn es ohne Speichern in einer Datei möglich ist.

    
andy redmayne 04.09.2014, 09:23
quelle

2 Antworten

19

Für den Teil 'Schreiben in SQL-Server' können Sie die bequeme Methode to_sql von Pandas verwenden (Sie müssen also nicht über die Zeilen iterieren und die Einfügung manuell vornehmen). Siehe die Dokumentation zur Interaktion mit SQL-Datenbanken mit Pandas: Ссылка

Du brauchst mindestens Pandas 0.14, damit das funktioniert, und du musst auch sqlalchemy installiert haben. Ein Beispiel, angenommen df ist der DataFrame, den Sie von read_table erhalten haben:

%Vor%

Siehe auch die Dokumentationsseite von to_sql .
Weitere Informationen zum Erstellen der Verbindungsengine mit sqlalchemy für SQL-Server mit pyobdc finden Sie hier: Ссылка

Wenn Sie jedoch nur die csv-Daten in die SQL-Datenbank holen möchten, können Sie dies auch direkt von SQL aus tun. Siehe zB CSV-Datei in SQL Server importieren

    
joris 04.09.2014, 10:22
quelle
1

Ich habe festgestellt, dass die Verwendung des bcp-Dienstprogramms ( Ссылка ) am besten funktioniert, wenn Sie eine großer Datensatz. Ich habe 2,7 Millionen Zeilen, die bei 80K Zeilen / Sek. Eingefügt werden. Sie können Ihren Datenrahmen als CSV-Datei speichern (verwenden Sie Tabulatoren für Trennzeichen, wenn Ihre Daten keine Tabs und utf8-Codierung haben). Mit bcp habe ich das Format "-c" verwendet und es funktioniert bis jetzt ohne Probleme.

    
Babu Arunachalam 14.11.2017 20:34
quelle

Tags und Links