Questa pagina descrive come importare i dati da un file SQL archiviato in un bucket Cloud Storage in un cluster AlloyDB per PostgreSQL. I file SQL sono file di testo normale con una sequenza di comandi SQL.
Puoi annullare l'importazione dei dati nei cluster AlloyDB. Per saperne di più, consulta la sezione Annullare un'operazione di importazione.
Prima di iniziare
Prima di iniziare un'operazione di importazione:
- Assicurati che il database disponga di spazio libero sufficiente.
- Le operazioni di importazione utilizzano le risorse del database, ma non interferiscono con le normali operazioni del database, a meno che il cluster non sia sottoposto a provisioning insufficiente.
Ruoli e autorizzazioni richiesti per l'importazione in AlloyDB
Per importare i dati da Cloud Storage in AlloyDB, l'utente che avvia l'importazione deve disporre di uno dei seguenti ruoli:
- Il ruolo AlloyDB Admin
- Un ruolo personalizzato, incluse le
seguenti autorizzazioni:
alloydb.clusters.get
alloydb.clusters.import
Inoltre, il account di servizio per il cluster AlloyDB deve avere uno dei seguenti ruoli:
- Ruolo IAM
storage.objectViewer
- Un ruolo personalizzato, incluse le seguenti autorizzazioni:
storage.objects.get
Per assistenza con i ruoli IAM, consulta Identity and Access Management.
Importa un file SQL nei cluster AlloyDB
Per importare dati in un cluster AlloyDB utilizzando un file SQL, segui questi passaggi:
Console
Vai alla pagina Cluster.
Fai clic sul nome di un cluster per aprire la pagina Panoramica del cluster.
Fai clic su Importa.
In Seleziona file di origine, sfoglia Cloud Storage e seleziona un file SQL da un bucket o carica un file SQL dalla tua macchina locale da utilizzare per l'importazione.
Seleziona il database in cui vuoi importare i dati.
In questo modo, AlloyDB esegue l'istruzione
USE DATABASE
prima dell'importazione. Se il file di dump SQL include un'istruzioneUSE DATABASE
, questa sostituisce il database impostato nella console Google Cloud .(Facoltativo) Specifica un utente per l'operazione di importazione. Se il file di importazione contiene istruzioni che devono essere eseguite da un utente specifico, utilizza questo campo per specificare l'utente.
Per avviare l'operazione di importazione, fai clic su Importa.
gcloud
- Crea un bucket Cloud Storage.
Carica il file SQL nel bucket. Per assistenza con il caricamento di file nei bucket, consulta Caricamento di oggetti.
Utilizza gcloud storage buckets add-iam-policy-binding per concedere il
storage.objectViewer
ruolo IAM al account di servizio del cluster AlloyDB per il bucket:service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.com
Effettua le seguenti sostituzioni:
- CLUSTER_NAME: il nome del cluster.
- REGION: la regione in cui è stato eseguito il deployment del cluster AlloyDB.
- BUCKET_NAME: il nome del bucket Cloud Storage.
- FILE_NAME: il nome del file CSV.
- DATABASE_NAME: il nome di un database all'interno del cluster.
- USER: l'utente per l'operazione di importazione.
- TABLE_NAME: la tabella all'interno del database.
Per assistenza con la configurazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM.
Importa il file:
gcloud alloydb clusters import CLUSTER_NAME --region=REGION --database=DATABASE_NAME --gcs-uri='gs://BUCKET_NAME/PATH_TO_SQL_FILE' --user=USERNAME --sql
Se il comando restituisce un errore come
PERMISSION_DENIED
, rivedi le autorizzazioni.Per informazioni sull'utilizzo del comando
import
, consulta la pagina di riferimento del comandoalloydb import
.Se non hai bisogno di conservare le autorizzazioni IAM che hai impostato in precedenza, rimuovile utilizzando
gcloud storage buckets remove-iam-policy-binding
.
REST v1
- Crea un bucket Cloud Storage.
- Carica il file SQL nel bucket. Per assistenza con il caricamento di file nei bucket, consulta Caricamento di oggetti.
Concedi al account di servizio le autorizzazioni per il bucket Cloud Storage per l'operazione di importazione. Utilizza il formato del account di servizio per identificare il account di servizio per il progetto in cui stai importando. Il formato del account di servizio è il seguente:
service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.com
Utilizza gcloud storage buckets add-iam-policy-binding per concedere il
storage.objectViewer
ruolo IAM al account di servizio del cluster AlloyDB per il bucket. Per assistenza per l'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM.Importa il file SQL.
Utilizza il seguente metodo HTTP e URL:
POST https://alloydbadmin.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID:import
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID progetto
- LOCATION_ID: la regione in cui è stato eseguito il deployment del cluster AlloyDB.
- CLUSTER_ID: l'ID cluster.
- BUCKET_NAME: il nome del bucket Cloud Storage.
- PATH_TO_SQL_FILE: il percorso del file SQL.
- USER: l'utente da utilizzare per l'importazione.
- DATABASE_NAME: il nome di un database all'interno del cluster AlloyDB.
Corpo JSON della richiesta:
{ "gcsUri": "gs://BUCKET_NAME/PATH_TO_SQL_FILE", "database": "DATABASE_NAME", "user": "USER", "sqlImportOptions": {} }
Per inviare la richiesta, espandi una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Salva il corpo della richiesta in un file denominato
request.json
ed esegui questo comando: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)
Salva il corpo della richiesta in un file denominato
request.json
ed esegui questo comando:$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
Ricevi una risposta JSON simile alla seguente:
Risposta
{ "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 }
Per utilizzare un utente diverso per l'importazione, specifica la proprietà utente.
Se non hai bisogno di conservare le autorizzazioni IAM che hai impostato in precedenza, rimuovile ora.
Per l'elenco completo dei parametri per la richiesta, vedi
clusters:import
.
Controllare lo stato di un'operazione di importazione
Per controllare lo stato di un'operazione di importazione:
gcloud
Esegui questo comando utilizzando gcloud alloydb operations describe
:
gcloud alloydb operations describe OPERATION_ID --region=REGION
Puoi anche elencare i dettagli di un'operazione specifica o annullarla. Per ulteriori informazioni su questo comando, consulta la pagina di riferimento del comando gcloud alloydb operations
.
REST v1
Utilizza il metodo GET
e il seguente URL:
GET https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
Per ulteriori informazioni, vedi get
.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- REGION: la regione in cui è stato eseguito il deployment del cluster AlloyDB.
- PROJECT_ID: l'ID progetto
- OPERATION_ID: l'ID dell'operazione di importazione. Per maggiori informazioni, consulta Prima di iniziare.
Per inviare la richiesta, espandi una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
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)
Esegui questo comando:
$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
Ricevi una risposta JSON simile alla seguente:
In caso di esito positivo, il corpo della risposta contiene un'istanza di Operation.
Passaggi successivi
- Scopri come importare un file CSV.
- Scopri come annullare un'operazione di importazione.