Wie wäre es mit einem "netcat" irgendwo in der Mitte?
Hallo zusammen,
ich möchte per Linux-Konsole eine *.csv-Datei in eine Postgres-Datenbank importieren, die auf einem entfernten Server liegt. Gibt es dafür irgendeine Möglichkeit? Oder geht das nur, in dem ich mich per SSH mit dem Server verbinde und das ganze dort über die Postgres-Konsole mache?
Zum reinen Import der *.csv-Datei wäre ich wohl beim COPY-Befehl richtig, aber mein Problem dabei ist, dass ich eben nicht lokal auf der Kiste bin.
Kann mir da jemand weiterhelfen?
Vielen Dank!
Wie wäre es mit einem "netcat" irgendwo in der Mitte?
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Und? Wo ist das Problem? COPY - PostgreSQL wiki
Andreas
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Hallo akretschmer,
Ja, an COPY habe ich auch gedacht. Aber das kann ich doch m.E. nur benutzen, wenn ich in der Postgres-Konsole eingeloggt bin, oder? Mein Problem ist, dass ich das csv, das bei mir lokal liegt, bei einem entfernten Server einspielen möchte.
Eine Möglichkeit wäre natürlich das csv auf den Server zu kopieren, per SSH drauf zu gehen, mich in die psql-Konsole einzuloggen und das file dann per COPY einzuspielen. Da das ganze aber nicht nur eine einmalige Sache ist, sondern regelmäßig erfolgen soll, würde ich gerne vermeiden, dass ich mich extra per SSH verbinden muss und die Datei zuerst rüberkopieren muss.
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Was akretschmer dir - etwas umständlich - sagen möchte: du kannst bei COPY auch FROM STDIN nutzen und damit Daten über das Netzwerk kopieren.
Alternativ kannst du die Daten auch unix-typisch pipen, zum Beispiel über "netcat".
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Hihi, da antworte ich mal lieber wieder bevor ihr euch an die Gurgel geht :-)
Ja, der Kern des Problems ist wohl wirklich, dass ich das ganze übers Netzwerk machen möchte und nicht lokal. Hätte ich vielleicht im Topic erwähnen sollen...
Hier meine zwei Ansätze:
1) "Naiver Ansatz" ohne netcat
Problem: Ich bekomme die Meldung "psql: FATAL: database "mydb" does not exist". Da sie aber 100%ig auf dem entfernten Server existiert (nicht aber bei mir lokal) vermute ich, dass an dem Ansatz grundsätzlich was nicht passt...Code:echo "COPY mytable FROM 'mycsv.csv' WITH CSV DELIMITER AS ';'" | psql -h 192.168.0.3 --dbname mydb -U postgres --password
2) Netcat
Ddamit hab ich ehrlich gesagt noch nie gearbeitet und ich hab auch nicht verstanden, wie ich das hier einsetzen sollte...statt dem "echo" vielleicht?
Vielen Dank und viele Grüße,
Hannes
Netcat bildet einen Transportlayer über das Netzwerk.
Du startest das auf beiden Seiten und das transportiert dir die da hineingeschriebenen Daten (also deine Datei) von einem Rechner zum anderen.
Der Vorteil ist, das am anderen Ende vom empfangendem netcat einfach ein psql mit "FROM STDIN" sitzen kann. Du musst die Datei also nicht mehr lokal irgendwo zwischenspeichern.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen