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. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. 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.

    If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

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.

    After installing the Google Cloud CLI, initialize it by running the following command:

    gcloud init

    If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

Featuredaten in einer Featureansicht synchronisieren

Vertex AI Feature Store kann die Featurewerte aus der BigQuery-Datenquelle in der Featureansicht aktualisieren oder synchronisieren. Sie können den Typ der Datensynchronisierung für eine Featureansicht mit dem Parameter FeatureView.sync_config angeben.

Vertex AI Feature Store unterstützt die folgenden Arten der Datensynchronisierung:

  • Geplante Datensynchronisierung: Sie können den Zeitplan oder die Häufigkeit für die Datensynchronisierung angeben. Sie können diese geplante Datensynchronisierung für eine Featureansicht auswählen, unabhängig vom für die Onlinespeicherinstanz angegebenen Onlinediensttyp.

    Wenn für Ihre Featureansicht die geplante Datensynchronisierung konfiguriert ist, können Sie optional die Wartezeit bis zum nächsten geplanten Synchronisierungsvorgang überspringen, indem Sie die Datensynchronisierung manuell starten. Weitere Informationen zum manuellen Auslösen einer Datensynchronisierung finden Sie unter Featuredaten mit dem Onlinespeicher synchronisieren.

    Wenn Sie bei der Onlinebereitstellung nur die neuesten Featurewerte, einschließlich Nullwerten, bereitstellen möchten, müssen Sie die folgende Einrichtung verwenden:

    1. Registrieren Sie Ihre Feature-Datenquelle, indem Sie eine Featuregruppe erstellen, in der der Parameter dense auf true festgelegt ist.

    2. Wählen Sie die Bigtable-Onlinebereitstellung aus, wenn Sie die Onlinespeicherinstanz erstellen.

    3. Wählen Sie beim Erstellen Ihrer Feature-Views die geplante Datensynchronisierung aus.

  • Kontinuierliche Datensynchronisierung: Die Feature-Daten werden aktualisiert, sobald die Feature-Daten in der BigQuery-Datenquelle aktualisiert werden. Sie können diese Art der Datensynchronisierung für eine Featureansicht nur auswählen, wenn alle folgenden Bedingungen erfüllt sind:

    • Die Onlinespeicherinstanz ist für die Onlinebereitstellung von Bigtable konfiguriert.

    • Die Featureansicht ist mit Featuregruppen und Featureressourcen verknüpft.

    • Die BigQuery-Datenquelle befindet sich in einer der folgenden Regionen:

      • eu

      • us

      • us-central1

    Die kontinuierliche Datensynchronisierung unterliegt folgenden Einschränkungen:

    • Sie können eine Featureansicht nicht aktualisieren, wenn Sie die kontinuierliche Datensynchronisierung dafür auswählen.

    • Es werden nur neue Feature-Datensätze aus der BigQuery-Datenquelle synchronisiert. Bei der kontinuierlichen Datensynchronisierung werden keine Feature-Datensätze synchronisiert, die Sie in BigQuery aktualisieren oder löschen.

    • Die Featuregruppe in der Feature-Registry-Quelle muss eine BigQuery-Tabelle als Quelle haben.

Kosten während der geplanten Datensynchronisierung 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 Feature-Ansicht konfigurieren

Für jede Feature-Ansicht wird ein Dienstkonto verwendet, um während der Synchronisierung auf die Quelldaten in BigQuery zuzugreifen. Vertex AI Feature Store weist diesem Dienstkonto die IAM-Rolle BigQuery-Identity and Access ManagementDatenbetrachter zu.

Standardmäßig wird für eine Feature-Ansicht das für Ihr Projekt konfigurierte Dienstkonto verwendet. Mit 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 Feature-Ansicht so konfigurieren, dass sie ein eigenes Dienstkonto verwendet. Vertex AI Feature Store richtet dann ein spezielles Dienstkonto für die Featureansicht ein. Mit dieser Konfiguration können Sie den Zugriff auf Feature-Daten in BigQuery einschränken oder zusätzlichen Nutzern Zugriff gewähren. Sie können die Dienstkontokonfiguration mit dem Parameter FeatureView.service_agent_type angeben. Vertex AI Feature Store generiert für jede Feature-Ansicht, die für die Verwendung eines speziellen Dienstkontos konfiguriert ist, eine eindeutige E-Mail-Adresse für das Dienstkonto.

Wenn eine Feature-Ansicht für die Verwendung eines speziellen Dienstkontos konfiguriert ist, können Sie die E-Mail-Adresse des Dienstkontos auf eine der folgenden Arten aufrufen:

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 durch Verknüpfen mit mehreren Featuregruppen zu erstellen, ohne eine Dienstkontokonfiguration anzugeben.

REST

Senden Sie zum Erstellen einer FeatureView-Ressource eine POST-Anfrage 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.
  • SYNC_CONFIG: Geben Sie eine der folgenden Synchronisierungskonfigurationen für die Featureansicht ein:
    • Wenn Sie die geplante Datensynchronisierung verwenden möchten, geben Sie den Synchronisierungsplan im folgenden Format an:
      "cron": "cron_schedule_expression"
      Ersetzen Sie „cron_schedule_expression“ durch den Cron-Zeitplanausdruck, der die Häufigkeit für die Synchronisierung von Daten mit der Featureansicht darstellt. Weitere Informationen finden Sie unter Cron.
    • Geben Sie Folgendes ein, um die kontinuierliche Datensynchronisierung zu verwenden:
      "continuous": true Sie können die kontinuierliche Datensynchronisierung nur verwenden, wenn die Onlinespeicherinstanz, die die Featureansicht enthält, für die Bigtable-Onlinebereitstellung konfiguriert ist.

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": {
    SYNC_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 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.v1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

Featureansicht erstellen, die ein dediziertes Dienstkonto verwendet

Verwenden Sie das folgende Beispiel, um eine Featureansicht aus Featuregruppen zu erstellen, indem Sie ein spezielles Dienstkonto konfigurieren.

REST

Senden Sie zum Erstellen einer FeatureView-Ressource eine POST-Anfrage 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.
  • SYNC_CONFIG: Geben Sie eine der folgenden Synchronisierungskonfigurationen für die Featureansicht ein:
    • Wenn Sie die geplante Datensynchronisierung verwenden möchten, geben Sie den Synchronisierungsplan im folgenden Format an:
      "cron": "cron_schedule_expression"
      Ersetzen Sie „cron_schedule_expression“ durch den Cron-Zeitplanausdruck, der die Häufigkeit für die Synchronisierung von Daten mit der Featureansicht darstellt. Weitere Informationen finden Sie unter Cron.
    • Geben Sie Folgendes ein, um die kontinuierliche Datensynchronisierung zu verwenden:
      "continuous": true Sie können die kontinuierliche Datensynchronisierung nur verwenden, wenn die Onlinespeicherinstanz, die die Featureansicht enthält, für die Bigtable-Onlinebereitstellung konfiguriert ist.
  • SERVICE_AGENT_TYPE: Dienstkontokonfiguration für die Featureansicht. Wenn Sie ein spezielles Dienstkonto für die Feature-Ansicht verwenden möchten, geben Sie SERVICE_AGENT_TYPE_FEATURE_VIEW ein.

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": {
    SYNC_CONFIG
  },
  "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/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 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 Python-API-Referenzdokumentation.


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 eine POST-Anfrage 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 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", ...]
  • 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 mit der Standarddienstkontokonfiguration 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 Python-API-Referenzdokumentation.


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 eine POST-Anfrage 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 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", ...]
  • 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 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.v1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

Eine Featureansicht mit einem dedizierten Dienstkonto erstellen, ohne die Verwaltung einzubetten

Im folgenden Beispiel wird eine Featureansicht ohne 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 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", ...]
  • 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. Wenn Sie ein spezielles Dienstkonto für die Feature-Ansicht verwenden möchten, geben Sie SERVICE_AGENT_TYPE_FEATURE_VIEW ein.

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"
  },
  "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/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 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.v1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

Eine Featureansicht mit Einbettungsverwaltung und einem dedizierten Dienstkonto erstellen

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 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", ...]
  • 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. Wenn Sie ein spezielles Dienstkonto für die Feature-Ansicht verwenden möchten, geben Sie SERVICE_AGENT_TYPE_FEATURE_VIEW ein.
  • 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"
  },
  "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/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"
    }
  }
}

Nächste Schritte