Crie uma instância da vista de funcionalidades

Pode criar uma vista de funcionalidades numa instância da loja online existente. Ao criar uma vista de funcionalidades, pode associar-lhe funcionalidades das seguintes formas:

  • Adicione grupos de atributos e atributos do Feature Registry: associe-os a grupos de atributos e atributos existentes do Feature Registry. Um grupo de funcionalidades especifica a localização da origem de dados do BigQuery. Uma funcionalidade no grupo de funcionalidades aponta para uma coluna de funcionalidades específica nessa origem de dados. Pode associar uma vista de recursos a vários grupos de recursos.

  • Adicione funcionalidades a partir de uma origem do BigQuery: associe diretamente uma origem de dados do BigQuery, como uma tabela ou uma vista do BigQuery, e especifique, pelo menos, uma coluna de ID da entidade.

Depois de criar uma visualização de caraterísticas, o Vertex AI Feature Store sincroniza os valores das caraterísticas mais recentes da origem de dados do BigQuery. Se definir o parâmetro de consulta run_sync_immediately=true, o Vertex AI Feature Store sincroniza os valores das caraterísticas quando cria a visualização de caraterísticas. Caso contrário, o Vertex AI Feature Store sincroniza os valores das funcionalidades de acordo com o agendamento de sincronização especificado para a vista de funcionalidades.

Antes de começar

Autentique o Vertex AI, a menos que já o tenha feito.

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 Python exemplos nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais predefinidas da aplicação com as suas credenciais de utilizador.

    Instale a CLI Google Cloud.

    Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    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.

Para mais informações, consulte Set up authentication for a local development environment.

REST

Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

    Instale a CLI Google Cloud.

    Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

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

Sincronize dados de atributos numa vista de atributos

O Vertex AI Feature Store pode atualizar ou sincronizar os valores das caraterísticas da origem de dados do BigQuery com a visualização de caraterísticas. Pode especificar o tipo de sincronização de dados para uma visualização de caraterísticas através do parâmetro FeatureView.sync_config.

O Vertex AI Feature Store suporta os seguintes tipos de sincronização de dados:

  • Sincronização de dados agendada: pode especificar a programação ou a frequência da sincronização de dados. Pode escolher esta sincronização de dados agendada para uma vista de funcionalidades, independentemente do tipo de publicação online especificado para a instância da loja online.

    Se a vista de funcionalidades estiver configurada para usar a sincronização de dados agendada, pode optar por ignorar a espera até à próxima operação de sincronização agendada, iniciando manualmente a sincronização de dados. Para mais informações sobre como acionar manualmente uma sincronização de dados, consulte o artigo Sincronize dados de funcionalidades com a loja online.

    Durante a publicação online, se quiser publicar apenas os valores de caraterísticas mais recentes, incluindo valores nulos, tem de usar a seguinte configuração:

    1. Registe a sua origem de dados de funcionalidades criando um grupo de funcionalidades com o parâmetro dense definido como true.

    2. Escolha o serviço online do Bigtable quando criar a instância da loja online.

    3. Escolha a sincronização de dados agendada quando criar as suas visualizações de elementos.

  • Sincronização contínua de dados: os dados das funcionalidades são atualizados sempre que os dados das funcionalidades na origem de dados do BigQuery são atualizados. Pode escolher este tipo de sincronização de dados para uma vista de funcionalidades apenas se forem cumpridas todas as seguintes condições:

    • A instância da loja online está configurada para o serviço online do Bigtable.

    • A visualização de funcionalidades está associada a grupos de funcionalidades e recursos de funcionalidades.

    • A origem de dados do BigQuery está localizada numa das seguintes regiões:

      • eu

      • us

      • us-central1

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

    • Não pode atualizar uma vista de elementos se selecionar a sincronização contínua de dados para a mesma.

    • Apenas os novos registos de atributos são sincronizados a partir da origem de dados do BigQuery. A sincronização contínua de dados não sincroniza registos de funcionalidades que atualiza ou elimina no BigQuery.

    • O grupo de funcionalidades na origem do Feature Registry tem de ter uma tabela do BigQuery como origem.

Otimize os custos durante a sincronização de dados agendada

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

  • Não configure o agendamento de sincronização para ser executado com mais frequência do que a frequência com que se espera que os dados mudem na origem do BigQuery.

  • Otimize o tamanho da origem de dados de atributos no BigQuery. Ao criar a vista de funcionalidades, inclua apenas os dados de que precisa para a publicação online.

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

  • Ao definir as opções de escalabilidade para a loja online, defina max_node_count para um valor suficientemente elevado para abranger cargas elevadas durante uma sincronização de dados.

  • Agende a sincronização para diferentes vistas de funcionalidades em momentos diferentes na mesma loja online.

  • Se a sua tabela do BigQuery contiver dados históricos extensos, considere particionar a tabela usando datas/horas e especificar um intervalo de tempo para obter os dados das caraterísticas. Isto minimiza a obtenção de dados de funcionalidades obsoletos durante a sincronização.

  • A utilização do Bigtable aumenta durante as sincronizações de dados. Para visualizações de funcionalidades criadas em lojas online para o serviço online do Bigtable, agende tarefas de sincronização durante as horas de menor atividade para um melhor desempenho.

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

Cada visualização de funcionalidades usa uma conta de serviço para aceder aos dados de origem no BigQuery durante a sincronização. O Vertex AI Feature Store atribui a função de gestão de identidade e de acesso (IAM) de visualizador de dados do BigQuery a esta conta de serviço.

Por predefinição, uma vista de funcionalidades usa a conta de serviço configurada para o seu projeto. Com esta configuração, qualquer utilizador com autorização para criar uma visualização de recursos no seu projeto pode aceder aos dados de recursos no BigQuery.

Em alternativa, pode configurar a vista de funcionalidades para usar a sua própria conta de serviço. Em seguida, o Vertex AI Feature Store configura uma conta de serviço dedicada para a visualização de funcionalidades. Com esta configuração, pode restringir o acesso aos dados de recursos no BigQuery ou conceder acesso a utilizadores adicionais. Pode especificar a configuração da conta de serviço através do parâmetro FeatureView.service_agent_type. Tenha em atenção que a Vertex AI Feature Store gera um endereço de email de conta de serviço exclusivo para cada visualização de caraterística configurada para ter uma conta de serviço dedicada.

Se uma vista de recursos estiver configurada para ter uma conta de serviço dedicada, pode ver o endereço de email da conta de serviço de uma das seguintes formas:

Configure a obtenção de vetores para uma vista de funcionalidades

Pode configurar a obtenção de vetores para uma visualização de funcionalidades numa loja online criada para a publicação online otimizada através do parâmetro FeatureView.index_config. Para obter informações sobre como preparar ou atualizar a origem de dados do BigQuery para suportar incorporações incluindo a coluna embedding, consulte as diretrizes de preparação da origem de dados.

Tenha em atenção que só pode configurar a obtenção de vetores e gerir incorporações se a vista de funcionalidades for criada especificando um URI de origem do BigQuery e não a partir de grupos de funcionalidades e funcionalidades do registo de funcionalidades.

Para mais informações sobre como pesquisar os vizinhos mais próximos aproximados usando incorporações no Vertex AI Feature Store, consulte o artigo Pesquise usando incorporações.

Crie uma vista de funcionalidades a partir de grupos de funcionalidades

Pode criar uma vista de funcionalidades com base nos dados de funcionalidades registados através de grupos de funcionalidades e funcionalidades. Para associar várias origens de dados do BigQuery à mesma visualização de propriedades, pode especificar vários grupos de propriedades.

Se criar uma vista de funcionalidades especificando grupos de funcionalidades e funcionalidades:

  • A origem de dados tem de ter uma coluna feature_timestamp e pode conter dados do histórico.

  • O Vertex AI Feature Store disponibiliza apenas os valores de caraterísticas mais recentes com base na data/hora das caraterísticas.

  • Não pode configurar a gestão de incorporações para a vista de funcionalidades.

Crie uma vista de funcionalidades com a configuração da conta de serviço predefinida

Use o exemplo seguinte para criar uma vista de funcionalidades associando vários grupos de funcionalidades sem especificar uma configuração da conta de serviço.

REST

Para criar um recurso FeatureView, envie um pedido POST através do método featureViews.create.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • LOCATION_ID: região onde quer criar a vista de recursos, como us-central1.
  • PROJECT_ID: o ID do seu projeto.
  • FEATUREONLINESTORE_NAME: o nome da instância da loja online onde quer criar a vista de funcionalidades.
  • FEATUREVIEW_NAME: o nome da nova instância de visualização de funcionalidades que quer criar.
  • FEATUREGROUP_NAME_A e FEATUREGROUP_NAME_B: os nomes dos grupos de funcionalidades dos quais quer adicionar funcionalidades à visualização de funcionalidades.
  • FEATURE_ID_A1 e FEATURE_ID_A2: IDs de funcionalidades do grupo de funcionalidades FEATUREGROUP_NAME_A que quer adicionar à visualização de funcionalidades.
  • FEATURE_ID_B1 e FEATURE_ID_B2: IDs de recursos do grupo de recursos FEATUREGROUP_NAME_B que quer adicionar à visualização de recursos.
  • SYNC_CONFIG: introduza uma das seguintes configurações de sincronização para a vista de funcionalidades:
    • Para usar a sincronização de dados agendada, 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 vista de recursos. Para mais informações, consulte cron.
    • Para usar a sincronização de dados contínua, introduza o seguinte:
      "continuous": true Só pode usar a sincronização de dados contínua se a instância da loja online que contém a vista de funcionalidades estiver configurada para publicação online 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 do pedido:

{
  "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 o seu pedido, escolha uma destas opções:

curl

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

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

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

$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

Deve receber uma resposta JSON semelhante à seguinte:

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

Crie uma vista de funcionalidades que use uma conta de serviço dedicada

Use o exemplo seguinte para criar uma vista de funcionalidades a partir de grupos de funcionalidades através da configuração de uma conta de serviço dedicada.

REST

Para criar um recurso FeatureView, envie um pedido POST através do método featureViews.create.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • LOCATION_ID: região onde quer criar a vista de recursos, como us-central1.
  • PROJECT_ID: o ID do seu projeto.
  • FEATUREONLINESTORE_NAME: o nome da instância da loja online onde quer criar a vista de funcionalidades.
  • FEATUREVIEW_NAME: o nome da nova instância de visualização de funcionalidades que quer criar.
  • FEATUREGROUP_NAME_A e FEATUREGROUP_NAME_B: os nomes dos grupos de funcionalidades dos quais quer adicionar funcionalidades à visualização de funcionalidades.
  • FEATURE_ID_A1 e FEATURE_ID_A2: IDs de funcionalidades do grupo de funcionalidades FEATUREGROUP_NAME_A que quer adicionar à visualização de funcionalidades.
  • FEATURE_ID_B1 e FEATURE_ID_B2: IDs de recursos do grupo de recursos FEATUREGROUP_NAME_B que quer adicionar à visualização de recursos.
  • SYNC_CONFIG: introduza uma das seguintes configurações de sincronização para a vista de funcionalidades:
    • Para usar a sincronização de dados agendada, 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 vista de recursos. Para mais informações, consulte cron.
    • Para usar a sincronização de dados contínua, introduza o seguinte:
      "continuous": true Só pode usar a sincronização de dados contínua se a instância da loja online que contém a vista de funcionalidades estiver configurada para publicação online do Bigtable.
  • SERVICE_AGENT_TYPE: configuração da conta de serviço para a vista de funcionalidades. Para usar uma conta de serviço dedicada para a visualização de recursos, introduza SERVICE_AGENT_TYPE_FEATURE_VIEW.

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 do pedido:

{
  "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 o seu pedido, escolha uma destas opções:

curl

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

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

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

$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

Deve receber uma resposta JSON semelhante à seguinte:

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

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

Se quiser publicar funcionalidades online sem registar a sua origem de dados do BigQuery através de grupos de funcionalidades e funcionalidades, pode criar uma vista de funcionalidades especificando o URI da origem de dados do BigQuery.

Se criar uma vista de funcionalidades especificando a origem de dados:

  • Não pode incluir uma coluna feature_timestamp na tabela ou na vista do BigQuery.

  • Não pode incluir valores de atributos históricos na origem de dados. Cada linha tem de conter um ID da entidade exclusivo.

Crie uma visualização de funcionalidades que use a conta de serviço predefinida e não suporte incorporações

Use os seguintes exemplos para criar uma visualização de caraterísticas que não suporte incorporações, associando diretamente uma origem de dados do BigQuery e sem especificar uma configuração de conta de serviço.

Python

Para saber como instalar ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da 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: o ID do seu projeto.
  • location: região onde quer criar a vista de recursos, como us-central1.
  • existing_feature_online_store_id: o nome da instância da loja online onde quer criar a vista de funcionalidades.
  • feature_view_id: o nome da nova instância de visualização de funcionalidades que quer criar.
  • bq_table_uri: URI da tabela ou vista de origem do BigQuery.
  • entity_id_columns: os nomes das colunas que contêm os IDs das entidades. Pode especificar uma ou várias colunas.
    • Para especificar apenas uma coluna de ID de entidade, especifique o nome da coluna no seguinte formato:
      "entity_id_column_name".
    • Para especificar várias colunas de ID de 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 um pedido POST através do método featureViews.create.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • LOCATION_ID: região onde quer criar a vista de recursos, como us-central1.
  • PROJECT_ID: o ID do seu projeto.
  • FEATUREONLINESTORE_NAME: o nome da instância da loja online onde quer criar a vista de funcionalidades.
  • FEATUREVIEW_NAME: o nome da nova vista de funcionalidades que quer criar.
  • PROJECT_NAME: o nome do seu projeto.
  • DATASET_NAME: o 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. Pode especificar uma ou várias colunas.
    • Para especificar apenas uma coluna de ID da entidade, especifique o nome da coluna no seguinte formato:
      "entity_id_column_name"
    • Para especificar várias colunas de ID de 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 vista de recursos. 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 do pedido:

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

Para enviar o seu pedido, escolha uma destas opções:

curl

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

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

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

$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

Deve receber uma resposta JSON semelhante à seguinte:

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

Crie uma vista de funcionalidades que use a conta de serviço predefinida e suporte incorporações

Use os seguintes exemplos para criar uma visualização de recursos com suporte de incorporação associando diretamente uma origem de dados do BigQuery e com a configuração da conta de serviço predefinida.

Python

Para saber como instalar ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da 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: o ID do seu projeto.
  • location: região onde quer criar a vista de recursos, como us-central1.
  • existing_feature_online_store_id: o nome da instância da loja online onde quer criar a vista de funcionalidades.
  • feature_view_id: o nome da nova instância de visualização de funcionalidades que quer criar.
  • bq_table_uri: URI da tabela ou vista de origem do BigQuery.
  • entity_id_columns: os nomes das colunas que contêm os IDs das entidades. Pode especificar uma ou várias colunas.
    • Para especificar apenas uma coluna de ID de entidade, especifique o nome da coluna no seguinte formato:
      "entity_id_column_name".
    • Para especificar várias colunas de ID de 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 para a pesquisa vetorial. Isto só é necessário se quiser gerir as incorporações com a vista de funcionalidades.
  • embedding_dimensions: opcional. O tamanho, expresso como o número de dimensões, de uma incorporação na coluna de incorporação.

REST

Para criar um recurso FeatureView, envie um pedido POST através do método featureViews.create.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • LOCATION_ID: região onde quer criar a vista de recursos, como us-central1.
  • PROJECT_ID: o ID do seu projeto.
  • FEATUREONLINESTORE_NAME: o nome da instância da loja online onde quer criar a vista de funcionalidades.
  • FEATUREVIEW_NAME: o nome da nova vista de funcionalidades que quer criar.
  • PROJECT_NAME: o nome do seu projeto.
  • DATASET_NAME: o 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. Pode especificar uma ou várias colunas.
    • Para especificar apenas uma coluna de ID da entidade, especifique o nome da coluna no seguinte formato:
      "entity_id_column_name"
    • Para especificar várias colunas de ID de 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 vista de recursos. Para mais informações, consulte cron.
  • EMBEDDING_COLUMN: o nome da coluna que contém os dados de origem para criar o índice para a pesquisa vetorial. Isto só é necessário se quiser gerir as incorporações com a vista de funcionalidades.
  • FILTER_COLUMN_1 e FILTER_COLUMN_2: opcional: os nomes das colunas usadas para filtrar os resultados da pesquisa vetorial.
  • CROWDING_COLUMN: opcional: o nome da coluna que contém os atributos de multidão.
  • EMBEDDING_DIMENSION: opcional: o tamanho, expresso como número de dimensões, de uma incorporação na coluna de incorporação.

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 do pedido:

{
  "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 o seu pedido, escolha uma destas opções:

curl

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

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

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

$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

Deve receber uma resposta JSON semelhante à seguinte:

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

Crie uma visualização de funcionalidades com uma conta de serviço dedicada e sem incorporação da gestão

Use o exemplo seguinte para criar uma visualização de recursos sem incorporar suporte associando diretamente uma origem de dados do BigQuery e especificando uma configuração de conta de serviço.

REST

Para criar um recurso FeatureView com suporte para incorporações, envie um pedido POST através do método featureViews.create e especifique o parâmetro FeatureView.index_config. Tenha em atenção que só pode usar a gestão de incorporação se a loja online estiver configurada para publicação online otimizada.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • LOCATION_ID: região onde quer criar a vista de recursos, como us-central1.
  • PROJECT_ID: o ID do seu projeto.
  • FEATUREONLINESTORE_NAME: o nome da instância da loja online onde quer criar a vista de funcionalidades.
  • FEATUREVIEW_NAME: o nome da nova vista de funcionalidades que quer criar.
  • PROJECT_NAME: o nome do seu projeto.
  • DATASET_NAME: o 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. Pode especificar uma ou várias colunas.
    • Para especificar apenas uma coluna de ID da entidade, especifique o nome da coluna no seguinte formato:
      "entity_id_column_name"
    • Para especificar várias colunas de ID de 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 vista de recursos. Para mais informações, consulte cron.
  • SERVICE_AGENT_TYPE: configuração da conta de serviço para a vista de funcionalidades. Para usar uma conta de serviço dedicada para a visualização de recursos, introduza SERVICE_AGENT_TYPE_FEATURE_VIEW.

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 do pedido:

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

Para enviar o seu pedido, escolha uma destas opções:

curl

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

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

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

$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

Deve receber uma resposta JSON semelhante à seguinte:

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

Crie uma visualização de funcionalidades com gestão de incorporações e uma conta de serviço dedicada

Use o exemplo seguinte para criar uma visualização de funcionalidades com suporte de incorporação associando diretamente uma origem de dados do BigQuery e especificando uma configuração de conta de serviço.

REST

Para criar um recurso FeatureView com suporte para incorporações, envie um pedido POST através do método featureViews.create e especifique o parâmetro FeatureView.index_config. Tenha em atenção que só pode usar a gestão de incorporação se a loja online estiver configurada para publicação online otimizada.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • LOCATION_ID: região onde quer criar a vista de recursos, como us-central1.
  • PROJECT_ID: o ID do seu projeto.
  • FEATUREONLINESTORE_NAME: o nome da instância da loja online onde quer criar a vista de funcionalidades.
  • FEATUREVIEW_NAME: o nome da nova vista de funcionalidades que quer criar.
  • PROJECT_NAME: o nome do seu projeto.
  • DATASET_NAME: o 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. Pode especificar uma ou várias colunas.
    • Para especificar apenas uma coluna de ID da entidade, especifique o nome da coluna no seguinte formato:
      "entity_id_column_name"
    • Para especificar várias colunas de ID de 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 vista de recursos. Para mais informações, consulte cron.
  • SERVICE_AGENT_TYPE: configuração da conta de serviço para a vista de funcionalidades. Para usar uma conta de serviço dedicada para a visualização de recursos, introduza SERVICE_AGENT_TYPE_FEATURE_VIEW.
  • EMBEDDING_COLUMN: o nome da coluna que contém os dados de origem para criar o índice para a pesquisa vetorial. Isto só é necessário se quiser gerir as incorporações com a vista de funcionalidades.
  • FILTER_COLUMN_1 e FILTER_COLUMN_2: opcional: os nomes das colunas usadas para filtrar os resultados da pesquisa vetorial.
  • CROWDING_COLUMN: opcional: o nome da coluna que contém os atributos de multidão.
  • EMBEDDING_DIMENSION: opcional: o tamanho, expresso como número de dimensões, de uma incorporação na coluna de incorporação.

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 do pedido:

{
  "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 o seu pedido, escolha uma destas opções:

curl

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

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

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

$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

Deve receber uma resposta JSON semelhante à seguinte:

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

O que se segue?