Mithilfe von CSV-Dateien exportieren und importieren

Auf dieser Seite wird gezeigt, wie Sie Daten mithilfe von CSV-Dateien exportieren und in Cloud SQL-Instanzen importieren.

Hinweise

Für einen Export- oder Importvorgang ist Folgendes zu beachten:

  • Sorgen Sie dafür, dass in Ihrer Datenbank ausreichend freier Speicherplatz vorhanden ist.
  • Export- und Importvorgänge verwenden Datenbankressourcen, stören den normalen Datenbankbetrieb jedoch nicht, wenn die Instanz nicht unterdimensioniert ist.

  • Prüfen Sie, ob die CSV-Datei die erwarteten Daten enthält und im richtigen Format vorliegt. CSV-Dateien müssen eine Zeile pro Satz Datenfelder haben.
  • Beachten Sie die Best Practices zum Exportieren und Importieren von Daten.

Daten aus Cloud SQL for PostgreSQL exportieren

Erforderliche Rollen und Berechtigungen für das Exportieren aus Cloud SQL for PostgreSQL

Zum Exportieren von Daten aus Cloud SQL in Cloud Storage muss der Nutzer, der den Export initiiert, eine der folgenden Rollen haben:

Darüber hinaus muss das Dienstkonto für die Cloud SQL-Instanz eine der folgenden Rollen haben:

  • Die IAM-Rolle (Identity and Access Management) storage.objectAdmin
  • Eine benutzerdefinierte Rolle mit folgenden Berechtigungen:
    • storage.objects.create
    • storage.objects.list (nur für den parallelen Export von Dateien)
    • storage.objects.delete (nur für den parallelen Export von Dateien)

Informationen zu IAM-Rollen finden Sie unter Identitäts- und Zugriffsverwaltung.

Daten aus Cloud SQL for PostgreSQL in eine CSV-Datei exportieren

Sie können Ihre Daten im CSV-Format exportieren, das von anderen Tools und Umgebungen verwendet werden kann. Exporte erfolgen auf Datenbankebene. Während eines CSV-Exports können Sie die zu exportierenden Schemas angeben. Alle Schemas auf Datenbankebene können exportiert werden.

So exportieren Sie Daten aus einer Datenbank in einer Cloud SQL-Instanz in eine CSV-Datei in einem Cloud Storage-Bucket:

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.

    Cloud SQL-Instanzen aufrufen

  2. Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
  3. Klicken Sie auf Exportieren.
  4. Wählen Sie Export auslagern aus, um andere Vorgänge ausführen zu können, während der Export läuft.
  5. Fügen Sie im Bereich Cloud Storage-Exportspeicherort den Namen des Buckets, Ordners und der Datei hinzu, die Sie exportieren möchten, oder klicken Sie auf Durchsuchen, um einen Bucket, Ordner oder eine Datei zu suchen oder zu erstellen.

    Wenn Sie auf Durchsuchen klicken, gehen Sie so vor:

    1. Wählen Sie im Bereich Speicherort einen Cloud Storage-Bucket oder -Ordner für den Export aus.
    2. Geben Sie im Feld Name einen Namen für die Datei CSV ein oder wählen Sie eine vorhandene Datei aus der Liste im Abschnitt Speicherort aus.

      Sie können die Dateiendung .gz (die vollständige Erweiterung lautet .csv.gz) verwenden, um die Exportdatei zu komprimieren.

    3. Klicken Sie auf Auswählen.
  6. Klicken Sie im Abschnitt Format auf CSV.
  7. Wählen Sie im Abschnitt Datenbank für den Export den Namen der Datenbank aus dem Drop-down-Menü aus.
  8. Geben Sie für SQL-Abfrage eine SQL-Abfrage ein, um die Tabelle anzugeben, aus der Daten exportiert werden sollen.

    Wenn Sie beispielsweise den gesamten Inhalt der Tabelle entries in die Datenbank guestbook exportieren möchten, geben Sie Folgendes ein:

    SELECT * FROM guestbook.entries;
    Sie müssen in Ihrer Abfrage eine Tabelle in der angegebenen Datenbank festlegen. Es kann nicht die gesamte Datenbank in das CSV-Format exportiert werden.

  9. Klicken Sie auf Exportieren, um den Export zu starten.
  10. Das Feld Datenbank exportieren? wird mit einer Meldung geöffnet, dass der Exportvorgang bei großen Datenbanken eine Stunde oder länger dauern kann. Während des Exports können nur Informationen zur Instanz abgerufen werden. Nachdem der Export gestartet wurde, können Sie den Vorgang abbrechen. Klicken Sie auf Exportieren, um den Export zu starten. Klicken Sie andernfalls auf Abbrechen.

gcloud

  1. Erstellen Sie einen Cloud Storage-Bucket.
  2. Laden Sie die Datei in den Bucket hoch.

    Informationen zum Hochladen von Dateien in Buckets finden Sie unter Objekte hochladen.

  3. Suchen Sie das Dienstkonto für die Cloud SQL-Instanz, aus der Sie exportieren. Dazu können Sie den Befehl gcloud sql instances describe verwenden. Suchen Sie in der Ausgabe nach dem Feld serviceAccountEmailAddress.
    gcloud sql instances describe INSTANCE_NAME
    
  4. Weisen Sie mit gsutil iam dem Cloud SQL-Instanzdienstkonto die IAM-Rolle storage.objectAdmin zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden.
  5. Exportieren Sie die Datenbank:
    gcloud sql export csv INSTANCE_NAME gs://BUCKET_NAME/FILE_NAME \
    --database=DATABASE_NAME \
    --offload \
    --query=SELECT_QUERY
    

    Informationen zum Verwenden des Befehls export csv finden Sie auf der Referenzseite des Befehls sql export csv.

  6. Wenn Sie die zuvor festgelegte IAM-Rolle nicht beibehalten möchten, entfernen Sie sie jetzt.

REST Version 1

  1. Erstellen Sie einen Bucket für den Export:
    gsutil mb -p PROJECT_NAME -l LOCATION_NAME gs://BUCKET_NAME
    

    Dieser Schritt ist nicht erforderlich, wird aber dringend empfohlen, damit kein Zugriff auf andere Daten möglich ist.

  2. Weisen Sie Ihrer Instanz die IAM-Rolle legacyBucketWriter für Ihren Bucket zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden.
  3. Exportieren Sie Ihre Datenbank:

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • project-id: die Projekt-ID
    • instance-id: die Instanz-ID
    • bucket_name: der Name des Cloud Storage-Buckets
    • path_to_csv_file: der Pfad zur CSV-Datei
    • database_name: der Name einer Datenbank in der Cloud SQL-Instanz
    • offload: aktiviert den serverlosen Export. Legen Sie true fest, um den serverlosen Export zu verwenden.
    • select_query: SQL-Abfrage für den Export (optional)
    • escape_character: das Zeichen, das vor einem Datenzeichen stehen muss, das maskiert werden soll. Der Wert dieses Arguments muss als ein Zeichen im Hex-ASCII-Code angegeben werden. Beispiel: "22" steht für doppelte Anführungszeichen. (optional)
    • quote_character: das Zeichen, das Werte aus Spalten mit dem Datentyp "String" umschließt. Der Wert dieses Arguments muss als ein Zeichen im Hex-ASCII-Code angegeben werden. Beispiel: "22" steht für doppelte Anführungszeichen. (optional)
    • fields_terminated_by: das Zeichen, das die Spaltenwerte aufteilt. Der Wert dieses Arguments muss als ein Zeichen im Hex-ASCII-Code angegeben werden. "2C" steht beispielsweise für ein Komma. (optional)
    • lines_terminated_by: das Zeichen, das die Zeileneinträge aufteilt. Der Wert dieses Arguments muss als ein Zeichen im Hex-ASCII-Code angegeben werden. Beispielsweise steht "0A" für eine neue Zeile. (optional)

    HTTP-Methode und URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export

    JSON-Text anfordern:

    {
     "exportContext":
       {
          "fileType": "CSV",
          "uri": "gs://bucket_name/path_to_csv_file",
          "databases": ["database_name"],
          "offload": true | false
          "csvExportOptions":
           {
               "selectQuery":"select_query",
               "escapeCharacter":"escape_character",
               "quoteCharacter":"quote_character",
               "fieldsTerminatedBy":"fields_terminated_by",
               "linesTerminatedBy":"lines_terminated_by"
           }
       }
    }
    

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    Sie müssen genau eine Datenbank mit dem Attribut databases angeben. Wenn Sie in der Auswahlabfrage eine Datenbank festlegen, muss diese damit identisch sein.

  4. Wenn Sie die zuvor festgelegten IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese jetzt.
Die vollständige Liste der Parameter für die Anfrage finden Sie auf der Seite instances:export.

REST v1beta4

  1. Erstellen Sie einen Bucket für den Export:
    gsutil mb -p PROJECT_NAME -l LOCATION_NAME gs://BUCKET_NAME
    

    Dieser Schritt ist nicht erforderlich, wird aber dringend empfohlen, damit kein Zugriff auf andere Daten möglich ist.

  2. Weisen Sie Ihrer Instanz die IAM-Rolle storage.objectAdmin für Ihren Bucket zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden.
  3. Exportieren Sie Ihre Datenbank:

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • project-id: die Projekt-ID
    • instance-id: die Instanz-ID
    • bucket_name: der Name des Cloud Storage-Buckets
    • path_to_csv_file: der Pfad zur CSV-Datei
    • database_name: der Name einer Datenbank in der Cloud SQL-Instanz
    • offload: aktiviert den serverlosen Export. Legen Sie true fest, um den serverlosen Export zu verwenden.
    • select_query: SQL-Abfrage für den Export (optional)
    • escape_character: das Zeichen, das vor einem Datenzeichen stehen muss, das maskiert werden soll. Der Wert dieses Arguments muss im ASCII-Hexadezimalformat angegeben werden. Beispiel: "22" steht für doppelte Anführungszeichen. (optional)
    • quote_character: das Zeichen, das Werte aus Spalten mit dem Datentyp "String" umschließt. Der Wert dieses Arguments muss im ASCII-Hexadezimalformat angegeben werden. Beispiel: "22" steht für doppelte Anführungszeichen. (optional)
    • fields_terminated_by: das Zeichen, das die Spaltenwerte aufteilt. Der Wert dieses Arguments muss im ASCII-Hexadezimalformat angegeben werden. "2C" steht beispielsweise für ein Komma. (optional)
    • lines_terminated_by: das Zeichen, das die Zeileneinträge aufteilt. Der Wert dieses Arguments muss im ASCII-Hexadezimalformat angegeben werden. Beispielsweise steht "0A" für eine neue Zeile. (optional)

    HTTP-Methode und URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export

    JSON-Text anfordern:

    {
     "exportContext":
       {
          "fileType": "CSV",
          "uri": "gs://bucket_name/path_to_csv_file",
          "databases": ["database_name"],
          "offload": true | false
          "csvExportOptions":
           {
               "selectQuery": "select_query",
               "escapeCharacter":  "escape_character",
               "quoteCharacter": "quote_character",
               "fieldsTerminatedBy": "fields_terminated_by",
               "linesTerminatedBy": "lines_terminated_by"
           }
       }
    }
    

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    Sie müssen genau eine Datenbank mit dem Attribut databases angeben. Wenn Sie in der Auswahlabfrage eine Datenbank festlegen, muss diese damit identisch sein.

  4. Wenn Sie die zuvor festgelegte IAM-Rolle nicht beibehalten möchten, entfernen Sie sie jetzt.
Die vollständige Liste der Parameter für diese Anfrage finden Sie auf der Seite instances:export.

Format einer CSV-Exportdatei anpassen

Zum Anpassen des CSV-Dateiformats können Sie gcloud oder die REST API verwenden. Wenn Sie einen Export ausführen, können Sie die folgenden Formatierungsoptionen festlegen:

CSV-Option Standardwert gcloud-Flag REST API-Attribut Beschreibung
Escape-Taste

"5C"

ASCII-Hexadezimalcode für Dateitrennzeichen.

--escape escapeCharacter

Zeichen, das vor einem Datenzeichen stehen muss, das maskiert werden soll.

Nur für MySQL und PostgreSQL verfügbar.

Zitat

"22"

ASCII-Hexadezimalcode für doppelte Anführungszeichen.

--quote quoteCharacter

Zeichen, das Werte aus Spalten mit dem Datentyp "String" umschließt.

Nur für MySQL und PostgreSQL verfügbar.

Feldtrennzeichen

"2C"

ASCII-Hexadezimalcode für Komma.

--fields-terminated-by fieldsTerminatedBy

Zeichen, das die Spaltenwerte aufteilt.

Nur für MySQL und PostgreSQL verfügbar.

Zeilenumbruch

"0A"

ASCII-Hexadezimalcode für Zeilenumbruch.

--lines-terminated-by linesTerminatedBy

Zeichen, das Zeileneinträge aufteilt.

Nur für MySQL verfügbar.

Ein gcloud-Befehl mit diesen Argumenten kann beispielsweise so aussehen:

gcloud sql export csv INSTANCE_NAME gs://BUCKET_NAME/FILE_NAME \
--database=DATABASE_NAME \
--offload \
--query=SELECT_QUERY \
--quote="22" \
--escape="5C" \
--fields-terminated-by="2C" \
--lines-terminated-by="0A"

Der entsprechende REST API-Anfragetext würde so aussehen:

{
 "exportContext":
   {
      "fileType": "CSV",
      "uri": "gs://bucket_name/path_to_csv_file",
      "databases": ["DATABASE_NAME"],
      "offload": true,
      "csvExportOptions":
       {
           "selectQuery": "SELECT_QUERY",
           "escapeCharacter":  "5C",
           "quoteCharacter": "22",
           "fieldsTerminatedBy": "2C",
           "linesTerminatedBy": "0A"
       }
   }
}

Beim CSV-Export wird standardmäßig eine Standard-CSV-Ausgabe erstellt. Wenn Sie noch mehr Optionen benötigen, als Cloud SQL bereitstellt, können Sie die folgende Anweisung in einem psql-Client verwenden:

      \copy [table_name] TO '[csv_file_name].csv' WITH
          (FORMAT csv, ESCAPE '[escape_character]', QUOTE '[quote_character]',
          DELIMITER '[delimiter_character]', ENCODING 'UTF8', NULL '[null_marker_string]');

Daten in Cloud SQL for PostgreSQL importieren

Erforderliche Rollen und Berechtigungen für das Importieren in Cloud SQL for PostgreSQL

Zum Importieren von Daten aus Cloud Storage in Cloud SQL muss der Nutzer, der den Import initiiert, eine der folgenden Rollen haben:

Darüber hinaus muss das Dienstkonto für die Cloud SQL-Instanz eine der folgenden Rollen haben:

  • storage.objectAdmin IAM-Rolle.
  • Eine benutzerdefinierte Rolle mit folgenden Berechtigungen:
    • storage.objects.get
    • storage.objects.list (nur für den parallelen Import von Dateien)

Informationen zu IAM-Rollen finden Sie unter Identitäts- und Zugriffsverwaltung.

Daten aus einer CSV-Datei in Cloud SQL for PostgreSQL importieren

  • Die Datenbank und die Tabelle, in die importiert werden sollen, müssen in der Cloud SQL-Instanz vorhanden sein. Informationen zum Erstellen einer Datenbank finden Sie unter Datenbank erstellen.
  • Ihre CSV-Datei muss den Formatanforderungen an CSV-Dateien entsprechen.

Formatanforderungen an CSV-Dateien

Die CSV-Dateien müssen eine Zeile pro Datensatz und kommagetrennte Felder haben.

So importieren Sie Daten aus einer CSV-Datei in eine Cloud-SQL-Instanz:

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.

    Cloud SQL-Instanzen aufrufen

  2. Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
  3. Klicken Sie auf Importieren.
  4. Geben Sie im Bereich Datei auswählen, aus der Daten importiert werden sollen den Pfad zum Bucket und zur CSV-Datei für den Import ein. Oder öffnen Sie die Datei:
    1. Klicken Sie auf Durchsuchen.
    2. Klicken Sie im Abschnitt Standort doppelt auf den Namen des Buckets in der Liste.
    3. Wählen Sie die Datei in der Liste aus.
    4. Klicken Sie auf Auswählen.

    Sie können eine komprimierte Datei (.gz) oder eine unkomprimierte Datei (.csv) importieren.

  5. Wählen Sie im Bereich Format die Option CSV aus.
  6. Geben Sie die Datenbank und die Tabelle in der Cloud SQL-Instanz an, in die die CSV-Datei importiert werden soll.
  7. Sie können optional einen Nutzer für den Importvorgang angeben.
  8. Klicken Sie auf Importieren, um den Import zu starten.

gcloud

  1. Erstellen Sie einen Cloud Storage-Bucket.
  2. Laden Sie die Datei in den Bucket hoch.

    Informationen zum Hochladen von Dateien in Buckets finden Sie unter Objekte hochladen.

  3. Laden Sie Daten aus der CSV-Datei in den Bucket hoch.
  4. Identifizieren Sie das Dienstkonto für die Cloud SQL-Instanz, aus der Sie exportieren. Dazu können Sie den gcloud sql instances describe-Befehl mit dem Instanznamen ausführen. Suchen Sie in der Ausgabe nach dem Feld serviceAccountEmailAddress.
    gcloud sql instances describe INSTANCE_NAME
    
  5. Kopieren Sie das Feld "serviceAccountEmailAddress".
  6. Weisen Sie mit gsutil iam dem Cloud SQL-Instanzdienstkonto für den Bucket die IAM-Rolle storage.objectAdmin zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden.
  7. Importieren Sie die Datei:
    gcloud sql import csv INSTANCE_NAME gs://BUCKET_NAME/FILE_NAME \
    --database=DATABASE_NAME \
    --table=TABLE_NAME
    

    Informationen zum Verwenden des Befehls import csv finden Sie auf der Referenzseite des Befehls sql import csv.

  8. Wenn Sie die zuvor festgelegten Cloud IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese mit gsutil iam.

REST Version 1

  1. Erstellen Sie einen Cloud Storage-Bucket.
  2. Laden Sie die Datei in den Bucket hoch.

    Informationen zum Hochladen von Dateien in Buckets finden Sie unter Objekte hochladen.

  3. Weisen Sie Ihrer Instanz die IAM-Rollen legacyBucketWriter und objectViewer für Ihren Bucket zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden.
  4. Importieren Sie die Datei:

    Ersetzen Sie dabei folgende Werte für die Anfragedaten:

    • project-id: die Projekt-ID
    • instance-id: die Instanz-ID
    • bucket_name: der Name des Cloud Storage-Buckets
    • path_to_csv_file: der Pfad zur CSV-Datei
    • database_name: der Name einer Datenbank in der Cloud SQL-Instanz
    • table_name: der Name der Datenbanktabelle.
    • escape_character: das Zeichen, das vor einem Datenzeichen stehen muss, das maskiert werden soll. Der Wert dieses Arguments muss als ein Zeichen im Hex-ASCII-Code angegeben werden. Beispiel: "22" steht für doppelte Anführungszeichen. (optional)
    • quote_character: das Zeichen, das Werte aus Spalten mit dem Datentyp "String" umschließt. Der Wert dieses Arguments muss als ein Zeichen im Hex-ASCII-Code angegeben werden. Beispiel: "22" steht für doppelte Anführungszeichen. (optional)
    • fields_terminated_by: das Zeichen, das die Spaltenwerte aufteilt. Der Wert dieses Arguments muss als ein Zeichen im Hex-ASCII-Code angegeben werden. "2C" steht beispielsweise für ein Komma. (optional)
    • lines_terminated_by: das Zeichen, das die Zeileneinträge aufteilt. Der Wert dieses Arguments muss als ein Zeichen im Hex-ASCII-Code angegeben werden. Beispielsweise steht "0A" für eine neue Zeile. (optional)

    HTTP-Methode und URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import

    JSON-Text anfordern:

    {
     "importContext":
       {
          "fileType": "CSV",
          "uri": "gs://bucket_name/path_to_csv_file",
          "database": "database_name",
          "csvImportOptions":
           {
             "table": "table_name",
             "escapeCharacter": "escape_character",
             "quoteCharacter": "quote_character",
             "fieldsTerminatedBy": "fields_terminated_by",
             "linesTerminatedBy": "lines_terminated_by"
           }
       }
    }
    
    

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    Die vollständige Liste der Parameter für die Anfrage finden Sie auf der Seite instances:insert.
  5. Wenn Sie die zuvor festgelegten Cloud IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese.

REST v1beta4

  1. Erstellen Sie einen Cloud Storage-Bucket.
  2. Laden Sie die Datei in den Bucket hoch.

    Informationen zum Hochladen von Dateien in Buckets finden Sie unter Objekte hochladen.

  3. Weisen Sie Ihrer Instanz die IAM-Rolle storage.objectAdmin für Ihren Bucket zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden.
  4. Importieren Sie die Datei:

    Ersetzen Sie dabei folgende Werte für die Anfragedaten:

    • project-id: die Projekt-ID
    • instance-id: die Instanz-ID
    • bucket_name: der Name des Cloud Storage-Buckets
    • path_to_csv_file: der Pfad zur CSV-Datei
    • database_name: der Name einer Datenbank in der Cloud SQL-Instanz
    • table_name: der Name der Datenbanktabelle.
    • escape_character: das Zeichen, das vor einem Datenzeichen stehen muss, das maskiert werden soll. Der Wert dieses Arguments muss im ASCII-Hexadezimalformat angegeben werden. Beispiel: "22" steht für doppelte Anführungszeichen. (optional)
    • quote_character: das Zeichen, das Werte aus Spalten mit dem Datentyp "String" umschließt. Der Wert dieses Arguments muss im ASCII-Hexadezimalformat angegeben werden. Beispiel: "22" steht für doppelte Anführungszeichen. (optional)
    • fields_terminated_by: das Zeichen, das die Spaltenwerte aufteilt. Der Wert dieses Arguments muss im ASCII-Hexadezimalformat angegeben werden. "2C" steht beispielsweise für ein Komma. (optional)
    • lines_terminated_by: das Zeichen, das die Zeileneinträge aufteilt. Der Wert dieses Arguments muss im ASCII-Hexadezimalformat angegeben werden. Beispielsweise steht "0A" für eine neue Zeile. (optional)

    HTTP-Methode und URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import

    JSON-Text anfordern:

    {
     "importContext":
       {
          "fileType": "CSV",
          "uri": "gs://bucket_name/path_to_csv_file",
          "database": "database_name",
          "csvImportOptions":
           {
             "table": "table_name",
             "escapeCharacter": "escape_character",
             "quoteCharacter": "quote_character",
             "fieldsTerminatedBy": "fields_terminated_by",
             "linesTerminatedBy": "lines_terminated_by"
           }
       }
    }
    
    

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    Die vollständige Liste der Parameter für die Anfrage finden Sie auf der Seite instances:insert.
  5. Wenn Sie die zuvor festgelegten Cloud IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese.

Format einer CSV-Datei für Cloud SQL for PostgreSQL anpassen

Zum Anpassen des CSV-Dateiformats können Sie gcloud oder die REST API verwenden.

Beispiel für einen gcloud-Befehl:

gcloud sql import csv INSTANCE_NAME gs://BUCKET_NAME/FILE_NAME \
--database=DATABASE_NAME \
--table=TABLE_NAME \
--quote="22" \
--escape="5C" \
--fields-terminated-by="2C" \
--lines-terminated-by="0A"

Der entsprechende REST API-Anfragetext würde so aussehen:

{
 "importContext":
   {
      "fileType": "CSV",
      "uri": "gs://bucket_name/path_to_csv_file",
      "database": ["DATABASE_NAME"],
      "csvImportOptions":
       {
           "table": "TABLE_NAME",
           "escapeCharacter":  "5C",
           "quoteCharacter": "22",
           "fieldsTerminatedBy": "2C",
           "linesTerminatedBy": "0A"
       }
   }
}

Wenn ein Fehler wie z. B. ERROR_RDBMS angezeigt wird, prüfen Sie, ob die Tabelle vorhanden ist. Ist die Tabelle vorhanden, sollten Sie ermitteln, ob Sie die richtigen Berechtigungen für den Bucket haben. Hilfe zum Konfigurieren der Zugriffssteuerung in Cloud Storage finden Sie unter Access Control Lists (ACLs) erstellen und verwalten.

Informationen zum Erstellen der zugrunde liegenden REST API-Anfrage für diese Aufgabe finden Sie im APIs Explorer auf der Seite "Instanzimporte".

Weitere Informationen