Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: CSV-Datei per Linux-Konsole importieren

  1. #1
    Hannes23 ist offline Benutzer
    Registriert seit
    07.05.2010
    Beiträge
    40

    Standard CSV-Datei per Linux-Konsole importieren

    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!

  2. #2
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.055

    Standard

    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

  3. #3
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.465

    Standard

    Zitat Zitat von Hannes23 Beitrag anzeigen
    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!
    Und? Wo ist das Problem? COPY - PostgreSQL wiki

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  4. #4
    Hannes23 ist offline Benutzer
    Registriert seit
    07.05.2010
    Beiträge
    40

    Standard

    Hallo akretschmer,

    Zitat Zitat von akretschmer Beitrag anzeigen
    Und? Wo ist das Problem? COPY - PostgreSQL wiki

    Andreas
    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.

  5. #5
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.465

    Standard

    Zitat Zitat von Hannes23 Beitrag anzeigen
    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.
    Hast Du remote Zugriff auf den Server? Also, ist 5432 da für Dich offen?
    Falls ja: psql nutzen

    Falls nein: Du kannst auch via SSH remote Scripte ausführen.


    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  6. #6
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.055

    Standard

    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

  7. #7
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.465

    Standard

    Zitat Zitat von ads Beitrag anzeigen
    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".
    Huch? Der Link zum wiki-Artikel ist umständlich? *g*

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  8. #8
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.055

    Standard

    Zitat Zitat von akretschmer Beitrag anzeigen
    Huch? Der Link zum wiki-Artikel ist umständlich? *g*
    Du bist umständlich ;-)

    Und der Wiki Artikel erläutert nicht wirklich das Kopieren übers Netzwerk im Detail.
    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

  9. #9
    Hannes23 ist offline Benutzer
    Registriert seit
    07.05.2010
    Beiträge
    40

    Standard

    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
    Code:
     echo "COPY mytable FROM 'mycsv.csv' WITH CSV DELIMITER AS ';'" | psql -h 192.168.0.3 --dbname mydb -U postgres --password
    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...

    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

  10. #10
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.055

    Standard

    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

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Schema auf Konsole abfragen?
    Von MisterX im Forum PL/pgSQL
    Antworten: 1
    Letzter Beitrag: 26.03.2010, 08:38
  2. psql Konsole & Encoding
    Von Nuadu im Forum Sonstige
    Antworten: 3
    Letzter Beitrag: 02.09.2009, 08:32
  3. Ganze XML Datei in eine Zeile importieren
    Von Minam im Forum Allgemeines
    Antworten: 1
    Letzter Beitrag: 07.05.2007, 11:54
  4. Antworten: 4
    Letzter Beitrag: 14.03.2007, 12:14
  5. Installation mittels Konsole
    Von Lord_Hessia im Forum Installation von PostgreSQL
    Antworten: 4
    Letzter Beitrag: 17.01.2007, 15:18

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum