Esta plantilla está obsoleta y se eliminará en el tercer trimestre del 2023. Migra a la plantilla Eliminación masiva de Firestore .
La plantilla de eliminación masiva de Datastore es una canalización que lee entidades de Datastore con una consulta GQL determinada y, a continuación, elimina todas las entidades coincidentes del proyecto de destino seleccionado. La canalización puede transferir de forma opcional las entidades de Datastore codificadas en JSON a tu función definida por el usuario de JavaScript, que puedes usar para filtrar entidades devolviendo valores nulos.
Requisitos del flujo de procesamiento
- Debes configurar Datastore en el proyecto antes de ejecutar la plantilla.
- Si se leen y eliminan datos de instancias de Datastore independientes, la cuenta de servicio de trabajador de Dataflow debe tener permiso para leer de una instancia y eliminar datos de la otra.
- La opción Escrituras en la base de datos debe estar habilitada en la instancia de Datastore.
Parámetros de plantilla
Parámetro | Descripción |
---|---|
datastoreReadGqlQuery |
Consulta de GQL que especifica qué entidades se deben eliminar. Usar una consulta para obtener solo las claves puede mejorar el rendimiento. Por ejemplo: "SELECT __key__ FROM MyKind". |
datastoreReadProjectId |
ID del proyecto de la instancia de Datastore desde la que quieres leer las entidades (mediante tu consulta de GQL) que se usan para la coincidencia. |
datastoreDeleteProjectId |
ID del proyecto de la instancia de Datastore desde la que se van a eliminar las entidades coincidentes. Puede ser la misma que datastoreReadProjectId si quieres leer y eliminar datos en la misma instancia de Datastore. |
datastoreReadNamespace |
(Opcional) Espacio de nombres de las entidades solicitadas. Asigna el valor "" al espacio de nombres predeterminado. |
datastoreHintNumWorkers |
(Opcional) Sugerencia para el número esperado de trabajadores en el paso de limitación de la aceleración de Datastore. El valor predeterminado es 500 (ADMITE VALORES NULL). |
javascriptTextTransformGcsPath |
(Opcional)
URI de Cloud Storage del archivo .js que define la función de JavaScript definida por el usuario (UDF) que quieres usar. Por ejemplo, gs://my-bucket/my-udfs/my_file.js .
|
javascriptTextTransformFunctionName |
(Opcional)
Nombre de la función definida por el usuario (UDF) de JavaScript que quieras usar.
Por ejemplo, si el código de tu función de JavaScript es myTransform(inJson) { /*...do stuff...*/ } , el nombre de la función es myTransform . Para ver ejemplos de UDFs de JavaScript, consulta Ejemplos de UDFs.
Si esta función devuelve el valor "undefined" o "null" para
una entidad de Datastore determinada, esa entidad no se elimina. |
Ejecutar la plantilla
Consola
- Ve a la página Crear tarea a partir de plantilla de Dataflow. Ir a Crear tarea a partir de plantilla
- En el campo Nombre de la tarea, introduce un nombre único.
- Opcional: En Endpoint regional, seleccione un valor en el menú desplegable. La región predeterminada es
us-central1
.Para ver una lista de las regiones en las que puedes ejecutar una tarea de Dataflow, consulta Ubicaciones de Dataflow.
- En el menú desplegable Plantilla de flujo de datos, seleccione the Bulk Delete Entities in Datastore template.
- En los campos de parámetros proporcionados, introduzca los valores de los parámetros.
- Haz clic en Ejecutar trabajo.
gcloud
En tu shell o terminal, ejecuta la plantilla:
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
Haz los cambios siguientes:
JOB_NAME
: un nombre de trabajo único que elijasREGION_NAME
: la región en la que quieras desplegar tu trabajo de Dataflow. Por ejemplo,us-central1
VERSION
: la versión de la plantilla que quieres usarPuedes usar los siguientes valores:
latest
para usar la última versión de la plantilla, que está disponible en la carpeta principal sin fecha del contenedor: gs://dataflow-templates-REGION_NAME/latest/- el nombre de la versión, como
2023-09-12-00_RC00
, para usar una versión específica de la plantilla, que se encuentra anidada en la carpeta principal correspondiente con la fecha en el bucket: gs://dataflow-templates-REGION_NAME/
GQL_QUERY
: la consulta que usarás para buscar las entidades que quieres eliminarDATASTORE_READ_AND_DELETE_PROJECT_ID
: el ID de proyecto de tu instancia de Datastore. En este ejemplo se leen y se eliminan datos de la misma instancia de Datastore.
API
Para ejecutar la plantilla mediante la API REST, envía una solicitud HTTP POST. Para obtener más información sobre la API y sus ámbitos de autorización, consulta 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" } } }
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto Google Cloud en el que quieres ejecutar la tarea de DataflowJOB_NAME
: un nombre de trabajo único que elijasLOCATION
: la región en la que quieras desplegar tu trabajo de Dataflow. Por ejemplo,us-central1
VERSION
: la versión de la plantilla que quieres usarPuedes usar los siguientes valores:
latest
para usar la última versión de la plantilla, que está disponible en la carpeta principal sin fecha del contenedor: gs://dataflow-templates-REGION_NAME/latest/- el nombre de la versión, como
2023-09-12-00_RC00
, para usar una versión específica de la plantilla, que se encuentra anidada en la carpeta principal correspondiente con la fecha en el bucket: gs://dataflow-templates-REGION_NAME/
GQL_QUERY
: la consulta que usarás para buscar las entidades que quieres eliminarDATASTORE_READ_AND_DELETE_PROJECT_ID
: el ID de proyecto de tu instancia de Datastore. En este ejemplo se leen y se eliminan datos de la misma instancia de Datastore.
Siguientes pasos
- Consulta información sobre las plantillas de Dataflow.
- Consulta la lista de plantillas proporcionadas por Google.