So importieren Sie eine sehr große csv-Datei in eine vorhandene SQL Server-Tabelle?
Ich habe einen sehr großen csv-Datei mit ~500 Spalten, ~350k Zeilen, die ich versuche zu importieren in einen bestehenden SQL-Server-Tabelle.
Habe ich versucht BULK INSERT
ich bekommen - Query executed successfully, 0 rows affected
. Interessanterweise BULK INSERT
gearbeitet, in einer Angelegenheit von Sekunden, für die ein ähnlicher Vorgang, jedoch für eine viel kleinere csv-Datei, weniger als 50 cols., ~77k Zeilen.
Habe ich auch schon versucht bcp
ich bekommen - Unexpected EOF encountered in BCP data-file. BCP copy in failed
.
Die Aufgabe ist einfach - es sollte nicht schwer sein, die Grenzen der pure Frust. Irgendwelche Ideen oder Vorschläge? Alle anderen Werkzeuge, Dienstprogramme, die Sie erfolgreich zu erreichen, eine bulk import operation oder etwas ähnliches? Danke.
-- BULK INSERT
USE myDb
BULK INSERT myTable
FROM 'C:\Users\myFile.csv'
WITH
(
FIRSTROW = 2,
-- DATAFILETYPE = 'char',
-- MAXERRORS = 100,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
);
-- bcp
bcp myDb.dbo.myTable in 'C:\Users\myFile.csv' -T -t, -c
UPDATE
Ich habe jetzt änderte den Kurs. Ich habe beschlossen, die csv-Dateien, das war mein Ziel, um mit zu beginnen, die außerhalb von SQL Server, so dass ich nicht haben, laden Sie die Daten zu einer Tabelle für jetzt. Aber es wird interessant sein, zu versuchen, hochladen (BULK INSERT oder 'bcp') nur 1 Datensatz (~490 cols.) aus der csv-Datei, die sonst fehlgeschlagen ist, und sehen, ob es funktioniert.
BULK INSERT
oder bcp
?Vielleicht ist die Datei selbst beschädigt/falsch.
USE myDb BULK INSERT myTable FROM 'C:\Users\myFile.csv' WITH ( FIRSTROW = 2, -- DATAFILETYPE = 'char', -- MAXERRORS = 100, FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' );
legen Sie Sie in Ihre Frage mit code-tags, damit es lesbar ist, bitte.
Ich war Bearbeiten - drücken Sie die EINGABETASTE, indem Sie Fehler.
InformationsquelleAutor Micky Walia | 2011-11-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen Sie Ihre Datei ein EOF-Zeichen, wo es nicht sein sollte - BCP sagt Ihnen, es ist ein problem mit der Datei.
Notepad ++ kann in der Lage, laden Sie die Datei für Sie zur Ansicht und Suche.
InformationsquelleAutor Jimbo
Höchstwahrscheinlich in der letzten Zeile fehlt ein
\n
. Da gibt es auch eine Limitierung in der Zeilengröße (8060 bytes) in SQL-Server-obwohl die T-SQL-haben sollte, erwähne dies. Allerdings, überprüfen Sie diese link:Mein Rat: Beginnen Sie mit einer Zeile und es funktioniert. Dann der rest.
InformationsquelleAutor alzaimar
Wie sind Sie mit der Zuordnung der Felder in der Datei mit den Spalten in der Tabelle? Sind die Anzahl der Spalten in der Tabelle die gleiche wie die Anzahl der Felder in der Datei? Oder verwenden Sie eine format-Datei, um die Spalte festzulegen mapping? Wenn dem so ist, ist das format der Datei korrekt formatiert?
Wenn Sie mit den format-Datei, und wenn Sie die "Anzahl der Spalten" parameter falsch ist, wird es die Ursache der Fehlermeldung "Unexpected end of file". Das sehen einige andere Fehler/Probleme mit bulk-Upload.
InformationsquelleAutor Dharmendar Kumar 'DK'
Es ist wahrscheinlich nicht die Lösung, die Ihr erwartet, aber mit Python könnte man erstellen Sie eine Tabelle aus der csv-sehr leicht (nur Upload eines 1GB CSV-Datei):
InformationsquelleAutor m.swiss