Este modelo está obsoleto e será removido no terceiro trimestre de 2023. Migre para o modelo Exclusão em massa do Firestore.
O modelo "Exclusão em massa do Datastore" é um pipeline que lê as entidades do Datastore com uma consulta GQL e exclui todas as entidades correspondentes no projeto de destino selecionado. Como opção, o pipeline pode passar as entidades do Datastore codificadas por JSON para sua UDF do JavaScript. Use-a para filtrar as entidades retornando valores nulos.
Requisitos de pipeline
- O Datastore precisa ser configurado no projeto antes de executar o modelo.
- Em caso de leitura e exclusão de instâncias do Datastore separadas, a Conta de serviço do worker do Dataflow precisa ter permissão para ler de uma instância e excluir da outra.
- As gravações de banco de dados precisam estar ativadas na instância do Datastore.
Parâmetros do modelo
| Parâmetro | Descrição |
|---|---|
datastoreReadGqlQuery |
Consulta GQL que especifica quais entidades devem corresponder para exclusão. Usar uma consulta apenas de chaves pode melhorar o desempenho. Por exemplo: "SELECT __key__ FROM MyKind". |
datastoreReadProjectId |
O ID do projeto da instância do Datastore a partir da qual você quer ler entidades (usando sua consulta GQL) que são usadas para correspondência. |
datastoreDeleteProjectId |
O ID do projeto da instância do Datastore a partir da qual as entidades correspondentes serão excluídas. Isso pode ser o mesmo que datastoreReadProjectId se você quiser ler e excluir na mesma instância do Datastore. |
datastoreReadNamespace |
Opcional: namespace das entidades solicitadas. Defina como "" para o namespace padrão. |
datastoreHintNumWorkers |
(Opcional) Dica para o número esperado de workers na etapa de limitação de aumento do Datastore. O padrão é 500. |
javascriptTextTransformGcsPath |
Opcional:
O URI do Cloud Storage do arquivo .js que define a função definida pelo usuário (UDF) do JavaScript que você quer usar. Por exemplo, gs://my-bucket/my-udfs/my_file.js.
|
javascriptTextTransformFunctionName |
(Opcional)
O nome da função definida pelo usuário (UDF) do JavaScript que você quer usar.
Por exemplo, se o código de função do JavaScript for
myTransform(inJson) { /*...do stuff...*/ }, o nome da função será
myTransform. Para amostras de UDFs do JavaScript, consulte os
exemplos de UDF.
Se essa função retornar um valor indefinido ou nulo para
uma determinada entidade do Datastore, a entidade não será excluída. |
Executar o modelo
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. A região padrão é
us-central1.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the Bulk Delete Entities in Datastore template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/Datastore_to_Datastore_Delete \ --region REGION_NAME \ --parameters \ datastoreReadGqlQuery="GQL_QUERY",\ datastoreReadProjectId=DATASTORE_READ_AND_DELETE_PROJECT_ID,\ datastoreDeleteProjectId=DATASTORE_READ_AND_DELETE_PROJECT_ID
Substitua:
JOB_NAME: um nome de job de sua escolhaREGION_NAME: a região onde você quer implantar o job do Dataflow, por exemplo,us-central1VERSION: a versão do modelo que você quer usarUse estes valores:
latestpara usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates-REGION_NAME/latest/- o nome da versão, como
2023-09-12-00_RC00, para usar uma versão específica do modelo, que pode ser encontrada aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates-REGION_NAME/
GQL_QUERY: a consulta que você usará para corresponder entidades para exclusãoDATASTORE_READ_AND_DELETE_PROJECT_ID: o ID do projeto da instância do Datastore. Este exemplo lê e exclui da mesma instância do Datastore.
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates-LOCATION/VERSION/Datastore_to_Datastore_Delete { "jobName": "JOB_NAME", "parameters": { "datastoreReadGqlQuery": "GQL_QUERY", "datastoreReadProjectId": "DATASTORE_READ_AND_DELETE_PROJECT_ID", "datastoreDeleteProjectId": "DATASTORE_READ_AND_DELETE_PROJECT_ID" }, "environment": { "zone": "us-central1-f" } } }
Substitua:
PROJECT_ID: o ID do projeto Google Cloud em que você quer executar o job do DataflowJOB_NAME: um nome de job de sua escolhaLOCATION: a região onde você quer implantar o job do Dataflow, por exemplo,us-central1VERSION: a versão do modelo que você quer usarUse estes valores:
latestpara usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates-REGION_NAME/latest/- o nome da versão, como
2023-09-12-00_RC00, para usar uma versão específica do modelo, que pode ser encontrada aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates-REGION_NAME/
GQL_QUERY: a consulta que você usará para corresponder entidades para exclusãoDATASTORE_READ_AND_DELETE_PROJECT_ID: o ID do projeto da instância do Datastore. Este exemplo lê e exclui da mesma instância do Datastore.
A seguir
- Saiba mais sobre os modelos do Dataflow.
- Confira a lista de modelos fornecidos pelo Google.