O Parallelstore pode importar dados do Cloud Storage e exportar dados para o mesmo. As transferências de dados permitem-lhe carregar rapidamente dados para a sua instância do Parallelstore e usar o Cloud Storage como uma camada de apoio duradoura para a sua instância do Parallelstore.
As importações e exportações de dados são incrementais. Copiam apenas os ficheiros que ainda não existem no destino ou que foram alterados desde que foram transferidos.
Para ver as velocidades de transferência esperadas, consulte a secção Desempenho.
Autorizações necessárias
O utilizador ou a conta de serviço usada para iniciar a transferência requer as seguintes autorizações:
parallelstore.instances.exportData
para transferir do Parallelstore para o armazenamento na nuvem.parallelstore.instances.importData
para transferir para o Cloud Storage.
Ambas as autorizações são concedidas com a função roles/parallelstore.admin
. Pode criar uma função personalizada para conceder autorizações de forma independente.
Além disso, a conta de serviço Parallelstore requer a seguinte autorização:
roles/storage.admin
no contentor do Cloud Storage.
Para conceder esta autorização, execute o seguinte comando gcloud
:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-parallelstore. \
--role=roles/storage.admin
O seu PROJECT_NUMBER não é igual a um ID do projeto:
- Um ID do projeto é uma string única que pode ser uma combinação de letras,
números e hífens. Especifica um ID do projeto quando cria o seu projeto. Por exemplo,
example-project-123
. - Um número do projeto é um identificador exclusivo gerado automaticamente para o seu projeto, que consiste apenas em números. Por exemplo,
1234567890
.
Para obter o PROJECT_NUMBER para um determinado ID do projeto, use o comando
gcloud projects describe
:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
Importe dados para o Parallelstore
Pode importar dados de um contentor do Cloud Storage. O contentor pode estar no mesmo projeto ou num projeto diferente. O contentor pode estar numa zona ou região diferente da sua instância do Parallelstore, mas as transferências entre regiões podem ser mais lentas do que as transferências na mesma região.
gcloud
gcloud beta parallelstore instances import-data INSTANCE_ID \
--location=LOCATION \
--source-gcs-bucket-uri=gs://BUCKET_NAME \
--destination-parallelstore-path=PS_PATH
Onde:
- INSTANCE_ID é o nome da instância do Parallelstore.
--location
tem de ser uma zona suportada.--source-gcs-bucket-uri
especifica o URI de um contentor do Cloud Storage, ou um caminho num contentor, usando o formatogs://<bucket_name>/<optional_path_inside_bucket>
.--destination-parallelstore-path
especifica o caminho do diretório raiz para o sistema de ficheiros Parallelstore. Tem de começar com/
. A predefinição é/
.
Os parâmetros seguintes são opcionais:
--request-id
permite-lhe atribuir um ID exclusivo a este pedido. Se tentar novamente este pedido com o mesmo ID do pedido, o servidor ignora o pedido se já tiver sido concluído. Tem de ser um UUID válido que não seja composto apenas por zeros. Por exemplo:--request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d
--async
devolve uma resposta imediatamente, sem aguardar a conclusão da operação.
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"
}
}
Onde:
- PROJECT_ID é o ID do seu Google Cloud projeto.
- LOCATION tem de ser a zona suportada na qual a sua instância reside.
- INSTANCE_ID é o nome da instância do Parallelstore.
source-gcs-bucket
contém uma chaveuri
cujo valor especifica o URI para um contentor do Cloud Storage ou um caminho num contentor, usando o formatogs://<bucket_name>/<optional_path_inside_bucket>
.destination-parallelstore
contém uma chavepath
cujo valor especifica o caminho do diretório raiz para o sistema de ficheiros Parallelstore. Tem de começar com/
. A predefinição é/
.
Para usar a sua própria conta de serviço em vez do agente de serviço gerido pela Google, o pedido suporta um campo serviceAccount
no objeto JSON:
"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"
Um exemplo de comando cURL tem o seguinte aspeto:
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 dados
Pode exportar dados da sua instância do Parallelstore para um contentor do Cloud Storage no mesmo projeto ou num projeto diferente. O contentor pode estar numa zona ou numa região diferente da sua instância do Parallelstore, mas as transferências entre regiões podem ser mais lentas do que as transferências na mesma região.
gcloud
gcloud beta parallelstore instances export-data \
INSTANCE_ID \
--location=LOCATION \
--destination-gcs-bucket-uri="gs://BUCKET_NAME" \
--source-parallelstore-path="/"
Onde:
- INSTANCE_ID é o nome da instância do Parallelstore.
--location
tem de ser uma zona suportada.--destination-gcs-bucket-uri
especifica o URI de um contentor do Cloud Storage ou um caminho num contentor, usando o formatogs://<bucket_name>/<optional_path_inside_bucket>
.--source-parallelstore-path
especifica o caminho do diretório raiz para o sistema de ficheiros Parallelstore. Tem de começar com/
. A predefinição é/
.
Os parâmetros seguintes são opcionais:
--request-id
permite-lhe atribuir um ID exclusivo a este pedido. Se tentar novamente este pedido com o mesmo ID do pedido, o servidor ignora o pedido se já tiver sido concluído. Tem de ser um UUID válido que não seja composto apenas por zeros. Por exemplo:--request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d
--async
devolve uma resposta imediatamente, sem aguardar a conclusão da operação.
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/"
}
}
Onde:
- PROJECT_ID é o ID do seu Google Cloud projeto.
- INSTANCE_ID é o nome da instância do Parallelstore.
- LOCATION tem de ser a zona suportada na qual a sua instância do Parallelstore reside.
--source-parallelstore
contém uma chavepath
cujo valor especifica o caminho do diretório raiz para o sistema de ficheiros Parallelstore. Tem de começar com/
. A predefinição é/
.--destination-gcs-bucket
contém uma chaveuri
cujo valor especifica o URI para um contentor do Cloud Storage ou um caminho num contentor, usando o formatogs://<bucket_name>/<optional_path_inside_bucket>
.
Para usar a sua própria conta de serviço em vez do agente de serviço gerido pela Google, o pedido suporta um campo serviceAccount
no objeto JSON:
"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"
Um exemplo de comando cURL tem o seguinte aspeto:
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/"}}'
Obter operação
Para ver o estado de uma operação de importação ou exportação, precisa do ID da operação. Este ID é devolvido pelo serviço quando faz um pedido de importação ou exportação e usa o seguinte 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]
Um exemplo de comando cURL tem o seguinte aspeto:
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 operação
Para cancelar uma operação de importação ou exportação, precisa do ID da operação. Este ID é devolvido pelo serviço quando faz um pedido de importação ou exportação e usa o seguinte 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]
Um exemplo de comando cURL tem o seguinte aspeto:
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