Vorlage „Datstore-Bulk-Löschvorgang“ [Verworfen]

Diese Vorlage wurde verworfen und wird in Q3 2023 entfernt. Migrieren Sie zur Vorlage Bulk-Löschen in Firestore.

Die Vorlage "Bulk-Löschen in Datastore" ist eine Pipeline, die Entitäten aus Datastore mit einer gegebenen GQL-Abfrage einliest und anschließend alle übereinstimmenden Entitäten im ausgewählten Zielprojekt löscht. Die Pipeline kann optional die JSON-codierten Datastore-Entitäten an Ihre JavaScript-UDF übergeben, mit der Sie Entitäten durch Zurückgeben von Nullwerten herausfiltern können.

Pipelineanforderungen

  • Datastore muss vor dem Ausführen der Vorlage im Projekt eingerichtet werden.
  • Wenn das Dataflow-Worker-Dienstkonto aus separaten Datastore-Instanzen gelesen und gelöscht wird, muss es berechtigt sein, aus einer Instanz zu lesen und aus der anderen Instanz zu löschen.
  • Datenbankschreibvorgänge müssen in der Datastore-Instanz aktiviert sein.

Vorlagenparameter

Parameter Beschreibung
datastoreReadGqlQuery GQL-Abfrage, die festlegt, welche Entitäten gelöscht werden sollen. Die Verwendung einer ausschließlich schlüsselbasierten Abfrage kann die Leistung verbessern. Beispiel: "SELECT __key__ FROM MyKind".
datastoreReadProjectId Projekt-ID der Datastore-Instanz, aus der (mithilfe Ihrer GQL-Abfrage) Entitäten gelesen werden sollen, die für den Abgleich verwendet werden.
datastoreDeleteProjectId Projekt-ID der Datastore-Instanz, aus der übereinstimmende Entitäten gelöscht werden sollen. Dies kann mit datastoreReadProjectId identisch sein, wenn Sie innerhalb derselben Datastore-Instanz lesen und löschen möchten.
datastoreReadNamespace (Optional) Namespace der angeforderten Entitäten. Als "" für den Standard-Namespace festlegen.
datastoreHintNumWorkers (Optional) Hinweis für die erwartete Anzahl von Workern im Schritt zur Drosselung der Erhöhung in Datastore. Standardwert ist 500.
javascriptTextTransformGcsPath Optional: Der Cloud Storage-URI der Datei .js, in der die benutzerdefinierte JavaScript-Funktion (UDF) definiert wird, die Sie verwenden möchten. Beispiel: gs://my-bucket/my-udfs/my_file.js
javascriptTextTransformFunctionName Optional: Der Name der benutzerdefinierten JavaScript-Funktion, die Sie verwenden möchten. Wenn Ihre JavaScript-Funktion beispielsweise myTransform(inJson) { /*...do stuff...*/ } ist, lautet der Funktionsname myTransform. Beispiele für JavaScript-UDFs finden Sie unter UDF-Beispiele. Wenn diese Funktion für eine bestimmte Datastore-Entität den Wert „nicht definiert“ oder „Null“ zurückgibt, wird diese Entität nicht gelöscht.

Führen Sie die Vorlage aus.

Console

  1. Rufen Sie die Dataflow-Seite Job aus Vorlage erstellen auf.
  2. Zur Seite "Job aus Vorlage erstellen“
  3. Geben Sie im Feld Jobname einen eindeutigen Jobnamen ein.
  4. Optional: Wählen Sie für Regionaler Endpunkt einen Wert aus dem Drop-down-Menü aus. Die Standardregion ist us-central1.

    Eine Liste der Regionen, in denen Sie einen Dataflow-Job ausführen können, finden Sie unter Dataflow-Standorte.

  5. Wählen Sie im Drop-down-Menü Dataflow-Vorlage die Vorlage Entitäten in Datastore bulk-löschen aus.
  6. Geben Sie Ihre Parameterwerte in die Parameterfelder ein.
  7. Klicken Sie auf Job ausführen.

gcloud

Führen Sie die Vorlage in der Shell oder im Terminal aus:

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

Ersetzen Sie Folgendes:

  • JOB_NAME: ein eindeutiger Jobname Ihrer Wahl
  • REGION_NAME: die Region, in der Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • VERSION: die Version der Vorlage, die Sie verwenden möchten

    Sie können die folgenden Werte verwenden:

    • latest zur Verwendung der neuesten Version der Vorlage, die im nicht datierten übergeordneten Ordner im Bucket verfügbar ist: gs://dataflow-templates-REGION_NAME/latest/
    • Den Versionsnamen wie 2023-09-12-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates-REGION_NAME/.
  • GQL_QUERY: die Abfrage, mit der Sie Entitäten zum Löschen auswählen
  • DATASTORE_READ_AND_DELETE_PROJECT_ID: die Projekt-ID Ihrer Datastore-Instanz; in diesem Beispiel werden Lese- und Löschvorgänge in derselben Datastore-Instanz ausgeführt

API

Senden Sie eine HTTP-POST-Anfrage, um die Vorlage mithilfe der REST API auszuführen. Weitere Informationen zur API und ihren Autorisierungsbereichen finden Sie unter 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" }
   }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: Die Google Cloud Projekt-ID, in der Sie den Dataflow-Job ausführen möchten
  • JOB_NAME: ein eindeutiger Jobname Ihrer Wahl
  • LOCATION: die Region, in der Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • VERSION: die Version der Vorlage, die Sie verwenden möchten

    Sie können die folgenden Werte verwenden:

    • latest zur Verwendung der neuesten Version der Vorlage, die im nicht datierten übergeordneten Ordner im Bucket verfügbar ist: gs://dataflow-templates-REGION_NAME/latest/
    • Den Versionsnamen wie 2023-09-12-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates-REGION_NAME/.
  • GQL_QUERY: die Abfrage, mit der Sie Entitäten zum Löschen auswählen
  • DATASTORE_READ_AND_DELETE_PROJECT_ID: die Projekt-ID Ihrer Datastore-Instanz; in diesem Beispiel werden Lese- und Löschvorgänge in derselben Datastore-Instanz ausgeführt

Nächste Schritte