Trasferisci dati verso o da Cloud Storage

Parallelstore può importare ed esportare dati in Cloud Storage. I trasferimenti di dati ti consentono di caricare rapidamente i dati nell'istanza Parallelstore e di utilizzare Cloud Storage come livello di supporto durevole per l'istanza Parallelstore.

Le importazioni e le esportazioni di dati sono incrementali: vengono copiati solo i file che non esistono già nella destinazione o che sono stati modificati dal trasferimento.

Per le velocità di trasferimento previste, consulta Rendimento.

Autorizzazioni obbligatorie

L'account utente o di servizio utilizzato per avviare il trasferimento richiede le seguenti autorizzazioni:

  • parallelstore.instances.exportData per trasferire i dati da Parallelstore a Cloud Storage.
  • parallelstore.instances.importData per poter effettuare il trasferimento in Cloud Storage.

Entrambe queste autorizzazioni vengono concesse con il ruolo roles/parallelstore.admin. Puoi creare un ruolo personalizzato per concedere le autorizzazioni in modo indipendente.

Inoltre, il service account Parallelstore richiede la seguente autorizzazione:

  • roles/storage.admin nel bucket Cloud Storage.

Per concedere questa autorizzazione, esegui il seguente comando gcloud:

gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
  --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-parallelstore.iam.gserviceaccount.com \
  --role=roles/storage.admin

PROJECT_NUMBER non è un ID progetto:

  • Un ID progetto è una stringa univoca che può essere una combinazione di lettere, numeri e trattini. Devi specificare un ID progetto quando crei il progetto. Ad esempio, example-project-123.
  • Un numero di progetto è un identificatore univoco generato automaticamente per il progetto, costituito solo da numeri. Ad esempio, 1234567890.

Per ottenere il PROJECT_NUMBER per un determinato ID progetto, utilizza il comando gcloud projects describe:

gcloud projects describe PROJECT_ID --format="value(projectNumber)"

Importare i dati in Parallelstore

Puoi importare i dati da un bucket Cloud Storage. Il bucket può trovarsi nello stesso progetto o in un progetto diverso. Il bucket può trovarsi in una zona o regione diversa dall'istanza Parallelstore, ma i trasferimenti interregionali potrebbero essere più lenti rispetto ai trasferimenti intraregionali.

gcloud

gcloud beta parallelstore instances import-data INSTANCE_ID \
  --location=LOCATION \
  --source-gcs-bucket-uri=gs://BUCKET_NAME \
  --destination-parallelstore-path=PS_PATH

Dove:

  • INSTANCE_ID è il nome dell'istanza Parallelstore.
  • --location deve essere una zona supportata.
  • --source-gcs-bucket-uri specifica l'URI di un bucket Cloud Storage o un percorso all'interno di un bucket utilizzando il formato gs://<bucket_name>/<optional_path_inside_bucket>.
  • --destination-parallelstore-path specifica il percorso della directory principale al file system Parallelstore. Deve iniziare con /. Il valore predefinito è /.

I seguenti parametri sono facoltativi:

  • --request-id ti consente di assegnare un ID univoco a questa richiesta. Se ritenti di effettuare questa richiesta utilizzando lo stesso ID richiesta, il server la ignorerà se è già stata completata. Deve essere un UUID valido che non sia costituito da zeri. Ad esempio: --request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d
  • --async restituisce una risposta immediatamente, senza attendere il completamento dell'operazione.

REST

POST https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:importData
Authorization: Bearer [YOUR_ACCESS_TOKEN]

{
  "source_gcs_bucket" : {
    "uri" : "gs://BUCKET_NAME/"
  },
  "destination_parallelstore" : {
    "path" : "/PATH"
  }
}

Dove:

  • PROJECT_ID è il tuo Google Cloud ID progetto.
  • LOCATION deve essere la zona supportata in cui risiede la istanza.
  • INSTANCE_ID è il nome dell'istanza Parallelstore.
  • source-gcs-bucket contiene una chiave uri il cui valore specifica l'URI di un bucket Cloud Storage o un percorso all'interno di un bucket utilizzando il formato gs://<bucket_name>/<optional_path_inside_bucket>.
  • destination-parallelstore contiene una chiave path il cui valore specifica il percorso della directory principale del file system Parallelstore. Deve iniziare con /. Il valore predefinito è /.

Per utilizzare il tuo account di servizio anziché l'agente di servizio gestito da Google, la richiesta supporta un campo serviceAccount nell'oggetto JSON:

"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"

Un esempio di comando cURL è il seguente:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:importData \
  -d '{"source_gcs_bucket": {"uri":"gs://BUCKET_NAME/"}, "destination_parallelstore": {"path":"/"}}'

Esporta i dati

Puoi esportare i dati dall'istanza Parallelstore in un bucket Cloud Storage nello stesso progetto o in un altro. Il bucket può trovarsi in una zona o regione diversa dall'istanza Parallelstore, ma i trasferimenti interregionali potrebbero essere più lenti di quelli intraregionali.

gcloud

gcloud beta parallelstore instances export-data \
  INSTANCE_ID \
  --location=LOCATION \
  --destination-gcs-bucket-uri="gs://BUCKET_NAME" \
  --source-parallelstore-path="/"

Dove:

  • INSTANCE_ID è il nome dell'istanza Parallelstore.
  • --location deve essere una zona supportata.
  • --destination-gcs-bucket-uri specifica l'URI di un bucket Cloud Storage o un percorso all'interno di un bucket utilizzando il formato gs://<bucket_name>/<optional_path_inside_bucket>.
  • --source-parallelstore-path specifica il percorso della directory principale al file system Parallelstore. Deve iniziare con /. Il valore predefinito è /.

I seguenti parametri sono facoltativi:

  • --request-id ti consente di assegnare un ID univoco a questa richiesta. Se ritenti di effettuare questa richiesta utilizzando lo stesso ID richiesta, il server la ignorerà se è già stata completata. Deve essere un UUID valido che non sia costituito da zeri. Ad esempio: --request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d
  • --async restituisce una risposta immediatamente, senza attendere il completamento dell'operazione.

REST

POST https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:exportData
Authorization: Bearer [YOUR_ACCESS_TOKEN]

{
  "source_parallelstore" : {
    "path" : "/"
  },
  "destination_gcs_bucket" : {
    "uri" : "gs://BUCKET_NAME/"
  }
}

Dove:

  • PROJECT_ID è il tuo Google Cloud ID progetto.
  • INSTANCE_ID è il nome dell'istanza Parallelstore.
  • LOCATION deve essere la zona supportata in cui risiede la istanza Parallelstore.
  • --source-parallelstore contiene una chiave path il cui valore specifica il percorso della directory principale del file system Parallelstore. Deve iniziare con /. Il valore predefinito è /.
  • --destination-gcs-bucket contiene una chiave uri il cui valore specifica l'URI di un bucket Cloud Storage o un percorso all'interno di un bucket utilizzando il formato gs://<bucket_name>/<optional_path_inside_bucket>.

Per utilizzare il tuo account di servizio anziché l'agente di servizio gestito da Google, la richiesta supporta un campo serviceAccount nell'oggetto JSON:

"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"

Un esempio di comando cURL è il seguente:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json"
  https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:exportData \
  -d '{"source_parallelstore": {"path":"/"}, "destination_gcs_bucket": {"uri":"gs://BUCKET_NAME/"}}'

Recupera operazione

Per visualizzare lo stato di un'operazione di importazione o esportazione, devi disporre dell'ID operazione. Questo ID viene restituito dal servizio quando effettui una richiesta di importazione o esportazione e utilizza il seguente formato:

  • operation-1234567890123-6127783ad26ea-88913969-02748053

gcloud

gcloud beta parallelstore operations describe OPERATION_ID \
  --location=LOCATION

REST

GET https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Authorization: Bearer [YOUR_ACCESS_TOKEN]

Un esempio di comando cURL è il seguente:

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

Annulla operazione

Per annullare un'operazione di importazione o esportazione, devi disporre dell'ID operazione. Questo ID viene restituito dal servizio quando effettui una richiesta di importazione o esportazione e utilizza il seguente formato:

  • operation-1234567890123-6127783ad26ea-88913969-02748053

gcloud

gcloud beta parallelstore operations cancel OPERATION_ID \
  --location=LOCATION

REST

POST https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel
Authorization: Bearer [YOUR_ACCESS_TOKEN]

Un esempio di comando cURL è il seguente:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel