· 

CSV mit pgfutter in PostgreSQL importieren

Um eine CSV Datei in PostgreSQL (kurz PG) zu importieren gibt es den Befehl COPY. Aber was wenn in PG noch keine Tabelle dafür existiert? Bei wenigen Spalten kein Problem. Wenn die zu ladende Datei jedoch 30 oder mehr davon hat, wird es harte Arbeit. Beinahe hätte ich dafür ein Script geschrieben.

 

Zum Glück gibt es allerdings ein Kommandozeilen-Programm. Das ist für Linux und Windows verfügbar. Es heißt sinnigerweise „pgfutter“. Also um die Datenbank zu füttern ;-). Die Besonderheit besteht darin, dass automatisch ein CREATE TABLE auf Grund der ersten Zeile in der Datei generiert wird. Derzeit findet sich das Programm auf GITHUB.

 

Dabei handelt es sich um eine Exe, welche keine Installation verlangt. Der Download in einen Ordner genügt und man kann damit arbeiten. Hier ein Beispiel-Aufruf (bitte die kursiv geschriebenen Parameter anpassen):

 

pgfutter_windows_amd64 --db "datenbankname" --port "5432" --user "benutzer" --schema "schema" --pw "passwort" --table "zieltabelle" csv --delimiter ";" dateiname.csv

 

Folgende Dinge sollten beachtet werden:

  • pgfutter verlangt UTF-8 Dateien.
  • Der Standard Delimiter von pgfutter ist das "," (Komma). Um z.B. ein Semikolon zu nehmen, kann die Option --delimiter ";" zum Einsatz kommen. Ist die CSV mit Kommas unterteilt, braucht man diese Option nicht.
  • Die Option –table erlaubt es, einen eigenen Tabellennamen zu vergeben. Lässt man diese Option weg, dann verwendet pgfutter den Namen des CSV Files.
  • Alle Spalten sind vom Datentyp TEXT. Nicht immer schön, aber besser als 40 Spaltennamen einzutippen.

Vielen Dank fürs Lesen und Kommentieren!

 

Kommentar schreiben

Kommentare: 0