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 formatogs://<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 chiaveuri
il 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-parallelstore
contiene una chiavepath
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 formatogs://<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 chiavepath
il cui valore specifica il percorso della directory principale del file system Parallelstore. Deve iniziare con/
. Il valore predefinito è/
.--destination-gcs-bucket
contiene una chiaveuri
il 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 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