Featureansicht-Instanz erstellen

Sie können eine Funktionsansicht in einer vorhandenen Onlinespeicherinstanz erstellen. Beim Erstellen einer Featureansicht können Sie die Features so verknüpfen:

  • Featuregruppen und Features aus Feature Registry hinzufügen: Verknüpfen Sie vorhandene Featuregruppen und Features aus der Feature Registry. Eine Funktionsgruppe gibt den Speicherort der BigQuery-Datenquelle an. Ein Feature innerhalb der Featuregruppe verweist auf eine bestimmte Featurespalte innerhalb dieser Datenquelle. Sie können eine Featureansicht mit mehreren Featuregruppen verknüpfen.

  • Features aus einer BigQuery-Quelle hinzufügen: Ordnen Sie eine BigQuery-Datenquelle direkt zu, z. B. eine BigQuery-Tabelle oder -Ansicht, und geben Sie mindestens eine Spalte für die Entitäts-ID an.

Nachdem Sie eine Featureansicht erstellt haben, synchronisiert der Vertex AI Feature Store die neuesten Featurewerte aus der BigQuery-Datenquelle. Wenn Sie den Abfrageparameter run_sync_immediately=true festlegen, synchronisiert Vertex AI Feature Store die Featurewerte beim Erstellen der Featureansicht. Andernfalls synchronisiert Vertex AI Feature Store die Featurewerte gemäß dem für die Featureansicht angegebenen Synchronisierungsplan.

Hinweise

Authentifizieren Sie sich bei Vertex AI, sofern nicht bereits geschehen.

Select the tab for how you plan to use the samples on this page:

Console

When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

Python

Wenn Sie die Python Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.

  1. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

    gcloud init
  3. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

Weitere Informationen unter Set up authentication for a local development environment.

REST

Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

    Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.

Featuredaten in einer Featureansicht synchronisieren

Vertex AI Feature Store aktualisiert die im Onlinespeicher von BigQuery gespeicherten Featurewerte regelmäßig oder wird synchronisiert. Wenn Sie eine Featureansicht erstellen, können Sie den Zeitplan oder die Häufigkeit für die Datensynchronisierung mit dem Parameter FeatureView.sync_config angeben.

Sie können auch manuell eine Datensynchronisierung für eine Funktionsansicht auslösen. Weitere Informationen zum manuellen Synchronisieren von Daten für eine Featureansicht finden Sie unter Featuredaten mit dem Onlinespeicher synchronisieren.

Beachten Sie, dass für eine Featureansicht jeweils nur ein Datensynchronisierungsvorgang aktiv sein kann. Wenn für eine Featureansicht eine Datensynchronisierung ausgeführt wird, werden alle geplanten Datensynchronisierungen für diese Featureansicht übersprungen, bis die Synchronisierung abgeschlossen ist.

Kosten während der Synchronisierung optimieren

Ein Datensynchronisierungsvorgang kann Kosten für die BigQuery-Ressourcennutzung verursachen. Befolgen Sie diese Richtlinien, um diese Kosten zu optimieren und die Leistung während einer Datensynchronisierung zu verbessern:

  • Konfigurieren Sie den Synchronisierungsplan nicht so, dass er häufiger als die Häufigkeit ausgeführt wird, mit der sich die Daten in der BigQuery-Quelle ändern sollen.

  • Optimieren Sie die Größe der Feature-Datenquelle in BigQuery. Geben Sie beim Erstellen der Featureansicht nur die Daten an, die Sie für die Onlinebereitstellung benötigen.

  • Vermeiden Sie die Ausführung komplexer Aggregationen in BigQuery. Führen Sie für die Tabelle oder Ansicht eine SELECT *-Abfrage aus, um das Volumen und die Dauer der Datenverarbeitung zu schätzen.

  • Wenn Sie die Skalierungsoptionen für den Onlinespeicher festlegen, setzen Sie max_node_count auf einen Wert, der hoch genug ist, um hohe Lasten während einer Datensynchronisierung abzudecken.

  • Planen Sie die Synchronisierung für verschiedene Featureansichten zu verschiedenen Zeiten im selben Onlinespeicher.

  • Wenn Ihre BigQuery-Tabelle umfangreiche Verlaufsdaten enthält, sollten Sie die Tabelle mit Zeitstempeln partitionieren und einen Zeitraum für den Abruf der Featuredaten angeben. Dadurch wird das Abrufen veralteter Featuredaten während der Synchronisierung minimiert.

  • Die Bigtable-Auslastung steigt während der Datensynchronisierung. Für Featureansichten, die in Onlinespeichern für die Onlinebereitstellung von Bigtable erstellt wurden, planen Sie Synchronisierungsjobs außerhalb der Spitzenzeiten, um eine optimale Leistung zu erzielen.

Dienstkonto für eine Featureansicht konfigurieren

Jede Featureansicht verwendet ein Dienstkonto, um während der Synchronisierung auf die Quelldaten in BigQuery zuzugreifen. Vertex AI Feature Store weist diesem Dienstkonto die IAM-Rolle BigQuery-Datenbetrachter zu.

Standardmäßig verwendet eine Featureansicht das für Ihr Projekt konfigurierte Dienstkonto. Bei dieser Konfiguration kann jeder Nutzer mit der Berechtigung zum Erstellen einer Featureansicht in Ihrem Projekt auf die Featuredaten in BigQuery zugreifen.

Alternativ können Sie die Featureansicht so konfigurieren, dass ein eigenes Dienstkonto verwendet wird. Vertex AI Feature Store richtet dann ein dediziertes Dienstkonto für die Featureansicht ein. Mit dieser Konfiguration können Sie den Zugriff auf Featuredaten in BigQuery einschränken oder weiteren Nutzern Zugriff gewähren. Sie können die Dienstkontokonfiguration mit dem Parameter FeatureView.service_agent_type angeben.

Vektorabruf für eine Featureansicht konfigurieren

Sie können den Vektorabruf für eine Featureansicht in einem Onlinespeicher konfigurieren, der für die optimierte Onlinebereitstellung erstellt wurde, indem Sie den Parameter FeatureView.index_config verwenden. Informationen zum Vorbereiten oder Aktualisieren der BigQuery-Datenquelle für die Unterstützung von Einbettungen mithilfe der Spalte embedding finden Sie unter Richtlinien für die Vorbereitung von Datenquellen.

Beachten Sie, dass Sie den Vektorabruf und die Verwaltung von Einbettungen nur konfigurieren können, wenn die Funktionsansicht durch Angabe eines BigQuery-Quell-URI und nicht aus Featuregruppen und Features aus Feature Registry erstellt wird.

Weitere Informationen zur Suche nach den ungefähren nächsten Nachbarn mit Einbettungen in Vertex AI Feature Store finden Sie unter Mit Einbettungen suchen.

Eine Featureansicht aus Featuregruppen erstellen

Sie können eine Featureansicht basierend auf Featuredaten erstellen, die mithilfe von Featuregruppen und Features registriert wurden. Sie können mehrere Featuregruppen angeben, um mehrere BigQuery-Datenquellen mit derselben Featureansicht zu verknüpfen.

Wenn Sie eine Featureansicht durch Angabe von Featuregruppen und Features erstellen, gilt Folgendes:

  • Die Datenquelle muss eine Spalte feature_timestamp enthalten und eventuell Verlaufsdaten enthalten.

  • Vertex AI Feature Store stellt nur die neuesten Featurewerte basierend auf dem Featurezeitstempel bereit.

  • Sie können die Einbettungsverwaltung für die Featureansicht nicht konfigurieren.

Eine Featureansicht mit der Standarddienstkontokonfiguration erstellen

Verwenden Sie das folgende Beispiel, um eine Featureansicht zu erstellen. Verknüpfen Sie dazu mehrere Featuregruppen, ohne eine Dienstkontokonfiguration anzugeben.

REST

Senden Sie zum Erstellen einer FeatureView-Ressource die Anfrage POST mit der Methode featureViews.create.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • LOCATION_ID: Region, in der Sie die Featureansicht erstellen möchten, z. B. us-central1.
  • PROJECT_ID: Ihre Projekt-ID.
  • FEATUREONLINESTORE_NAME: Der Name der Online-Speicherinstanz, in der Sie die Featureansicht erstellen möchten.
  • FEATUREVIEW_NAME: Der Name der neuen Featureansichtsinstanz, die Sie erstellen möchten.
  • FEATUREGROUP_NAME_A und FEATUREGROUP_NAME_B: Die Namen der Featuregruppen, aus denen Sie der Featureansicht Features hinzufügen möchten.
  • FEATURE_ID_A1 und FEATURE_ID_A2: Feature-IDs aus der Featuregruppe FEATUREGROUP_NAME_A, die Sie der Featureansicht hinzufügen möchten.
  • FEATURE_ID_B1 und FEATURE_ID_B2: Feature-IDs aus der Featuregruppe FEATUREGROUP_NAME_B, die Sie der Featureansicht hinzufügen möchten.
  • CRON: Cron-Zeitplanausdruck, der die Häufigkeit für die Synchronisierung von Daten mit der Featureansicht darstellt. Weitere Informationen finden Sie unter cron.

HTTP-Methode und URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

JSON-Text der Anfrage:

{
  "feature_registry_source": {
    "feature_groups": [
      {
        "feature_group_id": "FEATUREGROUP_NAME_A",
        "feature_ids": [ "FEATURE_ID_A1", "FEATURE_ID_A2" ]
      },
      {
        "feature_group_id": "FEATUREGROUP_NAME_B",
        "feature_ids": [ "FEATURE_ID_B1", "FEATURE_ID_B2" ]
      }
    ]
  },
  "sync_config": {
    "cron": "CRON"
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

Eine Featureansicht durch Angabe einer Dienstkontokonfiguration erstellen

Im folgenden Beispiel wird eine Featureansicht aus Featuregruppen erstellt, indem eine Dienstkontokonfiguration angegeben wird.

REST

Senden Sie zum Erstellen einer FeatureView-Ressource die Anfrage POST mit der Methode featureViews.create.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • LOCATION_ID: Region, in der Sie die Featureansicht erstellen möchten, z. B. us-central1.
  • PROJECT_ID: Ihre Projekt-ID.
  • FEATUREONLINESTORE_NAME: Der Name der Online-Speicherinstanz, in der Sie die Featureansicht erstellen möchten.
  • FEATUREVIEW_NAME: Der Name der neuen Featureansichtsinstanz, die Sie erstellen möchten.
  • FEATUREGROUP_NAME_A und FEATUREGROUP_NAME_B: Die Namen der Featuregruppen, aus denen Sie der Featureansicht Features hinzufügen möchten.
  • FEATURE_ID_A1 und FEATURE_ID_A2: Feature-IDs aus der Featuregruppe FEATUREGROUP_NAME_A, die Sie der Featureansicht hinzufügen möchten.
  • FEATURE_ID_B1 und FEATURE_ID_B2: Feature-IDs aus der Featuregruppe FEATUREGROUP_NAME_B, die Sie der Featureansicht hinzufügen möchten.
  • CRON: Cron-Zeitplanausdruck, der die Häufigkeit für die Synchronisierung von Daten mit der Featureansicht darstellt. Weitere Informationen finden Sie unter cron.
  • SERVICE_AGENT_TYPE: Optional: Dienstkontokonfiguration für die Featureansicht. Zu den unterstützten Dienst-Agent-Typen gehören folgende:
    • SERVICE_AGENT_TYPE_PROJECT: Verwenden Sie das Dienstkonto auf Projektebene für die Featureansicht. Dies ist die Standardkonfiguration.
    • SERVICE_AGENT_TYPE_FEATURE_VIEW: Richten Sie ein dediziertes Dienstkonto für die Featureansicht ein und verwenden Sie es.

HTTP-Methode und URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

JSON-Text der Anfrage:

{
  "feature_registry_source": {
    "feature_groups": [
      {
        "feature_group_id": "FEATUREGROUP_NAME_A",
        "feature_ids": [ "FEATURE_ID_A1", "FEATURE_ID_A2" ]
      },
      {
        "feature_group_id": "FEATUREGROUP_NAME_B",
        "feature_ids": [ "FEATURE_ID_B1", "FEATURE_ID_B2" ]
      }
    ]
  },
  "sync_config": {
    "cron": "CRON"
  },
  "service_agent_type": "SERVICE_AGENT_TYPE"
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

Eine Featureansicht aus einer BigQuery-Quelle erstellen

Wenn Sie Features online bereitstellen möchten, ohne Ihre BigQuery-Datenquelle mithilfe von Featuregruppen und Features zu registrieren, können Sie eine Featureansicht erstellen. Geben Sie dazu den URI der BigQuery-Datenquelle an.

Wenn Sie eine Featureansicht durch Angabe der Datenquelle erstellen:

  • Sie können keine feature_timestamp-Spalte in die BigQuery-Tabelle oder -Ansicht aufnehmen.

  • Sie können keine bisherigen Featurewerte in die Datenquelle aufnehmen. Jede Zeile muss eine eindeutige Entitäts-ID enthalten.

Eine Featureansicht erstellen, die das Standarddienstkonto verwendet und keine Einbettungen unterstützt

In den folgenden Beispielen wird eine Featureansicht erstellt, die keine Einbettungen unterstützt. Dazu wird eine BigQuery-Datenquelle direkt verknüpft, ohne eine Dienstkontokonfiguration anzugeben.

Python

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.


from google.cloud import aiplatform
from vertexai.resources.preview import feature_store
from typing import List


def create_feature_view_from_bq_source(
    project: str,
    location: str,
    existing_feature_online_store_id: str,
    feature_view_id: str,
    bq_table_uri: str,
    entity_id_columns: List[str],
):
    aiplatform.init(project=project, location=location)
    fos = feature_store.FeatureOnlineStore(existing_feature_online_store_id)
    fv = fos.create_feature_view(
        name=feature_view_id,
        source=feature_store.utils.FeatureViewBigQuerySource(
            uri=bq_table_uri, entity_id_columns=entity_id_columns
        ),
    )
    return fv

  • project: Ihre Projekt-ID.
  • location: Region, in der Sie die Featureansicht erstellen möchten, z. B. us-central1.
  • existing_feature_online_store_id: Der Name der Online-Speicherinstanz, in der Sie die Featureansicht erstellen möchten.
  • feature_view_id: Der Name der neuen Featureansichtsinstanz, die Sie erstellen möchten.
  • bq_table_uri: URI der BigQuery-Quelltabelle oder -Ansicht.
  • entity_id_columns: Die Namen der Spalten mit den Entitäts-IDs. Sie können entweder eine oder mehrere Spalten angeben.
    • Wenn Sie nur eine Spalte für die Entitäts-ID angeben möchten, geben Sie den Spaltennamen im folgenden Format an:
      "entity_id_column_name".
    • Wenn Sie mehrere Spalten für die Entitäts-ID angeben möchten, geben Sie die Spaltennamen im folgenden Format an:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...].

REST

Senden Sie zum Erstellen einer FeatureView-Ressource die Anfrage POST mit der Methode featureViews.create.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • LOCATION_ID: Region, in der Sie die Featureansicht erstellen möchten, z. B. us-central1.
  • PROJECT_ID: Ihre Projekt-ID.
  • FEATUREONLINESTORE_NAME: Der Name der Online-Speicherinstanz, in der Sie die Featureansicht erstellen möchten.
  • FEATUREVIEW_NAME: Der Name der neuen Featureansicht, die Sie erstellen möchten.
  • PROJECT_NAME: der Name Ihres Projekts
  • DATASET_NAME ist der Name Ihres BigQuery-Datasets.
  • TABLE_NAME: Der Name der Tabelle aus Ihrem BigQuery-Dataset.
  • ENTITY_ID_COLUMNS: Die Namen der Spalten, die die Entitäts-IDs enthalten. Sie können entweder eine oder mehrere Spalten angeben.
    • Wenn Sie nur eine Spalte für die Entitäts-ID angeben möchten, geben Sie den Spaltennamen im folgenden Format an:
      "entity_id_column_name".
    • Wenn Sie mehrere Entitäts-ID-Spalten angeben möchten, geben Sie die Spaltennamen im folgenden Format an:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...].
  • CRON: Cron-Zeitplanausdruck, der die Häufigkeit für die Synchronisierung von Daten mit der Featureansicht darstellt. Weitere Informationen finden Sie unter cron.

HTTP-Methode und URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

JSON-Text der Anfrage:

{
  "big_query_source": {
    "uri": "bq://PROJECT_NAME.DATASET_NAME.TABLE_NAME",
    "entity_id_columns": "ENTITY_ID_COLUMNS"
  },
  "sync_config": {
    "cron": "CRON"
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

Featureansicht erstellen, die das Standarddienstkonto verwendet und Einbettungen unterstützt

In den folgenden Beispielen wird eine Featureansicht mit Einbettungsunterstützung durch direkte Verknüpfung einer BigQuery-Datenquelle und ohne Angabe einer Dienstkontokonfiguration erstellt.

Python

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.


from google.cloud import aiplatform
from vertexai.resources.preview import feature_store
from typing import List


def create_feature_view_from_bq_source_with_embedding_management(
    project: str,
    location: str,
    existing_feature_online_store_id: str,
    feature_view_id: str,
    bq_table_uri: str,
    entity_id_columns: List[str],
    embedding_column: str,
    embedding_dimensions: int,
):
    aiplatform.init(project=project, location=location)

    fos = feature_store.FeatureOnlineStore(existing_feature_online_store_id)

    bigquery_source = feature_store.utils.FeatureViewBigQuerySource(
        uri=bq_table_uri,
        entity_id_columns=entity_id_columns,
    )
    index_config = feature_store.utils.IndexConfig(
        embedding_column=embedding_column,
        dimensions=embedding_dimensions,
        algorithm_config=feature_store.utils.TreeAhConfig(),
    )
    fv = fos.create_feature_view(
        name=feature_view_id,
        source=bigquery_source,
        index_config=index_config,
    )
    return fv

  • project: Ihre Projekt-ID.
  • location: Region, in der Sie die Featureansicht erstellen möchten, z. B. us-central1.
  • existing_feature_online_store_id: Der Name der Online-Speicherinstanz, in der Sie die Featureansicht erstellen möchten.
  • feature_view_id: Der Name der neuen Featureansichtsinstanz, die Sie erstellen möchten.
  • bq_table_uri: URI der BigQuery-Quelltabelle oder -Ansicht.
  • entity_id_columns: Die Namen der Spalten mit den Entitäts-IDs. Sie können entweder eine oder mehrere Spalten angeben.
    • Wenn Sie nur eine Spalte für die Entitäts-ID angeben möchten, geben Sie den Spaltennamen im folgenden Format an:
      "entity_id_column_name".
    • Wenn Sie mehrere Spalten für die Entitäts-ID angeben möchten, geben Sie die Spaltennamen im folgenden Format an:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...].
  • embedding_column: Der Name der Spalte, die die Quelldaten enthält, um den Index für die Vektorsuche zu erstellen. Das ist nur erforderlich, wenn Sie Einbettungen mit der Funktionsansicht verwalten möchten.
  • embedding_dimensions: Optional. Die Größe einer Einbettung, angegeben in der Anzahl der Dimensionen in der Einbettungsspalte.

REST

Senden Sie zum Erstellen einer FeatureView-Ressource die Anfrage POST mit der Methode featureViews.create.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • LOCATION_ID: Region, in der Sie die Featureansicht erstellen möchten, z. B. us-central1.
  • PROJECT_ID: Ihre Projekt-ID.
  • FEATUREONLINESTORE_NAME: Der Name der Online-Speicherinstanz, in der Sie die Featureansicht erstellen möchten.
  • FEATUREVIEW_NAME: Der Name der neuen Featureansicht, die Sie erstellen möchten.
  • PROJECT_NAME: der Name Ihres Projekts
  • DATASET_NAME ist der Name Ihres BigQuery-Datasets.
  • TABLE_NAME: Der Name der Tabelle aus Ihrem BigQuery-Dataset.
  • ENTITY_ID_COLUMNS: Die Namen der Spalten, die die Entitäts-IDs enthalten. Sie können entweder eine oder mehrere Spalten angeben.
    • Wenn Sie nur eine Spalte für die Entitäts-ID angeben möchten, geben Sie den Spaltennamen im folgenden Format an:
      "entity_id_column_name".
    • Wenn Sie mehrere Entitäts-ID-Spalten angeben möchten, geben Sie die Spaltennamen im folgenden Format an:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...].
  • CRON: Cron-Zeitplanausdruck, der die Häufigkeit für die Synchronisierung von Daten mit der Featureansicht darstellt. Weitere Informationen finden Sie unter cron.
  • EMBEDDING_COLUMN: Der Name der Spalte, die die Quelldaten enthält, um den Index für die Vektorsuche zu erstellen. Das ist nur erforderlich, wenn Sie Einbettungen mit der Funktionsansicht verwalten möchten.
  • FILTER_COLUMN_1 und FILTER_COLUMN_2: Optional: Die Namen der Spalten, nach denen die Vektorsuchergebnisse gefiltert werden.
  • CROWDING_COLUMN: Optional: Der Name der Spalte mit den Crowding-Attributen.
  • EMBEDDING_DIMENSION: Optional: Die Größe einer Einbettung, angegeben in der Anzahl der Dimensionen in der Einbettungsspalte.

HTTP-Methode und URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

JSON-Text der Anfrage:

{
  "big_query_source": {
    "uri": "bq://PROJECT_NAME.DATASET_NAME.TABLE_NAME",
    "entity_id_columns": "ENTITY_ID_COLUMNS"
  },
  "sync_config": {
    "cron": "CRON"
  },
  "index_config": {
    "embedding_column": "EMBEDDING_COLUMN",
    "filter_columns": ["FILTER_COLUMN_1", "FILTER_COLUMN_2"],
    "crowding_column": "CROWDING_COLUMN",
    "embedding_dimension": EMBEDDING_DIMENSION
    "tree_ah_config": {}
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

Eine Featureansicht mit Einbettungsverwaltung erstellen, indem Sie eine Dienstkontokonfiguration angeben

Im folgenden Beispiel wird eine Featureansicht mit Einbettungsunterstützung erstellt. Dazu wird eine BigQuery-Datenquelle direkt verknüpft und eine Dienstkontokonfiguration angegeben.

REST

Senden Sie zum Erstellen einer FeatureView-Ressource mit Unterstützung für Einbettungen eine POST-Anfrage mit der Methode featureViews.create und geben Sie den Parameter FeatureView.index_config an. Beachten Sie, dass Sie die Einbettungsverwaltung nur verwenden können, wenn der Onlinespeicher für die optimierte Onlinebereitstellung konfiguriert ist.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • LOCATION_ID: Region, in der Sie die Featureansicht erstellen möchten, z. B. us-central1.
  • PROJECT_ID: Ihre Projekt-ID.
  • FEATUREONLINESTORE_NAME: Der Name der Online-Speicherinstanz, in der Sie die Featureansicht erstellen möchten.
  • FEATUREVIEW_NAME: Der Name der neuen Featureansicht, die Sie erstellen möchten.
  • PROJECT_NAME: der Name Ihres Projekts
  • DATASET_NAME ist der Name Ihres BigQuery-Datasets.
  • TABLE_NAME: Der Name der Tabelle aus Ihrem BigQuery-Dataset.
  • ENTITY_ID_COLUMNS: Die Namen der Spalten, die die Entitäts-IDs enthalten. Sie können entweder eine oder mehrere Spalten angeben.
    • Wenn Sie nur eine Spalte für die Entitäts-ID angeben möchten, geben Sie den Spaltennamen im folgenden Format an:
      "entity_id_column_name".
    • Wenn Sie mehrere Entitäts-ID-Spalten angeben möchten, geben Sie die Spaltennamen im folgenden Format an:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...].
  • CRON: Cron-Zeitplanausdruck, der die Häufigkeit für die Synchronisierung von Daten mit der Featureansicht darstellt. Weitere Informationen finden Sie unter cron.
  • SERVICE_AGENT_TYPE: Dienstkontokonfiguration für die Featureansicht. Zu den unterstützten Dienst-Agent-Typen gehören folgende:
    • SERVICE_AGENT_TYPE_PROJECT: Verwenden Sie das Dienstkonto auf Projektebene für die Featureansicht. Dies ist die Standardkonfiguration.
    • SERVICE_AGENT_TYPE_FEATURE_VIEW: Richten Sie ein dediziertes Dienstkonto für die Featureansicht ein und verwenden Sie es.
  • EMBEDDING_COLUMN: Der Name der Spalte, die die Quelldaten enthält, um den Index für die Vektorsuche zu erstellen. Das ist nur erforderlich, wenn Sie Einbettungen mit der Funktionsansicht verwalten möchten.
  • FILTER_COLUMN_1 und FILTER_COLUMN_2: Optional: Die Namen der Spalten, nach denen die Vektorsuchergebnisse gefiltert werden.
  • CROWDING_COLUMN: Optional: Der Name der Spalte mit den Crowding-Attributen.
  • EMBEDDING_DIMENSION: Optional: Die Größe einer Einbettung, angegeben in der Anzahl der Dimensionen in der Einbettungsspalte.

HTTP-Methode und URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

JSON-Text der Anfrage:

{
  "big_query_source": {
    "uri": "bq://PROJECT_NAME.DATASET_NAME.TABLE_NAME",
    "entity_id_columns": "ENTITY_ID_COLUMNS"
  },
  "sync_config": {
    "cron": "CRON"
  },
  "service_agent_type": "SERVICE_AGENT_TYPE",
  "index_config": {
    "embedding_column": "EMBEDDING_COLUMN",
    "filter_columns": ["FILTER_COLUMN_1", "FILTER_COLUMN_2"],
    "crowding_column": "CROWDING_COLUMN",
    "embedding_dimension": EMBEDDING_DIMENSION
    "tree_ah_config": {}
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

Nächste Schritte