Parallelstore puede importar datos de Cloud Storage y exportarlos a este servicio. Las transferencias de datos te permiten cargar datos rápidamente en tu instancia de Parallelstore y usar Cloud Storage como capa de respaldo duradera para tu instancia de Parallelstore.
Las importaciones y exportaciones de datos son incrementales, es decir, solo copian los archivos que no existan en el destino o que hayan cambiado desde que se transfirieron.
Para consultar las velocidades de transferencia previstas, consulte Rendimiento.
Permisos obligatorios
El usuario o la cuenta de servicio que se utilice para iniciar la transferencia debe tener los siguientes permisos:
parallelstore.instances.exportData
para transferir datos de Parallelstore a Cloud Storage.parallelstore.instances.importData
para transferir los datos a Cloud Storage.
Ambos permisos se conceden con el rol roles/parallelstore.admin
. Puedes crear un rol personalizado para conceder permisos de forma independiente.
Además, la cuenta de servicio de Parallelstore requiere el siguiente permiso:
roles/storage.admin
en el segmento de Cloud Storage.
Para conceder este permiso, ejecuta el siguiente 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
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. Cuando creas un proyecto, debes especificar un ID. Por ejemplo,
example-project-123
. - El 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 concreto, usa el comando gcloud projects describe
:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
Importar datos a Parallelstore
Puedes importar datos de un segmento de Cloud Storage. El contenedor puede estar en el mismo proyecto o en otro. El contenedor puede estar en una zona o región diferente a la de tu instancia de Parallelstore, pero las transferencias entre regiones pueden ser más lentas que las transferencias dentro de la misma 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
Donde:
- INSTANCE_ID es el nombre de tu instancia de Parallelstore.
--location
debe ser una zona admitida.--source-gcs-bucket-uri
especifica el URI de un segmento de Cloud Storage o una ruta de acceso dentro de un segmento con el formatogs://<bucket_name>/<optional_path_inside_bucket>
.--destination-parallelstore-path
especifica la ruta del directorio raíz del sistema de archivos Parallelstore. Debe empezar por/
. El valor predeterminado es/
.
Los siguientes parámetros son opcionales:
--request-id
te permite asignar un ID único a esta solicitud. Si vuelves a intentar enviar esta solicitud con el mismo ID, el servidor la ignorará si ya se ha completado. Debe ser un UUID válido que no esté formado por ceros. Por ejemplo:--request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d
--async
devuelve una respuesta inmediatamente, sin 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"
}
}
Donde:
- PROJECT_ID es el ID de tu proyecto Google Cloud .
- LOCATION debe ser la zona admitida 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 de un segmento de Cloud Storage o una ruta de acceso dentro de un segmento con el formatogs://<bucket_name>/<optional_path_inside_bucket>
.destination-parallelstore
contiene una clavepath
cuyo valor especifica la ruta del directorio raíz al sistema de archivos Parallelstore. Debe empezar por/
. El valor predeterminado es/
.
Para usar tu propia cuenta de servicio en lugar del agente de servicio gestionado por Google, la solicitud admite un campo serviceAccount
en el objeto JSON:
"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"
Un comando cURL de ejemplo tiene el siguiente aspecto:
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
Puede exportar datos de su instancia de Parallelstore a un segmento de Cloud Storage del mismo proyecto o de otro. El segmento puede estar en una zona o región distinta de tu instancia de Parallelstore, pero las transferencias entre regiones pueden ser más lentas que las transferencias dentro de la misma región.
gcloud
gcloud beta parallelstore instances export-data \
INSTANCE_ID \
--location=LOCATION \
--destination-gcs-bucket-uri="gs://BUCKET_NAME" \
--source-parallelstore-path="/"
Donde:
- INSTANCE_ID es el nombre de tu instancia de Parallelstore.
--location
debe ser una zona admitida.--destination-gcs-bucket-uri
especifica el URI de un segmento de Cloud Storage o una ruta de acceso dentro de un segmento con el formatogs://<bucket_name>/<optional_path_inside_bucket>
.--source-parallelstore-path
especifica la ruta del directorio raíz del sistema de archivos Parallelstore. Debe empezar por/
. El valor predeterminado es/
.
Los siguientes parámetros son opcionales:
--request-id
te permite asignar un ID único a esta solicitud. Si vuelves a intentar enviar esta solicitud con el mismo ID, el servidor la ignorará si ya se ha completado. Debe ser un UUID válido que no esté formado por ceros. Por ejemplo:--request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d
--async
devuelve una respuesta inmediatamente, sin 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/"
}
}
Donde:
- PROJECT_ID es el ID de tu proyecto Google Cloud .
- INSTANCE_ID es el nombre de tu instancia de Parallelstore.
- LOCATION debe ser la zona admitida en la que se encuentra tu instancia de ParallelStore.
--source-parallelstore
contiene una clavepath
cuyo valor especifica la ruta del directorio raíz al sistema de archivos Parallelstore. Debe empezar por/
. El valor predeterminado es/
.--destination-gcs-bucket
contiene una claveuri
cuyo valor especifica el URI de un segmento de Cloud Storage o una ruta de acceso dentro de un segmento con el formatogs://<bucket_name>/<optional_path_inside_bucket>
.
Para usar tu propia cuenta de servicio en lugar del agente de servicio gestionado por Google, la solicitud admite un campo serviceAccount
en el objeto JSON:
"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"
Un comando cURL de ejemplo tiene el siguiente aspecto:
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, necesitas el ID de la operación. El servicio devuelve este ID cuando haces 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 comando cURL de ejemplo tiene el siguiente aspecto:
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 devuelve este ID cuando haces 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 comando cURL de ejemplo tiene el siguiente aspecto:
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