Trasferisci dati verso o da Cloud Storage

Parallelstore può importare dati da Cloud Storage ed esportarli 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 backup 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 dopo il trasferimento.

Per le velocità di trasferimento previste, vedi Rendimento.

Autorizzazioni obbligatorie

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

  • parallelstore.instances.exportData per il trasferimento da Parallelstore a Cloud Storage.
  • parallelstore.instances.importData per il trasferimento a 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 account di servizio Parallelstore richiede la seguente autorizzazione:

  • roles/storage.admin sul 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

Il tuo PROJECT_NUMBER non è uguale a un ID progetto:

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

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

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

Importare 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 dalla tua istanza Parallelstore, ma i trasferimenti tra regioni potrebbero essere più lenti rispetto ai trasferimenti all'interno della stessa regione.

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 root del 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 riprovi a inviare questa richiesta utilizzando lo stesso ID richiesta, il server ignorerà la richiesta se è già stata completata. Deve essere un UUID valido che non sia composto solo da zeri. Ad esempio: --request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d.
  • --async restituisce immediatamente una risposta, 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 è l'ID progetto Google Cloud .
  • LOCATION deve essere la zona supportata in cui si trova l'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 comando cURL di esempio ha il seguente aspetto:

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 progetto diverso. Il bucket può trovarsi in una zona o una regione diversa dall'istanza Parallelstore, ma i trasferimenti tra regioni potrebbero essere più lenti rispetto ai trasferimenti all'interno della stessa regione.

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 root del 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 riprovi a inviare questa richiesta utilizzando lo stesso ID richiesta, il server ignorerà la richiesta se è già stata completata. Deve essere un UUID valido che non sia composto solo da zeri. Ad esempio: --request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d.
  • --async restituisce immediatamente una risposta, 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 è l'ID progetto Google Cloud .
  • INSTANCE_ID è il nome dell'istanza Parallelstore.
  • LOCATION deve essere la zona supportata in cui si trova l'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 comando cURL di esempio ha il seguente aspetto:

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 comando cURL di esempio ha il seguente aspetto:

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 comando cURL di esempio ha il seguente aspetto:

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