Auf dieser Seite wird beschrieben, wie Sie Daten aus einer SQL-Datei, die in einem Cloud Storage-Bucket gespeichert ist, in einen AlloyDB for PostgreSQL-Cluster importieren. SQL-Dateien sind Nur-Text-Dateien mit einer Abfolge von SQL-Befehlen.
Sie können den Datenimport in AlloyDB-Cluster abbrechen. Weitere Informationen finden Sie unter Importvorgang abbrechen.
Hinweise
Vor dem Starten eines Importvorgangs:
- Sorgen Sie dafür, dass in Ihrer Datenbank ausreichend freier Speicherplatz vorhanden ist.
- Importvorgänge verwenden Datenbankressourcen, stören den normalen Datenbankbetrieb jedoch nicht, wenn der Cluster nicht unterdimensioniert ist.
Erforderliche Rollen und Berechtigungen für den Import in AlloyDB
Wenn Sie Daten aus Cloud Storage in AlloyDB importieren möchten, muss der Nutzer, der den Import initiiert, eine der folgenden Rollen haben:
- Die Rolle AlloyDB-Administrator
- Eine benutzerdefinierte Rolle mit den folgenden Berechtigungen:
alloydb.clusters.get
alloydb.clusters.import
Außerdem muss das Dienstkonto für den AlloyDB-Cluster eine der folgenden Rollen haben:
storage.objectViewer
IAM-Rolle.- Eine benutzerdefinierte Rolle mit den folgenden Berechtigungen:
storage.objects.get
Informationen zu IAM-Rollen finden Sie unter Identity and Access Management.
SQL-Datei in AlloyDB-Cluster importieren
So importieren Sie Daten aus einer SQL-Datei in einen AlloyDB-Cluster:
Console
Rufen Sie die Seite Cluster auf.
Klicken Sie auf einen Clusternamen, um die Seite Übersicht für diesen Cluster zu öffnen.
Klicken Sie auf Importieren.
Klicken Sie unter Quelldatei auswählen auf „Cloud Storage durchsuchen“ und wählen Sie eine SQL-Datei aus einem Bucket aus. Alternativ können Sie eine SQL-Datei von Ihrem lokalen Computer hochladen, die für den Import verwendet werden soll.
Wählen Sie die Datenbank aus, in die die Daten importiert werden sollen.
Dadurch führt AlloyDB vor dem Import die Anweisung
USE DATABASE
aus. Wenn Ihre SQL-Dumpdatei eineUSE DATABASE
-Anweisung enthält, wird die in der Google Cloud -Konsole angegebene Datenbank überschrieben.Optional: Geben Sie einen Nutzer für den Importvorgang an. Wenn Ihre Importdatei Anweisungen enthält, die von einem bestimmten Nutzer ausgeführt werden müssen, können Sie mit diesem Feld einen Nutzer angeben.
Klicken Sie auf Importieren, um den Importvorgang zu starten.
gcloud
- Cloud Storage-Bucket erstellen
Laden Sie die SQL-Datei in Ihren Bucket hoch. Informationen zum Hochladen von Dateien in Buckets finden Sie unter Objekte hochladen.
Weisen Sie mit gcloud storage buckets add-iam-policy-binding dem AlloyDB-Clusterdienstkonto für den Bucket die
storage.objectViewer
IAM-Rolle zu:service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.com
Ersetzen Sie die folgenden Werte:
- CLUSTER_NAME ist der Name des Clusters.
- REGION: Die Region, in der der AlloyDB-Cluster bereitgestellt wird.
- BUCKET_NAME: der Name des Cloud Storage-Buckets.
- FILE_NAME: der Name der CSV-Datei.
- DATABASE_NAME: der Name einer Datenbank im Cluster.
- USER: der Nutzer für den Importvorgang.
- TABLE_NAME: die Tabelle in der Datenbank.
Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden.
Importieren Sie die Datei:
gcloud alloydb clusters import CLUSTER_NAME --region=REGION --database=DATABASE_NAME --gcs-uri='gs://BUCKET_NAME/PATH_TO_SQL_FILE' --user=USERNAME --sql
Wenn durch den Befehl ein Fehler wie
PERMISSION_DENIED
zurückgegeben wird, prüfen Sie die Berechtigungen.Informationen zur Verwendung des Befehls
import
finden Sie auf der Referenzseite des Befehlsalloydb import
.Wenn Sie die zuvor festgelegten IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese mit
gcloud storage buckets remove-iam-policy-binding
.
REST Version 1
- Cloud Storage-Bucket erstellen
- Laden Sie die SQL-Datei in Ihren Bucket hoch. Informationen zum Hochladen von Dateien in Buckets finden Sie unter Objekte hochladen.
Gewähren Sie dem Dienstkonto Berechtigungen für den Cloud Storage-Bucket für den Importvorgang. Verwenden Sie das Dienstkontoformat, um das Dienstkonto für das Projekt zu identifizieren, in das Sie importieren. Das Format für das Dienstkonto ist:
service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.com
Weisen Sie mit gcloud storage buckets add-iam-policy-binding die IAM-Rolle
storage.objectViewer
dem Dienstkonto des AlloyDB-Clusters für den Bucket zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden.Importieren Sie Ihre SQL-Datei.
Verwenden Sie die folgende HTTP-Methode und URL:
POST https://alloydbadmin.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID:import
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Projekt-ID.
- LOCATION_ID: Die Region, in der der AlloyDB-Cluster bereitgestellt wird.
- CLUSTER_ID: die Cluster-ID.
- BUCKET_NAME: der Name des Cloud Storage-Buckets.
- PATH_TO_SQL_FILE: der Pfad zur SQL-Datei.
- USER: der Nutzer, der für den Import verwendet werden soll.
- DATABASE_NAME: Der Name einer Datenbank im AlloyDB-Cluster.
JSON-Text anfordern:
{ "gcsUri": "gs://BUCKET_NAME/PATH_TO_SQL_FILE", "database": "DATABASE_NAME", "user": "USER", "sqlImportOptions": {} }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID:import"
PowerShell (Windows)
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID:import"| Select-Object -Expand Content
Sie erhalten eine JSON-Antwort ähnlich der folgenden:
Antwort
{ "name": "projects/project-id/locations/location-id/operations/operation-id", "metadata": { "@type": "type.googleapis.com/google.cloud.alloydb.v1.OperationMetadata", "createTime": "2025-01-04T13:12:32.363393723Z", "target": "projects/project-id/locations/location-id/clusters/cluster-id", "verb": "import", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Wenn Sie einen anderen Nutzer für den Import verwenden möchten, geben Sie das Nutzerattribut an.
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 unter
clusters:import
.
Status eines Importvorgangs prüfen
So prüfen Sie den Status eines Importvorgangs:
gcloud
Führen Sie dazu den folgenden gcloud alloydb operations describe
-Befehl aus:
gcloud alloydb operations describe OPERATION_ID --region=REGION
Sie können auch Details eines bestimmten Vorgangs auflisten lassen oder einen bestimmten Vorgang abbrechen. Weitere Informationen zu diesem Befehl finden Sie auf der Referenzseite zum gcloud alloydb operations
-Befehl.
REST Version 1
Verwenden Sie die Methode GET
und die folgende URL:
GET https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
Weitere Informationen finden Sie unter get
.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- REGION: Die Region, in der der AlloyDB-Cluster bereitgestellt wird.
- PROJECT_ID: Projekt-ID.
- OPERATION_ID: die ID des Importvorgangs. Weitere Informationen finden Sie unter Vorbereitung.
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Führen Sie folgenden Befehl aus:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
PowerShell (Windows)
Führen Sie folgenden Befehl aus:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID | Select-Object -Expand Content
Sie erhalten eine JSON-Antwort ähnlich der folgenden:
Bei erfolgreicher Ausführung enthält der Antworttext eine Instanz von Operation.