Parallelstore puede importar datos desde Cloud Storage y exportar datos a él. Las transferencias de datos te permiten cargar datos rápidamente en tu instancia de Parallelstore y usar Cloud Storage como una capa de respaldo duradera para tu instancia de Parallelstore.
Las importaciones y exportaciones de datos son incrementales, ya que solo copian los archivos que aún no existen en el destino o que cambiaron desde que se transfirieron.
Para conocer las velocidades de transferencia esperadas, consulta Rendimiento.
Permisos necesarios
La cuenta de usuario o de servicio que se usa para iniciar la transferencia requiere los siguientes permisos:
parallelstore.instances.exportData
para transferir desde Parallelstore a Cloud Storage.parallelstore.instances.importData
para transferirlos a Cloud Storage.
Ambos permisos se otorgan con el rol roles/parallelstore.admin
. Puedes crear un rol personalizado para otorgar permisos de forma independiente.
Además, la cuenta de servicio de Parallelstore requiere el siguiente permiso:
roles/storage.admin
en el bucket de Cloud Storage.
Para otorgar este permiso, ejecuta el siguiente comando de 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
Tu PROJECT_NUMBER no es lo mismo que un ID de proyecto:
- Un ID de proyecto es una cadena única que puede ser una combinación de letras,
números y guiones. Especificas un ID de proyecto cuando lo creas. Por ejemplo,
example-project-123
- Un número de proyecto es un identificador único generado automáticamente para tu proyecto que solo consta de números. Por ejemplo,
1234567890
Para obtener el PROJECT_NUMBER de un ID de proyecto determinado, usa el comando
gcloud projects describe
:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
Importa datos a Parallelstore
Puedes importar datos desde un bucket de Cloud Storage. El bucket puede estar en el mismo proyecto o en uno diferente. El bucket puede estar en una zona o región diferente de la instancia de Parallelstore, pero las transferencias entre regiones pueden ser más lentas que las transferencias dentro de la región.
gcloud
gcloud beta parallelstore instances import-data INSTANCE_ID \
--location=LOCATION \
--source-gcs-bucket-uri=gs://BUCKET_NAME \
--destination-parallelstore-path=PS_PATH
Aquí:
- INSTANCE_ID es el nombre de tu instancia de Parallelstore.
--location
debe ser una zona compatible.--source-gcs-bucket-uri
especifica el URI a un bucket de Cloud Storage o una ruta dentro de un bucket con el formatogs://<bucket_name>/<optional_path_inside_bucket>
.--destination-parallelstore-path
especifica la ruta del directorio raíz al sistema de archivos de Parallelstore. Debe comenzar con/
. El valor predeterminado es/
.
Los parámetros que aparecen a continuación son opcionales:
--request-id
te permite asignar un ID único a esta solicitud. Si vuelves a intentar esta solicitud con el mismo ID de solicitud, el servidor la ignorará si ya se completó. Debe ser un UUID válido que no sea todo cero. Por ejemplo:--request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d
--async
muestra una respuesta de inmediato, sin necesidad de esperar a que se complete la operación.
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"
}
}
Aquí:
- PROJECT_ID es el Google Cloud ID de tu proyecto.
- LOCATION debe ser la zona compatible en la que reside tu instancia.
- INSTANCE_ID es el nombre de tu instancia de Parallelstore.
source-gcs-bucket
contiene una claveuri
cuyo valor especifica el URI a un bucket de Cloud Storage o una ruta dentro de un bucket con el formatogs://<bucket_name>/<optional_path_inside_bucket>
.destination-parallelstore
contiene una clavepath
cuyo valor especifica la ruta de acceso del directorio raíz al sistema de archivos de Parallelstore. Debe comenzar con/
. El valor predeterminado es/
.
Para usar tu propia cuenta de servicio en lugar del agente de servicio administrado por Google, la solicitud admite un campo serviceAccount
en el objeto JSON:
"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"
Un ejemplo de comando cURL se ve de la siguiente manera:
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":"/"}}'
Exportar datos
Puedes exportar datos de tu instancia de Parallelstore a un bucket de Cloud Storage en el mismo proyecto o en uno diferente. El bucket puede estar en una zona o región diferente de la instancia de Parallelstore, pero las transferencias entre regiones pueden ser más lentas que las transferencias dentro de la región.
gcloud
gcloud beta parallelstore instances export-data \
INSTANCE_ID \
--location=LOCATION \
--destination-gcs-bucket-uri="gs://BUCKET_NAME" \
--source-parallelstore-path="/"
Aquí:
- INSTANCE_ID es el nombre de tu instancia de Parallelstore.
--location
debe ser una zona compatible.--destination-gcs-bucket-uri
especifica el URI a un bucket de Cloud Storage o una ruta dentro de un bucket con el formatogs://<bucket_name>/<optional_path_inside_bucket>
.--source-parallelstore-path
especifica la ruta del directorio raíz al sistema de archivos de Parallelstore. Debe comenzar con/
. El valor predeterminado es/
.
Los parámetros que aparecen a continuación son opcionales:
--request-id
te permite asignar un ID único a esta solicitud. Si vuelves a intentar esta solicitud con el mismo ID de solicitud, el servidor la ignorará si ya se completó. Debe ser un UUID válido que no sea todo cero. Por ejemplo:--request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d
--async
muestra una respuesta de inmediato, sin necesidad de esperar a que se complete la operación.
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/"
}
}
Aquí:
- PROJECT_ID es el Google Cloud ID de tu proyecto.
- INSTANCE_ID es el nombre de tu instancia de Parallelstore.
- LOCATION debe ser la zona compatible en la que reside tu instancia de Parallelstore.
--source-parallelstore
contiene una clavepath
cuyo valor especifica la ruta de acceso del directorio raíz al sistema de archivos de Parallelstore. Debe comenzar con/
. El valor predeterminado es/
.--destination-gcs-bucket
contiene una claveuri
cuyo valor especifica el URI a un bucket de Cloud Storage o una ruta dentro de un bucket con el formatogs://<bucket_name>/<optional_path_inside_bucket>
.
Para usar tu propia cuenta de servicio en lugar del agente de servicio administrado por Google, la solicitud admite un campo serviceAccount
en el objeto JSON:
"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"
Un ejemplo de comando cURL se ve de la siguiente manera:
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/"}}'
Obtener operación
Para ver el estado de una operación de importación o exportación, necesitarás el ID de la operación. El servicio muestra este ID cuando realizas una solicitud de importación o exportación, y usa el siguiente 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 ejemplo de comando cURL se ve de la siguiente manera:
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
Cancelar operación
Para cancelar una operación de importación o exportación, necesitarás el ID de la operación. El servicio muestra este ID cuando realizas una solicitud de importación o exportación, y usa el siguiente 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 ejemplo de comando cURL se ve de la siguiente manera:
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