Auf dieser Seite wird beschrieben, wie Sie eine CSV-Datei in eine AlloyDB-Datenbank importieren.
Der Import umfasst die folgenden Aufgaben:
Bereiten Sie einen Clienthost vor, um den Importvorgang auszuführen.
Importieren Sie die CSV-Datei in die Datenbank.
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
)
- AlloyDB Admin (
CSV-Datei hochladen
Zum Hochladen der CSV-Datei erstellen Sie einen Cloud Storage-Bucket und laden dann die CSV-Datei in diesen Bucket hoch.
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.
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.
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.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.
- Rufen Sie die IP-Adresse der primären AlloyDB-Instanz ab, in der sich Ihre Datenbank befindet, indem Sie die Details aufrufen.
- Stellen Sie eine SSH-Verbindung zur Compute Engine-VM her.
Console
- Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
- Klicken Sie in der Liste der VM-Instanzen in der Zeile der von Ihnen erstellten Instanz auf SSH.
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
- Kopieren Sie die CSV-Datei in das lokale Dateisystem des Clienthosts:
gcloud storage cp gs://BUCKET_NAME/CSV_FILE_NAME .
- CSV-Datei importieren:
- 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.
- 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. - 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
inpsql
verwendet dieselben Optionen und Argumente wie der BefehlCOPY
von PostgreSQL zur Steuerung des Datenimports. - Führen Sie das Client-Tool
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.