Criar uma instância de visualização de recursos

É possível criar uma visualização de recursos dentro de uma instância de loja on-line atual. Ao criar uma visualização de recursos, você pode associar recursos a ela das seguintes maneiras:

  • Adicione grupos de atributos e atributos do Registro de atributos: associe a grupos de atributos e atributos existentes do registro de atributos. Um grupo de recursos especifica o local da fonte de dados do BigQuery. Um recurso dentro do grupo aponta para uma coluna de atributos específica nessa fonte de dados. Você pode associar uma visualização de elemento a vários grupos de elementos.

  • Adicionar recursos de uma origem do BigQuery: associe diretamente uma fonte de dados do BigQuery, como uma tabela ou visualização do BigQuery, e especifique pelo menos uma coluna de ID da entidade.

Depois que você cria uma visualização de recursos, o Feature Store da Vertex AI sincroniza os valores de atributos mais recentes da fonte de dados do BigQuery. Se você definir o parâmetro de consulta run_sync_immediately=true, o Vertex AI Feature Store copiará os valores dos atributos quando você criar a visualização. Caso contrário, o Vertex AI Feature Store copia os valores dos recursos de acordo com a programação de sincronização especificada para a visualização.

Antes de começar

Faça a autenticação na Vertex AI, a menos que já tenha feito isso.

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

Para usar os exemplos Python desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.

  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.

Confira mais informações em Set up authentication for a local development environment.

REST

Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

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

    gcloud init

Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Sincronizar dados de recursos em uma visualização de recursos

O Feature Store da Vertex AI pode atualizar ou sincronizar os valores de atributos da fonte de dados do BigQuery com a visualização de recursos. É possível especificar o tipo de sincronização de dados para uma visualização de recursos usando o parâmetro FeatureView.sync_config.

O Feature Store da Vertex AI oferece suporte aos seguintes tipos de sincronização de dados:

  • Sincronização de dados programada: é possível especificar a programação ou a frequência da sincronização de dados. É possível escolher essa sincronização de dados programada para uma visualização de recursos, independentemente do tipo de veiculação on-line especificado para a instância da loja on-line.

    Se a visualização de recursos estiver configurada para usar a sincronização de dados programada, você poderá pular a espera até a próxima operação de sincronização programada, iniciando manualmente a sincronização de dados. Para mais informações sobre como acionar manualmente uma sincronização de dados, consulte Sincronizar dados de recursos com a loja on-line.

    Durante a veiculação on-line, se você quiser veicular apenas os valores de recursos mais recentes, incluindo valores nulos, use a seguinte configuração:

    1. Registre sua fonte de dados de elementos criando um grupo de recursos com o parâmetro dense definido como true.

    2. Escolha a veiculação on-line do Bigtable ao criar a instância da loja on-line.

    3. Escolha a sincronização de dados programada ao criar as visualizações de atributos.

  • Sincronização contínua de dados: os dados do recurso são atualizados sempre que os dados do recurso na fonte de dados do BigQuery são atualizados. Você só pode escolher esse tipo de sincronização de dados para uma visualização de recurso se todas as condições a seguir forem atendidas:

    • A instância da loja on-line está configurada para a veiculação on-line do Bigtable.

    • A visualização de recursos é associada a grupos e recursos de recursos.

    • A fonte de dados do BigQuery está localizada em uma das seguintes regiões:

      • eu

      • us

      • us-central1

    A sincronização contínua de dados tem as seguintes limitações:

    • Não é possível atualizar uma visualização de recurso se você selecionar a sincronização de dados contínua para ela.

    • Somente os novos registros de recursos são sincronizados da fonte de dados do BigQuery. A sincronização contínua de dados não sincroniza registros de recursos que você atualiza ou exclui no BigQuery.

Otimizar custos durante a sincronização de dados programada

Uma operação de sincronização de dados pode envolver custos de uso de recursos do BigQuery. Siga estas diretrizes para otimizar esses custos e melhorar o desempenho durante uma sincronização de dados:

  • Não configure a programação de sincronização para ser executada com mais frequência do que a frequência com que os dados devem ser alterados na origem do BigQuery.

  • Otimize o tamanho da fonte de dados do recurso no BigQuery. Ao criar a visualização do recurso, inclua apenas os dados necessários para a exibição on-line.

  • Evite executar agregações complexas no BigQuery. Execute uma consulta SELECT * na tabela ou visualização para estimar o volume e a duração do processamento de dados.

  • Ao definir as opções de escalonamento do armazenamento on-line, defina max_node_count como um valor alto o suficiente para cobrir cargas altas durante uma sincronização de dados.

  • Programe a sincronização para diferentes visualizações de recursos em momentos distintos na mesma loja on-line.

  • Se a tabela do BigQuery contiver dados históricos abrangentes, considere particionar a tabela usando carimbos de data/hora e especifique um período para recuperar os dados de recursos. Isso minimiza a recuperação de dados de recursos obsoletos durante a sincronização.

  • A utilização do Bigtable aumenta durante as sincronizações de dados. Para visualizações de recursos criadas em lojas on-line para veiculação on-line do Bigtable, programe jobs de sincronização durante horários de menor demanda para ter o melhor desempenho.

Configurar a conta de serviço para uma visualização de recursos

Cada visualização de recursos usa uma conta de serviço para acessar os dados de origem no BigQuery durante a sincronização. O Vertex AI Feature Store atribui o papel de Leitor de dados do BigQuery do Identity and Access Management (IAM) a essa conta de serviço.

Por padrão, a visualização de recursos usa a conta de serviço configurada para o projeto. Com essa configuração, qualquer usuário com permissão para criar uma visualização de recursos no projeto pode acessar os dados do recurso no BigQuery.

Outra possibilidade é configurar a visualização de recursos para que use a própria conta de serviço. O Vertex AI Feature Store configura uma conta de serviço dedicada para a visualização de recursos. Com essa configuração, é possível restringir o acesso a dados de recursos no BigQuery ou conceder acesso a outros usuários. Use o parâmetro FeatureView.service_agent_type para especificar a configuração da conta de serviço.

Configurar a recuperação de vetores para uma visualização de recurso

É possível configurar a recuperação de vetores para uma visualização de atributos em um repositório online criado para a veiculação on-line otimizada usando o parâmetro FeatureView.index_config. Para informações sobre como preparar ou atualizar a fonte de dados do BigQuery para oferecer suporte a embeddings incluindo a coluna embedding, consulte Diretrizes de preparação da fonte de dados.

Observe que só é possível configurar a recuperação de vetores e gerenciar embeddings se a visualização de recurso for criada especificando um URI de origem do BigQuery, e não de grupos de atributos e atributos do Feature Registry.

Para mais informações sobre como pesquisar vizinhos mais próximos aproximados usando embeddings no Vertex AI Feature Store, consulte Pesquisar usando embeddings.

Criar uma visualização de elementos a partir de grupos de recursos

Você pode criar uma visualização de recursos com base nos dados de recursos registrados usando recursos e grupos de recursos. Para associar várias fontes de dados do BigQuery à mesma visualização de recursos, especifique vários grupos de recursos.

Se você criar uma visualização de recursos especificando grupos de recursos e recursos:

  • Sua fonte de dados precisa ter uma coluna feature_timestamp e pode conter dados históricos.

  • O Vertex AI Feature Store exibe apenas os valores de atributos mais recentes com base no carimbo de data/hora do atributo.

  • Não é possível configurar o gerenciamento de incorporação para a visualização do recurso.

Criar uma visualização de recursos com a configuração da conta de serviço padrão

Use o exemplo a seguir para criar uma visualização de recursos associando vários grupos de recursos sem especificar uma configuração de conta de serviço.

REST

Para criar um recurso FeatureView, envie uma solicitação POST usando o método featureViews.create.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • LOCATION_ID: região em que você quer criar a visualização do recurso, como us-central1.
  • PROJECT_ID: o ID do projeto.
  • FEATUREONLINESTORE_NAME: o nome da instância da loja on-line em que você quer criar a visualização do recurso.
  • FEATUREVIEW_NAME: o nome da nova instância de visualização de recurso que você quer criar.
  • FEATUREGROUP_NAME_A e FEATUREGROUP_NAME_B: os nomes dos grupos de que você quer adicionar recursos à visualização de elementos.
  • FEATURE_ID_A1 e FEATURE_ID_A2: IDs de recursos do grupo de recursos FEATUREGROUP_NAME_A que você quer adicionar à visualização de elementos.
  • FEATURE_ID_B1 e FEATURE_ID_B2: IDs de recursos do grupo de recursos FEATUREGROUP_NAME_B que você quer adicionar à visualização de elementos.
  • SYNC_CONFIG: insira uma das seguintes configurações de sincronização para a visualização de recursos:
    • Para usar a sincronização programada de dados, forneça a programação de sincronização no seguinte formato:
      "cron": "cron_schedule_expression"
      Substitua "cron_schedule_expression" pela expressão de programação cron que representa a frequência de sincronização de dados com a visualização do recurso. Para mais informações, consulte cron.
    • Para usar a sincronização contínua de dados, insira o seguinte:
      "continuous": true Só é possível usar a sincronização contínua de dados se a instância da loja on-line que contém a visualização de recursos estiver configurada para a veiculação on-line do Bigtable.

Método HTTP e URL:

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

Corpo JSON da solicitação:

{
  "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
  }
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$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

Você receberá uma resposta JSON semelhante a esta:

{
  "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"
    }
  }
}

Criar uma visualização de recursos especificando uma configuração de conta de serviço

Use o exemplo a seguir para criar uma visualização de recursos baseada em grupos de recursos especificando uma configuração de conta de serviço.

REST

Para criar um recurso FeatureView, envie uma solicitação POST usando o método featureViews.create.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • LOCATION_ID: região em que você quer criar a visualização do recurso, como us-central1.
  • PROJECT_ID: o ID do projeto.
  • FEATUREONLINESTORE_NAME: o nome da instância da loja on-line em que você quer criar a visualização do recurso.
  • FEATUREVIEW_NAME: o nome da nova instância de visualização de recurso que você quer criar.
  • FEATUREGROUP_NAME_A e FEATUREGROUP_NAME_B: os nomes dos grupos de que você quer adicionar recursos à visualização de elementos.
  • FEATURE_ID_A1 e FEATURE_ID_A2: IDs de recursos do grupo de recursos FEATUREGROUP_NAME_A que você quer adicionar à visualização de elementos.
  • FEATURE_ID_B1 e FEATURE_ID_B2: IDs de recursos do grupo de recursos FEATUREGROUP_NAME_B que você quer adicionar à visualização de elementos.
  • SYNC_CONFIG: insira uma das seguintes configurações de sincronização para a visualização de recursos:
    • Para usar a sincronização programada de dados, forneça a programação de sincronização no seguinte formato:
      "cron": "cron_schedule_expression"
      Substitua "cron_schedule_expression" pela expressão de programação cron que representa a frequência de sincronização de dados com a visualização do recurso. Para mais informações, consulte cron.
    • Para usar a sincronização contínua de dados, insira o seguinte:
      "continuous": true Só é possível usar a sincronização contínua de dados se a instância da loja on-line que contém a visualização de recursos estiver configurada para a veiculação on-line do Bigtable.
  • SERVICE_AGENT_TYPE (opcional): configuração da conta de serviço para a visualização de recursos. Os tipos de agente de serviço compatíveis incluem:
    • SERVICE_AGENT_TYPE_PROJECT: use a conta de serviço para envolvidos no projeto para a visualização de recursos. Essa é a configuração padrão.
    • SERVICE_AGENT_TYPE_FEATURE_VIEW: configure e use uma conta de serviço dedicada para a visualização de recursos.

Método HTTP e URL:

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

Corpo JSON da solicitação:

{
  "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"
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$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

Você receberá uma resposta JSON semelhante a esta:

{
  "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"
    }
  }
}

Criar uma visualização de recursos a partir de uma origem do BigQuery

Se você quiser disponibilizar recursos on-line sem registrar a fonte de dados do BigQuery usando recursos e grupos de recursos, crie uma visualização de recursos especificando o URI da fonte de dados do BigQuery.

Se você criar uma visualização de recursos especificando a fonte de dados:

  • Não é possível incluir uma coluna feature_timestamp na tabela ou visualização do BigQuery.

  • Não é possível incluir valores históricos de elementos na fonte de dados. Cada linha precisa conter um ID de entidade exclusivo.

Criar uma visualização de recursos que usa a conta de serviço padrão e não oferece suporte a embeddings

Use os exemplos a seguir para criar uma visualização de recursos que não oferece suporte a embeddings. Para isso, associe diretamente uma fonte de dados do BigQuery e não especifique uma configuração de conta de serviço.

Python

Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.


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: o ID do projeto.
  • location: região em que você quer criar a visualização do recurso, como us-central1.
  • existing_feature_online_store_id: o nome da instância do armazenamento on-line em que você quer criar a visualização do recurso.
  • feature_view_id: o nome da nova instância de visualização de recurso que você quer criar.
  • bq_table_uri: URI da tabela ou visualização de origem do BigQuery.
  • entity_id_columns: os nomes das colunas que contêm os IDs das entidades. É possível especificar uma ou várias colunas.
    • Para especificar apenas uma coluna de IDs das entidades, especifique o nome da coluna no seguinte formato:
      "entity_id_column_name".
    • Para especificar várias colunas de IDs das entidades, especifique os nomes das colunas no seguinte formato:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...].

REST

Para criar um recurso FeatureView, envie uma solicitação POST usando o método featureViews.create.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • LOCATION_ID: região em que você quer criar a visualização do recurso, como us-central1.
  • PROJECT_ID: o ID do projeto.
  • FEATUREONLINESTORE_NAME: o nome da instância da loja on-line em que você quer criar a visualização do recurso.
  • FEATUREVIEW_NAME: o nome da nova visualização de recursos que você quer criar.
  • PROJECT_NAME: o nome do seu projeto.
  • DATASET_NAME: nome do seu conjunto de dados do BigQuery.
  • TABLE_NAME: o nome da tabela do seu conjunto de dados do BigQuery.
  • ENTITY_ID_COLUMNS: os nomes das colunas que contêm os IDs das entidades. É possível especificar uma ou várias colunas.
    • Para especificar apenas uma coluna ID das entidades, especifique o nome da coluna no seguinte formato:
      "entity_id_column_name"
    • Para especificar várias colunas ID das entidades, especifique os nomes das colunas no seguinte formato:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...]
  • CRON: expressão de programação cron que representa a frequência de sincronização de dados com a visualização do recurso. Para mais informações, consulte Cron.

Método HTTP e URL:

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

Corpo JSON da solicitação:

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

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$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

Você receberá uma resposta JSON semelhante a esta:

{
  "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"
    }
  }
}

Criar uma visualização de recursos que usa a conta de serviço padrão e oferece suporte a embeddings

Use o exemplo a seguir para criar uma visualização de recursos com suporte a embedding. Para isso, associe diretamente uma fonte de dados do BigQuery e não especifique uma configuração de conta de serviço.

Python

Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.


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: o ID do projeto.
  • location: região em que você quer criar a visualização do recurso, como us-central1.
  • existing_feature_online_store_id: o nome da instância do armazenamento on-line em que você quer criar a visualização do recurso.
  • feature_view_id: o nome da nova instância de visualização de recurso que você quer criar.
  • bq_table_uri: URI da tabela ou visualização de origem do BigQuery.
  • entity_id_columns: os nomes das colunas que contêm os IDs das entidades. É possível especificar uma ou várias colunas.
    • Para especificar apenas uma coluna de IDs das entidades, especifique o nome da coluna no seguinte formato:
      "entity_id_column_name".
    • Para especificar várias colunas de IDs das entidades, especifique os nomes das colunas no seguinte formato:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...].
  • embedding_column: o nome da coluna que contém os dados de origem para criar o índice de pesquisa vetorial. É necessário fazer isso apenas caso você queira gerenciar incorporações com a visualização de recursos.
  • embedding_dimensions: opcional. O tamanho, expresso como número de dimensões, de um embedding na coluna de embedding.

REST

Para criar um recurso FeatureView, envie uma solicitação POST usando o método featureViews.create.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • LOCATION_ID: região em que você quer criar a visualização do recurso, como us-central1.
  • PROJECT_ID: o ID do projeto.
  • FEATUREONLINESTORE_NAME: o nome da instância da loja on-line em que você quer criar a visualização do recurso.
  • FEATUREVIEW_NAME: o nome da nova visualização de recursos que você quer criar.
  • PROJECT_NAME: o nome do seu projeto.
  • DATASET_NAME: nome do seu conjunto de dados do BigQuery.
  • TABLE_NAME: o nome da tabela do seu conjunto de dados do BigQuery.
  • ENTITY_ID_COLUMNS: os nomes das colunas que contêm os IDs das entidades. É possível especificar uma ou várias colunas.
    • Para especificar apenas uma coluna ID das entidades, especifique o nome da coluna no seguinte formato:
      "entity_id_column_name"
    • Para especificar várias colunas ID das entidades, especifique os nomes das colunas no seguinte formato:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...]
  • CRON: expressão de programação cron que representa a frequência de sincronização de dados com a visualização do recurso. Para mais informações, consulte Cron.
  • EMBEDDING_COLUMN: o nome da coluna que contém os dados de origem para criar o índice de pesquisa vetorial. É necessário fazer isso apenas se você quiser gerenciar incorporações com a visualização de recursos.
  • FILTER_COLUMN_1 e FILTER_COLUMN_2: os nomes das colunas usadas para filtrar os resultados da pesquisa de vetor.
  • CROWDING_COLUMN Opcional: os nomes da coluna que contém os atributos de agrupamento.
  • EMBEDDING_DIMENSION: opcional: o tamanho, expresso como número de dimensões, de um embedding na coluna de embedding.

Método HTTP e URL:

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

Corpo JSON da solicitação:

{
  "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": {}
  }
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$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

Você receberá uma resposta JSON semelhante a esta:

{
  "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"
    }
  }
}

Criar uma visualização de recursos com gerenciamento de embeddings especificando uma configuração de conta de serviço

Use o exemplo a seguir para criar uma visualização de recursos com suporte a embedding associando diretamente uma fonte de dados do BigQuery e especificando uma configuração de conta de serviço.

REST

Para criar um recurso FeatureView com suporte a embeddings, envie uma solicitação POST usando o método featureViews.create e especificando o parâmetro FeatureView.index_config. O gerenciamento de embeddings só poderá ser usado se o repositório on-line estiver configurado para veiculação on-line otimizada.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • LOCATION_ID: região em que você quer criar a visualização do recurso, como us-central1.
  • PROJECT_ID: o ID do projeto.
  • FEATUREONLINESTORE_NAME: o nome da instância da loja on-line em que você quer criar a visualização do recurso.
  • FEATUREVIEW_NAME: o nome da nova visualização de recursos que você quer criar.
  • PROJECT_NAME: o nome do seu projeto.
  • DATASET_NAME: nome do seu conjunto de dados do BigQuery.
  • TABLE_NAME: o nome da tabela do seu conjunto de dados do BigQuery.
  • ENTITY_ID_COLUMNS: os nomes das colunas que contêm os IDs das entidades. É possível especificar uma ou várias colunas.
    • Para especificar apenas uma coluna ID das entidades, especifique o nome da coluna no seguinte formato:
      "entity_id_column_name"
    • Para especificar várias colunas ID das entidades, especifique os nomes das colunas no seguinte formato:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...]
  • CRON: expressão de programação cron que representa a frequência de sincronização de dados com a visualização do recurso. Para mais informações, consulte Cron.
  • SERVICE_AGENT_TYPE: configuração da conta de serviço para a visualização de recursos. Os tipos de agente de serviço compatíveis incluem:
    • SERVICE_AGENT_TYPE_PROJECT: use a conta de serviço para envolvidos no projeto para a visualização de recursos. Essa é a configuração padrão.
    • SERVICE_AGENT_TYPE_FEATURE_VIEW: configure e use uma conta de serviço dedicada para a visualização de recursos.
  • EMBEDDING_COLUMN: o nome da coluna que contém os dados de origem para criar o índice de pesquisa vetorial. É necessário fazer isso apenas se você quiser gerenciar incorporações com a visualização de recursos.
  • FILTER_COLUMN_1 e FILTER_COLUMN_2: os nomes das colunas usadas para filtrar os resultados da pesquisa de vetor.
  • CROWDING_COLUMN Opcional: os nomes da coluna que contém os atributos de agrupamento.
  • EMBEDDING_DIMENSION: opcional: o tamanho, expresso como número de dimensões, de um embedding na coluna de embedding.

Método HTTP e URL:

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

Corpo JSON da solicitação:

{
  "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": {}
  }
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$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

Você receberá uma resposta JSON semelhante a esta:

{
  "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"
    }
  }
}

A seguir