Questa pagina descrive l'esportazione e l'importazione di dati nelle istanze Cloud SQL utilizzando file CSV.
Prima di iniziare
Prima di iniziare un'operazione di esportazione o importazione:
- Assicurati che il database disponga di spazio libero sufficiente.
- Verifica che il file CSV contenga i dati previsti e che siano nel formato corretto. I file CSV devono avere una riga per ogni riga di campi di dati.
- Segui le best practice per l'esportazione e l'importazione dei dati.
Le operazioni di esportazione e importazione utilizzano le risorse del database, ma non interferiscono con le normali operazioni del database, a meno che il provisioning dell'istanza non sia insufficiente.
Esporta i dati da Cloud SQL per PostgreSQL
Ruoli e autorizzazioni richiesti per l'esportazione da Cloud SQL per PostgreSQL
Per esportare i dati da Cloud SQL in Cloud Storage, l'utente che avvia l'esportazione deve disporre di uno dei seguenti ruoli:
- Il ruolo Editor Cloud SQL
- Un ruolo personalizzato,
incluse le seguenti autorizzazioni:
cloudsql.instances.get
cloudsql.instances.export
Inoltre, il account di servizio dell'istanza Cloud SQL deve avere uno dei seguenti ruoli:
- Il ruolo
storage.objectAdmin
Identity and Access Management (IAM) - Un ruolo personalizzato, incluse le seguenti autorizzazioni:
storage.objects.create
storage.objects.list
(solo per l'esportazione parallela dei file)storage.objects.delete
(solo per l'esportazione parallela dei file)
Per assistenza con i ruoli IAM, consulta Identity and Access Management.
Esportare i dati in un file CSV da Cloud SQL per PostgreSQL
Puoi esportare i dati in formato CSV, utilizzabile da altri strumenti e ambienti. Le esportazioni avvengono a livello di database. Durante l'esportazione di un file CSV, puoi specificare gli schemi da esportare. Tutti gli schemi a livello di database sono idonei all'esportazione.
Per esportare i dati da un database su un'istanza Cloud SQL in un file CSV in un bucket Cloud Storage:
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Fai clic su Esporta.
- Seleziona Scarica esportazione per consentire l'esecuzione di altre operazioni durante l'esportazione.
-
Nella sezione Percorso di esportazione di Cloud Storage, aggiungi il nome del bucket, della cartella e del file che vuoi esportare oppure fai clic su Sfoglia per trovare o creare un bucket, una cartella o un file.
Se fai clic su Sfoglia:
- Nella sezione Località, seleziona un bucket o una cartella Cloud Storage per l'esportazione.
Nella casella Nome, aggiungi un nome per il file
CSV
o seleziona un file esistente dall'elenco nella sezione Posizione.Puoi utilizzare un'estensione di file
.gz
(l'estensione completa sarebbe.csv.gz
) per comprimere il file di esportazione.- Fai clic su Seleziona.
- Nella sezione Formato, fai clic su CSV.
- Nella sezione Database per l'esportazione, seleziona il nome del database dal menu a discesa.
-
Per query SQL, inserisci una query SQL per specificare la tabella da cui esportare i dati.
Ad esempio, per esportare l'intero contenuto della tabella
entries
nel databaseguestbook
, inserisci La query deve specificare una tabella nel database specificato. Non puoi esportare un intero database in formato CSV.SELECT * FROM guestbook.entries;
- Fai clic su Esporta per avviare l'esportazione.
- Si apre la casella Esporta database? con un messaggio che indica che il processo di esportazione può richiedere un'ora o più per i database di grandi dimensioni. Durante l'esportazione, l'unica operazione che puoi eseguire sull'istanza è la visualizzazione delle informazioni. Una volta avviata l'esportazione, puoi annullare l'operazione. Se questo è un buon momento per avviare un'esportazione, fai clic su Esporta. In caso contrario, fai clic su Annulla.
- Crea un bucket Cloud Storage.
Carica il file nel bucket.
Per assistenza con il caricamento di file nei bucket, consulta Caricamento di oggetti.
- Trova il account di servizio dell'istanza Cloud SQL da cui stai esportando. A tale scopo, esegui il comando
gcloud sql instances describe
. Cerca il camposerviceAccountEmailAddress
nell'output.gcloud sql instances describe
INSTANCE_NAME - Utilizza
gcloud storage buckets add-iam-policy-binding
per concedere ilstorage.objectAdmin
ruolo IAM al account di servizio dell'istanza Cloud SQL. Per assistenza con la configurazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM. - Esporta il database:
gcloud sql export csv
INSTANCE_NAME gs://BUCKET_NAME /FILE_NAME \ --database=DATABASE_NAME \ --offload \ --query=SELECT_QUERY Per informazioni sull'utilizzo del comando
export csv
, consulta lasql export csv
pagina di riferimento del comando. - Se non devi conservare il ruolo IAM che hai impostato in precedenza, revocalo ora.
- Crea un bucket per l'esportazione:
gcloud storage buckets create gs://
BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME Questo passaggio non è obbligatorio, ma è fortemente consigliato per non aprire l'accesso ad altri dati.
- Fornisci alla tua istanza il
legacyBucketWriter
ruolo IAM per il tuo bucket. Per assistenza con l'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM. -
Esporta il database:
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- instance-id: l'ID istanza
- bucket_name: Il nome del bucket Cloud Storage
- path_to_csv_file: il percorso del file CSV
- database_name: il nome di un database all'interno dell'istanza Cloud SQL
- offload: attiva l'esportazione serverless. Imposta su
true
per utilizzare l'esportazione serverless. - select_query: query SQL per l'esportazione (facoltativo)
- escape_character: il carattere che deve essere visualizzato prima di 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, "22" rappresenta le virgolette doppie. (facoltativo)
- quote_character: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, "22" rappresenta le virgolette doppie. (facoltativo)
- fields_terminated_by: il carattere che divide i valori delle colonne. Il valore di questo argomento deve essere un carattere nel codice ASCII esadecimale. Ad esempio, "2C" rappresenta una virgola. (facoltativo)
- lines_terminated_by: il carattere che divide i record di riga. Il valore di questo argomento deve essere un carattere nel codice ASCII esadecimale. Ad esempio, "0A" rappresenta una nuova riga. (facoltativo)
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id /exportCorpo JSON della richiesta:
{ "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 " } } }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
, quindi 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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /export"PowerShell (Windows)
Salva il corpo della richiesta in un file denominato
request.json
, quindi 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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /export" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
Risposta
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/
project-id /instances/target-instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ", "targetProject": "project-id " }Devi specificare esattamente un database con la proprietà
databases
e, se la query di selezione specifica un database, deve essere lo stesso. - Se non hai bisogno di conservare le autorizzazioni IAM che hai impostato in precedenza, rimuovile ora.
- Crea un bucket per l'esportazione:
gcloud storage buckets create gs://
BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME Questo passaggio non è obbligatorio, ma è fortemente consigliato per non aprire l'accesso ad altri dati.
- Fornisci alla tua istanza il
storage.objectAdmin
ruolo IAM per il tuo bucket. Per assistenza con l'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM. -
Esporta il database:
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- instance-id: l'ID istanza
- bucket_name: Il nome del bucket Cloud Storage
- path_to_csv_file: il percorso del file CSV
- database_name: il nome di un database all'interno dell'istanza Cloud SQL
- offload: attiva l'esportazione serverless. Imposta su
true
per utilizzare l'esportazione serverless. - select_query: query SQL per l'esportazione (facoltativo)
- escape_character: il carattere che deve essere visualizzato prima di un carattere di dati che deve essere sottoposto a escape. Il valore di questo argomento deve essere nel formato esadecimale ASCII. Ad esempio, "22" rappresenta le virgolette doppie. (facoltativo)
- quote_character: Il carattere che racchiude i valori delle colonne con un tipo di dati stringa. Il valore di questo argomento deve essere nel formato esadecimale ASCII. Ad esempio, "22" rappresenta le virgolette doppie. (facoltativo)
- fields_terminated_by: il carattere che divide i valori delle colonne. Il valore di questo argomento deve essere nel formato esadecimale ASCII. Ad esempio, "2C" rappresenta una virgola. (facoltativo)
- lines_terminated_by: il carattere che divide i record di riga. Il valore di questo argomento deve essere nel formato esadecimale ASCII. Ad esempio, "0A" rappresenta una nuova riga. (facoltativo)
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /exportCorpo JSON della richiesta:
{ "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 " } } }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
, quindi 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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /export"PowerShell (Windows)
Salva il corpo della richiesta in un file denominato
request.json
, quindi 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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /export" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
Risposta
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/target-instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ", "targetProject": "project-id " }Devi specificare esattamente un database con la proprietà
databases
e, se la query di selezione specifica un database, deve essere lo stesso. - Se non devi conservare il ruolo IAM che hai impostato in precedenza, revocalo ora.
Personalizzare il formato di un file di esportazione CSV
Puoi utilizzare gcloud
o l'API REST per personalizzare il formato del file CSV. Quando
esegui un'esportazione, puoi specificare le seguenti opzioni di formattazione:
Opzione CSV | Valore predefinito | Flag gcloud | Proprietà API REST | Descrizione |
---|---|---|---|---|
Esc |
Codice esadecimale ASCII per il separatore di file. |
--escape |
escapeCharacter |
Carattere che appare prima di un carattere di dati che deve essere sottoposto a escape. Disponibile solo per MySQL e PostgreSQL. |
Citazione |
Codice esadecimale ASCII per le virgolette doppie. |
--quote |
quoteCharacter |
Carattere che racchiude i valori delle colonne con un tipo di dati stringa. Disponibile solo per MySQL e PostgreSQL. |
Delimitatore di campo |
Codice esadecimale ASCII per la virgola. |
--fields-terminated-by |
fieldsTerminatedBy |
Carattere che divide i valori delle colonne. Disponibile solo per MySQL e PostgreSQL. |
Carattere di nuova riga |
Codice esadecimale ASCII per il carattere di nuova riga. |
--lines-terminated-by |
linesTerminatedBy |
Carattere che divide i record di riga. Disponibile solo per MySQL. |
Ad esempio, un comando gcloud
che utilizza tutti questi argomenti potrebbe essere
come il seguente:
gcloud sql export csvINSTANCE_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"
Il corpo della richiesta API REST equivalente avrebbe questo aspetto:
{ "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" } } }
L'esportazione in formato CSV crea un output CSV standard per impostazione predefinita. Se hai bisogno di ancora più opzioni di quelle fornite da Cloud SQL, puoi utilizzare la seguente istruzione in un client psql:
\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]');
Importa i dati in Cloud SQL per PostgreSQL
Ruoli e autorizzazioni richiesti per l'importazione in Cloud SQL per PostgreSQL
Per importare i dati da Cloud Storage in Cloud SQL, l'utente che avvia l'importazione deve disporre di uno dei seguenti ruoli:
- Il ruolo Amministratore Cloud SQL
- Un ruolo personalizzato,
incluse le seguenti autorizzazioni:
cloudsql.instances.get
cloudsql.instances.import
Inoltre, il account di servizio dell'istanza Cloud SQL deve avere uno dei seguenti ruoli:
- Ruolo IAM
storage.objectAdmin
- Un ruolo personalizzato, incluse le seguenti autorizzazioni:
storage.objects.get
storage.objects.list
(solo per l'importazione parallela dei file)
Per assistenza con i ruoli IAM, consulta Identity and Access Management.
Importa i dati da un file CSV in Cloud SQL per PostgreSQL
- Il database e la tabella in cui esegui l'importazione devono esistere nell'istanza Cloud SQL. Per assistenza nella creazione di un database, vedi Creare un database.
- Il file CSV deve essere conforme ai requisiti del formato file CSV.
Requisiti di formato del file CSV
I file CSV devono avere una riga per ogni riga di dati e utilizzare campi separati da virgole.
Per importare i dati in un'istanza Cloud SQL utilizzando un file CSV:
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Fai clic su Importa.
- Nella sezione Scegli il file dal quale vuoi importare i dati, inserisci il percorso del bucket e del file CSV da utilizzare per l'importazione. In alternativa, per sfogliare il file:
- Fai clic su Sfoglia.
- Nella sezione Posizione, fai doppio clic sul nome del bucket nell'elenco.
- Seleziona il file nell'elenco.
- Fai clic su Seleziona.
Puoi importare un file compresso (
.gz
) o non compresso (.csv
). - Nella sezione Formato, seleziona CSV.
- Specifica il database e la tabella nell'istanza Cloud SQL in cui vuoi importare il file CSV.
- Se vuoi, puoi specificare un utente per l'operazione di importazione.
- Fai clic su Importa per avviare l'importazione.
- Crea un bucket Cloud Storage.
Carica il file nel bucket.
Per assistenza con il caricamento di file nei bucket, consulta Caricamento di oggetti.
- Carica i dati dal file CSV nel bucket.
- Identifica il account di servizio dell'istanza Cloud SQL da cui stai esportando. A tale scopo, esegui il comando
gcloud sql instances describe
con il nome dell'istanza. Cerca il camposerviceAccountEmailAddress
nell'output.gcloud sql instances describe
INSTANCE_NAME - Copia il campo serviceAccountEmailAddress.
- Utilizza
gcloud storage buckets add-iam-policy-binding
per concedere ilstorage.objectAdmin
ruolo IAM al account di servizio dell'istanza Cloud SQL per il bucket. Per assistenza con l'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM. - Importa il file:
gcloud sql import csv
INSTANCE_NAME gs://BUCKET_NAME /FILE_NAME \ --database=DATABASE_NAME \ --table=TABLE_NAME Per informazioni sull'utilizzo del comando
import csv
, consulta la pagina di riferimento del comandosql import csv
. - Se non devi conservare le autorizzazioni IAM che hai
impostato in precedenza, rimuovile utilizzando
gcloud storage buckets remove-iam-policy-binding
.
- Crea un bucket Cloud Storage.
Carica il file nel bucket.
Per assistenza con il caricamento di file nei bucket, consulta Caricamento di oggetti.
- Fornisci alla tua istanza i
legacyBucketWriter
eobjectViewer
ruoli IAM per il tuo bucket. Per assistenza con la configurazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM. - Importa il file:
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- instance-id: l'ID istanza
- bucket_name: Il nome del bucket Cloud Storage
- path_to_csv_file: il percorso del file CSV
- database_name: il nome di un database all'interno dell'istanza Cloud SQL
- table_name: il nome della tabella del database
- escape_character: il carattere che deve essere visualizzato prima di 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, "22" rappresenta le virgolette doppie. (facoltativo)
- quote_character: 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, "22" rappresenta le virgolette doppie. (facoltativo)
- fields_terminated_by: il carattere che divide i valori delle colonne. Il valore di questo argomento deve essere un carattere nel codice ASCII esadecimale. Ad esempio, "2C" rappresenta una virgola. (facoltativo)
- lines_terminated_by: il carattere che divide i record di riga. Il valore di questo argomento deve essere un carattere nel codice ASCII esadecimale. Ad esempio, "0A" rappresenta una nuova riga. (facoltativo)
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id /importCorpo JSON della richiesta:
{ "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 " } } }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
, quindi 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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /import"PowerShell (Windows)
Salva il corpo della richiesta in un file denominato
request.json
, quindi 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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /import" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
Per l'elenco completo dei parametri per la richiesta, consulta la pagina instances:import.Risposta
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/
project-id /instances/target-instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ", "targetProject": "project-id " } - Se non devi conservare le autorizzazioni IAM che hai impostato in precedenza, rimuovile.
- Crea un bucket Cloud Storage.
Carica il file nel bucket.
Per assistenza con il caricamento di file nei bucket, consulta Caricamento di oggetti.
- Fornisci alla tua istanza il
storage.objectAdmin
ruolo IAM per il tuo bucket. Per assistenza con la configurazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM. - Importa il file:
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- instance-id: l'ID istanza
- bucket_name: Il nome del bucket Cloud Storage
- path_to_csv_file: il percorso del file CSV
- database_name: il nome di un database all'interno dell'istanza Cloud SQL
- table_name: il nome della tabella del database
- escape_character: il carattere che deve essere visualizzato prima di un carattere di dati che deve essere sottoposto a escape. Il valore di questo argomento deve essere nel formato esadecimale ASCII. Ad esempio,"22" rappresenta le virgolette doppie. (facoltativo)
- quote_character: Il carattere che racchiude i valori delle colonne con un tipo di dati stringa. Il valore di questo argomento deve essere nel formato esadecimale ASCII. Ad esempio, "22" rappresenta le virgolette doppie. (facoltativo)
- fields_terminated_by: il carattere che divide i valori delle colonne. Il valore di questo argomento deve essere nel formato esadecimale ASCII. Ad esempio, "2C" rappresenta una virgola. (facoltativo)
- lines_terminated_by: il carattere che divide i record di riga. Il valore di questo argomento deve essere nel formato esadecimale ASCII. Ad esempio, "0A" rappresenta una nuova riga. (facoltativo)
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /importCorpo JSON della richiesta:
{ "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 " } } }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
, quindi 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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /import"PowerShell (Windows)
Salva il corpo della richiesta in un file denominato
request.json
, quindi 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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /import" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
Per l'elenco completo dei parametri per la richiesta, consulta la pagina instances:import.Risposta
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/target-instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ", "targetProject": "project-id " } - Se non devi conservare le autorizzazioni IAM che hai impostato in precedenza, rimuovile.
Personalizza il formato di un file CSV per Cloud SQL per PostgreSQL
Puoi utilizzare gcloud
o l'API REST per personalizzare il formato del file CSV.
Di seguito è riportato un comando gcloud
di esempio:
gcloud sql import csvINSTANCE_NAME gs://BUCKET_NAME /FILE_NAME \ --database=DATABASE_NAME \ --table=TABLE_NAME \ --quote="22" \ --escape="5C" \ --fields-terminated-by="2C" \ --lines-terminated-by="0A"
Il corpo della richiesta API REST equivalente avrebbe questo aspetto:
{ "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" } } }
Se viene visualizzato un errore come ERROR_RDBMS
, assicurati che la tabella
esista. Se la tabella esiste, verifica di disporre delle autorizzazioni corrette per il bucket. Per assistenza nella configurazione controllo dell'accesso dell'accesso in
Cloud Storage, consulta
Creazione e gestione degli elenchi di controllo di accesso.
Passaggi successivi
- Scopri come controllare lo stato delle operazioni di importazione ed esportazione.
- Scopri di più sulle best practice per l'importazione e l'esportazione dei dati.
- Problemi noti per importazioni ed esportazioni.