Questa pagina descrive come importare i dati da un file CSV archiviato in un bucket Cloud Storage in un cluster AlloyDB per PostgreSQL.
Puoi annullare l'importazione dei dati nei cluster AlloyDB. Per ulteriori informazioni, vedi 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 sottodimensionato.
Ruoli e autorizzazioni richiesti per l'importazione nei cluster 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.getalloydb.clusters.import
Inoltre, il account di servizio per il cluster AlloyDB deve avere uno dei seguenti ruoli:
- Il 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.
Importare dati da un file CSV nei cluster AlloyDB
- Il database e la tabella in cui esegui l'importazione devono esistere nel tuo cluster AlloyDB. Per assistenza nella creazione di un database, vedi Crea un database.
- I file CSV devono avere una riga per ogni riga di dati e utilizzare campi separati da virgole.
Per importare dati in un cluster AlloyDB utilizzando un file CSV, 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 Formato file, seleziona CSV.
In Seleziona file di origine, scegli se caricare i file dal computer o selezionarne uno da una posizione Cloud Storage.
Per caricare un file dal tuo computer:
- Seleziona Carica file dal tuo computer.
- Fai clic su Sfoglia accanto a Seleziona file locale per selezionare un file CSV dalla macchina locale.
- Fai clic su Sfoglia accanto a Seleziona percorso Cloud Storage per selezionare un percorso Cloud Storage in cui archiviare il file locale caricato.
- Fai clic su Carica per caricare il file.
Per selezionare un file CSV esistente in un bucket Cloud Storage:
- Seleziona Seleziona il file da Google Cloud Storage.
- Fai clic su Sfoglia accanto a nome-bucket/nome-file per selezionare un file CSV da un bucket Cloud Storage.
Seleziona il database in cui vuoi importare i dati dal menu a discesa Database.
Seleziona la tabella all'interno del database dal menu a discesa Tabella.
Facoltativo. Per specificare un utente per l'operazione di importazione, fai clic su Mostra opzioni utente e inserisci il nome utente nel campo Utente.
Per avviare l'operazione di importazione, fai clic su Importa.
gcloud
- Crea un bucket Cloud Storage.
- Carica il file CSV 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.objectViewerruolo IAM al account di servizio AlloyDB per il bucket.service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.comPer assistenza con l'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM.
Importa il file:
gcloud alloydb clusters import CLUSTER_NAME --region=REGION --gcs-uri=gs://BUCKET_NAME/FILE_NAME --database=DATABASE_NAME --user=USER --csv --table=TABLE_NAMEEffettua le seguenti sostituzioni:
- CLUSTER_NAME: il nome del cluster.
- REGION: la regione in cui viene 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 saperne di più 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 CSV 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.comUtilizza gcloud storage buckets add-iam-policy-binding per concedere il
storage.objectViewerruolo IAM al account di servizio del cluster AlloyDB per il bucket. Per assistenza con l'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM.Importa il file.
Utilizza il seguente metodo HTTP e URL:
POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID:importPrima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID progetto
- LOCATION_ID: la regione in cui viene eseguito il deployment del cluster AlloyDB.
- CLUSTER_ID: l'ID cluster.
- BUCKET_NAME: il nome del bucket Cloud Storage.
- PATH_TO_CSV_FILE: il percorso del file CSV.
- USER: l'utente per l'operazione di importazione.
- DATABASE_NAME: il nome di un database all'interno del cluster AlloyDB.
- TABLE_NAME: la tabella all'interno del database.
- COLUMNS (facoltativo): le colonne da importare.
- ESCAPE_CHARACTER (facoltativo): il carattere che deve
precedere un carattere di dati che deve essere sottoposto a escape. Il valore
di questo argomento deve essere un carattere nel codice ASCII esadecimale. Ad esempio,
22rappresenta un doppio apice. - QUOTE_CHARACTER (facoltativo): il carattere
che racchiude i valori delle colonne con un tipo di dati stringa.
Il valore di questo argomento deve essere un carattere nel codice ASCII esadecimale.
Ad esempio,
22rappresenta un doppio apice. - FIELD_DELIMITER (facoltativo): il carattere
che divide i valori delle colonne. Il valore di questo argomento deve essere un
carattere nel codice ASCII esadecimale. Ad esempio,
2Crappresenta una virgola.
Corpo JSON della richiesta:
{ "gcsUri": "gs://BUCKET_NAME/PATH_TO_CSV_FILE", "database": "DATABASE_NAME", "user": "USER", "csvImportOptions": { "table": "TABLE_NAME", "columns": ["COLUMN1", "COLUMN2"], "fieldDelimiter": "FIELD_DELIMITER", "quoteCharacter": "QUOTE_CHARACTER", "escapeCharacter": "ESCAPE_CHARACTER" } }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.jsoned esegui il comando seguente: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.jsoned esegui il comando seguente:$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 ContentRicevi 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": "2024-09-17T06:05:31.244428646Z", "target": "projects/project-id/locations/location-id/clusters/target-cluster", "verb": "import", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }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.
Personalizzare il formato CSV e importare il file
Puoi personalizzare il formato CSV e importare il file quando il file CSV contiene delimitatori di campo, virgolette o caratteri di escape non predefiniti. Per importare un file CSV con un formato non predefinito, devi fornire le stesse opzioni di formattazione nella richiesta.
Utilizza i seguenti esempi della gcloud CLI e API REST per personalizzare il formato del file CSV.
gcloud
gcloud alloydb clusters import CLUSTER_NAME --region=REGION --database=DATABASE_NAME --gcs-uri='gs://BUCKET_NAME/PATH_TO_CSV_FILE' --user=USERNAME --table=TABLE_NAME --columns=COLUMNS --field-delimiter='2C' --quote-character='22' --escape-character='5C' --csvREST v1
Il corpo della richiesta API REST equivalente è simile al seguente:
{
"gcsUri": "gs://BUCKET_NAME/PATH_TO_CSV_FILE",
"database": "DATABASE_NAME",
"user": "USER",
"csvImportOptions": {
"table": "TABLE_NAME",
"columns": ["COLUMN1", "COLUMN2"],
"escapeCharacter": "5C",
"quoteCharacter": "22",
"fieldDelimiter": "2C",
}
}
Per vedere come viene creata la richiesta API REST sottostante per questa attività, consulta Explorer API nella pagina clusters:import.
Se ricevi un errore come INVALID_ARGUMENT, assicurati che la tabella esista. Se
la tabella esiste, verifica di disporre delle autorizzazioni corrette per il bucket.
Per assistenza nella configurazione del controllo dell'accesso in Cloud Storage, consulta
Creazione e gestione degli elenchi di controllo dell'accesso.
Controllare lo stato di un'operazione di importazione
Per controllare lo stato di un'operazione di importazione:
gcloud
Esegui il seguente comando utilizzando gcloud alloydb operations describe:
gcloud alloydb operations describe OPERATION_ID --region=REGIONLo stato di queste operazioni è indicato nel campo STATUS.
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 viene 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 SQL.
- Scopri come annullare un'operazione di importazione.