Parallelstore peut importer et exporter des données depuis Cloud Storage. Les transferts de données vous permettent de charger rapidement des données dans votre instance Parallelstore et d'utiliser Cloud Storage comme couche de support durable pour votre instance Parallelstore.
Les importations et exportations de données sont incrémentielles. Elles ne copient que les fichiers qui n'existent pas déjà à la destination ou qui ont changé depuis leur transfert.
Pour connaître les vitesses de transfert attendues, consultez la section Performances.
Autorisations requises
Le compte utilisateur ou de service utilisé pour lancer le transfert nécessite les autorisations suivantes:
parallelstore.instances.exportData
pour effectuer un transfert de Parallelstore vers Cloud Storage.parallelstore.instances.importData
pour le transférer vers Cloud Storage.
Ces deux autorisations sont accordées avec le rôle roles/parallelstore.admin
. Vous pouvez créer un rôle personnalisé pour accorder des autorisations indépendamment.
En outre, le compte de service Parallelstore nécessite l'autorisation suivante:
roles/storage.admin
sur le bucket Cloud Storage.
Pour accorder cette autorisation, exécutez la commande gcloud
suivante:
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
Votre PROJECT_NUMBER n'est pas le même qu'un ID de projet:
- Un ID de projet est une chaîne unique pouvant être une combinaison de lettres, de chiffres et de traits d'union. Vous spécifiez un ID de projet lorsque vous créez votre projet. Exemple :
example-project-123
- Un numéro de projet est un identifiant unique généré automatiquement pour votre projet, qui ne comporte que des chiffres. Exemple :
1234567890
Pour obtenir le PROJECT_NUMBER d'un ID de projet donné, utilisez la commande gcloud projects describe
:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
Importer des données dans Parallelstore
Vous pouvez importer des données à partir d'un bucket Cloud Storage. Le bucket peut appartenir au même projet ou à un autre. Le bucket peut se trouver dans une zone ou une région différente de celle de votre instance Parallelstore, mais les transferts interrégionaux peuvent être plus lents que les transferts intrarégionaux.
gcloud
gcloud beta parallelstore instances import-data INSTANCE_ID \
--location=LOCATION \
--source-gcs-bucket-uri=gs://BUCKET_NAME \
--destination-parallelstore-path=PS_PATH
Où :
- INSTANCE_ID est le nom de votre instance Parallelstore.
--location
doit être une zone compatible.--source-gcs-bucket-uri
spécifie l'URI d'un bucket Cloud Storage ou un chemin d'accès dans un bucket, au formatgs://<bucket_name>/<optional_path_inside_bucket>
.--destination-parallelstore-path
spécifie le chemin d'accès au répertoire racine du système de fichiers Parallelstore. Doit commencer par/
. La valeur par défaut est/
.
Les paramètres ci-dessous sont facultatifs :
--request-id
vous permet d'attribuer un ID unique à cette requête. Si vous réessayez cette requête avec le même ID de requête, le serveur l'ignorera si elle est déjà terminée. Doit être un UUID valide qui ne contient pas que des zéros. Par exemple :--request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d
.--async
renvoie immédiatement une réponse, sans attendre la fin de l'opération.
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"
}
}
Où :
- PROJECT_ID est l'ID de votre Google Cloud projet.
- LOCATION doit être la zone compatible dans laquelle se trouve votre instance.
- INSTANCE_ID est le nom de votre instance Parallelstore.
source-gcs-bucket
contient une cléuri
dont la valeur spécifie l'URI d'un bucket Cloud Storage ou un chemin d'accès dans un bucket, au formatgs://<bucket_name>/<optional_path_inside_bucket>
.destination-parallelstore
contient une clépath
dont la valeur spécifie le chemin d'accès au répertoire racine du système de fichiers Parallelstore. Doit commencer par/
. La valeur par défaut est/
.
Pour utiliser votre propre compte de service au lieu de l'agent de service géré par Google, la requête accepte un champ serviceAccount
dans l'objet JSON:
"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"
Voici un exemple de commande cURL:
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":"/"}}'
Exporter des données
Vous pouvez exporter des données depuis votre instance Parallelstore vers un bucket Cloud Storage dans le même projet ou dans un autre. Le bucket peut se trouver dans une zone ou une région différente de celle de votre instance Parallelstore, mais les transferts interrégionaux peuvent être plus lents que les transferts intrarégionaux.
gcloud
gcloud beta parallelstore instances export-data \
INSTANCE_ID \
--location=LOCATION \
--destination-gcs-bucket-uri="gs://BUCKET_NAME" \
--source-parallelstore-path="/"
Où :
- INSTANCE_ID est le nom de votre instance Parallelstore.
--location
doit être une zone compatible.--destination-gcs-bucket-uri
spécifie l'URI d'un bucket Cloud Storage ou un chemin d'accès dans un bucket à l'aide du formatgs://<bucket_name>/<optional_path_inside_bucket>
.--source-parallelstore-path
spécifie le chemin d'accès au répertoire racine du système de fichiers Parallelstore. Doit commencer par/
. La valeur par défaut est/
.
Les paramètres ci-dessous sont facultatifs :
--request-id
vous permet d'attribuer un ID unique à cette requête. Si vous réessayez cette requête avec le même ID de requête, le serveur l'ignorera si elle est déjà terminée. Doit être un UUID valide qui ne contient pas que des zéros. Par exemple :--request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d
.--async
renvoie immédiatement une réponse, sans attendre la fin de l'opération.
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/"
}
}
Où :
- PROJECT_ID est l'ID de votre Google Cloud projet.
- INSTANCE_ID est le nom de votre instance Parallelstore.
- LOCATION doit être la zone compatible dans laquelle se trouve votre instance Parallelstore.
--source-parallelstore
contient une clépath
dont la valeur spécifie le chemin d'accès au répertoire racine du système de fichiers Parallelstore. Doit commencer par/
. La valeur par défaut est/
.--destination-gcs-bucket
contient une cléuri
dont la valeur spécifie l'URI d'un bucket Cloud Storage ou un chemin d'accès dans un bucket, au formatgs://<bucket_name>/<optional_path_inside_bucket>
.
Pour utiliser votre propre compte de service au lieu de l'agent de service géré par Google, la requête accepte un champ serviceAccount
dans l'objet JSON:
"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"
Voici un exemple de commande cURL:
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/"}}'
Opération Get
Pour afficher l'état d'une opération d'importation ou d'exportation, vous avez besoin de l'ID de l'opération. Cet ID est renvoyé par le service lorsque vous effectuez une demande d'importation ou d'exportation. Il utilise le format suivant:
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]
Voici un exemple de commande cURL:
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
Annuler l'opération
Pour annuler une opération d'importation ou d'exportation, vous avez besoin de l'ID de l'opération. Cet ID est renvoyé par le service lorsque vous effectuez une demande d'importation ou d'exportation. Il utilise le format suivant:
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]
Voici un exemple de commande cURL:
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