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.exportDataper il trasferimento da Parallelstore a Cloud Storage.parallelstore.instances.importDataper 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.adminsul 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.
--locationdeve essere una zona supportata.--source-gcs-bucket-urispecifica l'URI di un bucket Cloud Storage o un percorso all'interno di un bucket utilizzando il formatogs://<bucket_name>/<optional_path_inside_bucket>.--destination-parallelstore-pathspecifica il percorso della directory root del file system Parallelstore. Deve iniziare con/. Il valore predefinito è/.
I seguenti parametri sono facoltativi:
--request-idti 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.--asyncrestituisce 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-bucketcontiene una chiaveuriil cui valore specifica l'URI di un bucket Cloud Storage o un percorso all'interno di un bucket, utilizzando il formatogs://<bucket_name>/<optional_path_inside_bucket>.destination-parallelstorecontiene una chiavepathil 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.
--locationdeve essere una zona supportata.--destination-gcs-bucket-urispecifica l'URI di un bucket Cloud Storage o un percorso all'interno di un bucket utilizzando il formatogs://<bucket_name>/<optional_path_inside_bucket>.--source-parallelstore-pathspecifica il percorso della directory root del file system Parallelstore. Deve iniziare con/. Il valore predefinito è/.
I seguenti parametri sono facoltativi:
--request-idti 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.--asyncrestituisce 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-parallelstorecontiene una chiavepathil cui valore specifica il percorso della directory principale del file system Parallelstore. Deve iniziare con/. Il valore predefinito è/.--destination-gcs-bucketcontiene una chiaveuriil cui valore specifica l'URI di un bucket Cloud Storage o un percorso all'interno di un bucket, utilizzando il formatogs://<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