Bigtable-Änderungsstreams zur Vorlage für die Vektorsuche

Diese Vorlage erstellt eine Streamingpipeline, um Bigtable-Datenänderungsdatensätze zu streamen und sie mit Dataflow Runner V2 in die Vertex AI Vektorsuche zu schreiben.

Pipelineanforderungen

  • Die Bigtable-Quellinstanz muss vorhanden sein.
  • Die Bigtable-Quelltabelle muss vorhanden sein und für die Tabelle müssen Änderungsstreams aktiviert sein.
  • Das Bigtable-Anwendungsprofil muss vorhanden sein.
  • Der Indexpfad für die Vektorsuche muss vorhanden sein.

Vorlagenparameter

Erforderliche Parameter

  • embeddingColumn: Der voll qualifizierte Spaltenname, in dem die Einbettungen gespeichert sind. Im Format cf:col.
  • embeddingByteSize: Die Bytegröße jedes Eintrags im Einbettungsarray. Verwenden Sie 4 für Float und 8 für Double. Die Standardeinstellung ist 4.
  • vectorSearchIndex: Der Vektorsuchindex, in den Änderungen gestreamt werden, im Format „projects/{projectID}/locations/{region}/indexes/{indexID}“ (keine voran- oder nachgestellten Leerzeichen). Beispiel: projects/123/locations/us-east1/indexes/456.
  • bigtableChangeStreamAppProfile: Die Bigtable-Anwendungsprofil-ID. Das Anwendungsprofil muss Single-Cluster-Routing verwenden und Transaktionen für einzelne Zeilen zulassen.
  • bigtableReadInstanceId: Die Bigtable-Quellinstanz-ID.
  • bigtableReadTableId: Die Bigtable-Quelltabellen-ID.

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 Bigtable-Änderungsstreams in die Vektorsuche aus.
  6. Geben Sie Ihre Parameterwerte in die Parameterfelder ein.
  7. Klicken Sie auf Job ausführen.

gcloud-CLI

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

gcloud dataflow flex-template run JOB_NAME \
    --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/ \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       embeddingColumn=EMBEDDING_COLUMN,\
       embeddingByteSize=EMBEDDING_BYTE_SIZE,\
       vectorSearchIndex=VECTOR_SEARCH_INDEX,\
       bigtableChangeStreamAppProfile=BIGTABLE_CHANGE_STREAM_APP_PROFILE,\
       bigtableReadInstanceId=BIGTABLE_READ_INSTANCE_ID,\
       bigtableReadTableId=BIGTABLE_READ_TABLE_ID,\

Ersetzen Sie Folgendes:

  • JOB_NAME: Ein eindeutiger Jobname Ihrer Wahl
  • 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/.
  • REGION_NAME: die Region, in der Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • EMBEDDING_COLUMN: die Einbettungsspalte
  • EMBEDDING_BYTE_SIZE: die Bytegröße des Einbettungsarrays. Kann 4 oder 8 sein.
  • VECTOR_SEARCH_INDEX: der Indexpfad der Vektorsuche
  • BIGTABLE_CHANGE_STREAM_APP_PROFILE: die Bigtable-Anwendungsprofil-ID
  • BIGTABLE_READ_INSTANCE_ID: die Bigtable-Quellinstanz-ID
  • BIGTABLE_READ_TABLE_ID: die Bigtable-Quelltabellen-ID.

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/flexTemplates:launch
{
   "launchParameter": {
     "jobName": "JOB_NAME",
     "parameters": {
       "embeddingColumn": "EMBEDDING_COLUMN",
       "embeddingByteSize": "EMBEDDING_BYTE_SIZE",
       "vectorSearchIndex": "VECTOR_SEARCH_INDEX",
       "bigtableChangeStreamAppProfile": "BIGTABLE_CHANGE_STREAM_APP_PROFILE",
       "bigtableReadInstanceId": "BIGTABLE_READ_INSTANCE_ID",
       "bigtableReadTableId": "BIGTABLE_READ_TABLE_ID",
     },
     "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/",
     "environment": { "maxWorkers": "10" }
  }
}

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
  • 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/.
  • LOCATION: die Region, in der Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • EMBEDDING_COLUMN: die Einbettungsspalte
  • EMBEDDING_BYTE_SIZE: die Bytegröße des Einbettungsarrays. Kann 4 oder 8 sein.
  • VECTOR_SEARCH_INDEX: der Indexpfad der Vektorsuche
  • BIGTABLE_CHANGE_STREAM_APP_PROFILE: die Bigtable-Anwendungsprofil-ID
  • BIGTABLE_READ_INSTANCE_ID: die Bigtable-Quellinstanz-ID
  • BIGTABLE_READ_TABLE_ID: die Bigtable-Quelltabellen-ID