Discussion:
große CSV-Datei in Datenbank importieren
(zu alt für eine Antwort)
Heiko Warnken
2010-12-27 18:41:05 UTC
Permalink
Hallo,

ich habe von einem Kumpel eine CSV-Datei bekommen, die ich in eine neu
erstellte Datenbanktabelle einfügen möchte. Der Webserver liegt beim
Provider (nicht lokal) und dort wird zur Datenbankadministration
PHPMyAdmin 2.11 verwendet.
PHPMyAdmin erlaubt das Importieren von CSV-Dateien zwar, diese dürfen
aber maximal 10 MB groß sein. Und hier liegt mein Problem.

Meine CSV-Datei hat eine Größe von 121 MB und die will PHPMyAdmin
natürlich nicht einlesen.

Gibt es eine Möglichkeit, die Datei trotzdem zu importieren oder muss
ich die Datei in 12 Teile aufgliedern, um die jeweils ca. 10 MB großen
Teilstücke seperat zu importieren?

Gruß
Heiko
Snacker
2010-12-27 22:53:09 UTC
Permalink
Hallo Heiko,

wenn Du keinen Shell Zugang hast musst Du wohl oder übel die Datei
splitten. In der Shell wäre es mit einem Befehl getan auch mit
großen Datenmengen.

Grüße
Snacker
Post by Heiko Warnken
Gibt es eine Möglichkeit, die Datei trotzdem zu importieren oder muss
ich die Datei in 12 Teile aufgliedern, um die jeweils ca. 10 MB großen
Teilstücke seperat zu importieren?
Gruß
Heiko
Magnus Warker
2011-01-02 11:12:39 UTC
Permalink
Post by Snacker
Hallo Heiko,
wenn Du keinen Shell Zugang hast musst Du wohl oder übel die Datei
splitten. In der Shell wäre es mit einem Befehl getan auch mit
großen Datenmengen.
Was wäre mit dem Befehl getan? Kannst Du den mal zeigen?

Magnus
Norbert Huettisch
2011-01-02 20:36:13 UTC
Permalink
Post by Magnus Warker
Post by Snacker
wenn Du keinen Shell Zugang hast musst Du wohl oder übel die Datei
splitten. In der Shell wäre es mit einem Befehl getan auch mit
großen Datenmengen.
Was wäre mit dem Befehl getan? Kannst Du den mal zeigen?
Ich mach' das aus PHP mit

$query = "
LOAD DATA LOCAL INFILE './xxxxx.csv'
INTO TABLE tbXxxxxx
FIELDS TERMINATED BY '\\t' ESCAPED BY '\\\\'
LINES TERMINATED BY '\\r\\n'
";

N.
Christian Kirsch
2011-01-03 07:36:11 UTC
Permalink
Post by Norbert Huettisch
Post by Magnus Warker
Post by Snacker
wenn Du keinen Shell Zugang hast musst Du wohl oder übel die Datei
splitten. In der Shell wäre es mit einem Befehl getan auch mit
großen Datenmengen.
Was wäre mit dem Befehl getan? Kannst Du den mal zeigen?
Ich mach' das aus PHP mit
$query = "
LOAD DATA LOCAL INFILE './xxxxx.csv'
INTO TABLE tbXxxxxx
FIELDS TERMINATED BY '\\t' ESCAPED BY '\\\\'
LINES TERMINATED BY '\\r\\n'
";
Dasselbe lässt sich natürlich auch mit mysql (dem
Kommandozeilenprogramm) erreichen …
Norbert Huettisch
2011-01-03 22:05:09 UTC
Permalink
Post by Christian Kirsch
Post by Norbert Huettisch
Ich mach' das aus PHP mit
$query = "
LOAD DATA LOCAL INFILE './xxxxx.csv'
INTO TABLE tbXxxxxx
FIELDS TERMINATED BY '\\t' ESCAPED BY '\\\\'
LINES TERMINATED BY '\\r\\n'
";
Dasselbe lässt sich natürlich auch mit mysql (dem
Kommandozeilenprogramm) erreichen …
Die Kenntnis dieser Tatsache habe ich mal einfach vorausgesetzt.

N.
Claus Reibenstein
2011-01-04 10:36:42 UTC
Permalink
Post by Norbert Huettisch
Post by Christian Kirsch
Post by Norbert Huettisch
Ich mach' das aus PHP mit
[...]
Dasselbe lässt sich natürlich auch mit mysql (dem
Kommandozeilenprogramm) erreichen …
Die Kenntnis dieser Tatsache habe ich mal einfach vorausgesetzt.
Die Gruppe heißt de.comp.datenbanken.mysql und hat mit PHP nichts am
Hut. Darauf wollte Dich Christian hinweisen.

Gruß. Claus

Loading...