CSV-Datei importieren

Auf dieser Seite wird beschrieben, wie Sie eine CSV-Datei in eine AlloyDB-Datenbank importieren.

Der Import umfasst die folgenden Aufgaben:

  1. Laden Sie die CSV-Datei in einen Cloud Storage-Bucket hoch.

  2. Bereiten Sie einen Clienthost vor, um den Importvorgang auszuführen.

  3. Importieren Sie die CSV-Datei in die Datenbank.

  4. Bereinigen Sie die Ressourcen, die für die Durchführung des Vorgangs erstellt wurden.

Hinweise

  • Sie benötigen die grundlegende IAM-Rolle „Inhaber“ (roles/owner) oder „Bearbeiter“ (roles/editor) im verwendeten Google Cloud-Projekt oder eine der folgenden vordefinierten IAM-Rollen:
    • AlloyDB Admin (roles/alloydb.admin) oder AlloyDB Viewer (roles/alloydb.viewer)
    • Storage-Administrator (roles/storage.admin)
    • Compute-Instanzadministrator (Version 1) (roles/compute.instanceAdmin.v1)

CSV-Datei hochladen

Zum Hochladen der CSV-Datei erstellen Sie einen Cloud Storage-Bucket und laden dann die CSV-Datei in diesen Bucket hoch.

  1. Erstellen Sie einen regionalen Storage-Bucket der Klasse „Standard Storage“ im Projekt und in der Region, in dem bzw. der sich Ihre AlloyDB-Datenbank befindet.

  2. Laden Sie die CSV-Datei in den von Ihnen erstellten Speicher-Bucket hoch.

Clienthost vorbereiten

Um einen Clienthost für den Importvorgang vorzubereiten, erstellen Sie eine Compute Engine-VM, die eine Verbindung zur primären AlloyDB-Instanz herstellen kann, in der sich Ihre Datenbank befindet. Installieren Sie dann das psql-Tool und die Google Cloud CLI auf dieser VM.

  1. Folgen Sie der Anleitung unter Psql-Client mit einer Instanz verbinden, um eine Compute Engine-VM mit der richtigen Konnektivität und dem installierten psql-Tool zu erstellen. Achten Sie bei der Ausführung dieser Anleitung darauf, der Compute Engine-VM genügend lokalen Speicherplatz zuzuweisen, um die zu importierende CSV-Datei aufzunehmen.

  2. Installieren Sie die gcloud CLI, um Befehlszeilenzugriff auf die CSV-Datei im Cloud Storage-Bucket zu ermöglichen.

CSV-Datei importieren

Um die CSV-Datei zu importieren, rufen Sie die IP-Adresse der primären AlloyDB-Instanz ab, in der sich Ihre Datenbank befindet, und erstellen Sie dann mit dem Tool psql eine Tabelle, die die CSV-Daten enthält. Importieren Sie die Tabelle dann.

  1. Rufen Sie die IP-Adresse der primären AlloyDB-Instanz ab, in der sich Ihre Datenbank befindet, indem Sie die Details aufrufen.
  2. Stellen Sie eine SSH-Verbindung zur Compute Engine-VM her.

    Console

    1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

      Zu „VM-Instanzen“

    2. Klicken Sie in der Liste der VM-Instanzen in der Zeile der von Ihnen erstellten Instanz auf SSH.

      SSH-Schaltfläche neben dem Instanznamen.

    gcloud

    Stellen Sie mit dem Befehl gcloud compute ssh eine Verbindung zur von Ihnen erstellten Instanz her.

    gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Die ID des Projekts, das die Instanz enthält.
    • ZONE ist der Name der Zone, in der sich die Instanz befindet.
    • VM_NAME: Name der Instanz
  3. Kopieren Sie die CSV-Datei in das lokale Dateisystem des Clienthosts:
    gcloud storage cp gs://BUCKET_NAME/CSV_FILE_NAME .
  4. CSV-Datei importieren:
    1. Führen Sie das Client-Tool psql aus und stellen Sie dann über die psql-Eingabeaufforderung eine Verbindung zur Datenbank her:
      psql -h IP_ADDRESS -U postgres
      \c DB_NAME
      

      Sie werden aufgefordert, das Passwort des Nutzers postgres einzugeben.

      • IP_ADDRESS: Die IP-Adresse der primären Instanz.
      • DB_NAME: Der Name der Datenbank, in der Sie die CSV-Daten speichern möchten.
    2. Erstellen Sie eine Tabelle, die die CSV-Daten enthält, z. B.:
      CREATE TABLE weather (
        city     varchar(80),
        temp_lo  int,
        temp_hi  int,
        prcp     real,
        date     date
      );

      Die obige CREATE TABLE-Anweisung dient nur zu Veranschaulichungszwecken. Sie erstellen eine Tabelle, deren Spalten mit Ihren CSV-Daten übereinstimmen.

    3. Importieren Sie die Daten aus der CSV-Datei:
    \copy TABLE_NAME(COLUMN_LIST)
      FROM 'CSV_FILE_NAME'
      DELIMITER ','
      CSV HEADER
    ;
    • TABLE_NAME: Der Name der Tabelle, die Sie im vorherigen Schritt erstellt haben.
    • (COLUMN_LIST): Eine kommagetrennte Liste der Namen der Tabellenspalten, in die Daten importiert werden sollen, in der Reihenfolge, in der sie in der CSV-Datei angezeigt werden.
    • CSV_FILE_NAME: Die CSV-Datei.
    • HEADER: Gibt an, dass die CSV-Datei eine Kopfzeile enthält, die ignoriert werden soll. Andernfalls lassen Sie diesen Parameter weg.

    Der Befehl \copy in psql verwendet dieselben Optionen und Argumente wie der Befehl COPY von PostgreSQL zur Steuerung des Datenimports.

Ressourcen bereinigen

Nachdem Sie die CSV-Datei importiert haben, können Sie den Cloud Storage-Bucket und die Compute Engine-VM löschen, die Sie während des Importvorgangs verwendet haben.