Criar um grupo de elementos

É possível criar um grupo de recursos para registrar uma tabela ou visualização do BigQuery que contenha os dados dos recursos.

Para qualquer tabela ou visualização do BigQuery associada a um grupo de recursos, é necessário garantir o seguinte:

Depois de criar um grupo de recursos e associar a fonte de dados do BigQuery, crie recursos para associar às colunas na fonte de dados. É opcional especificar uma fonte de dados ao criar o grupo de recursos. No entanto, você precisa especificar uma fonte de dados antes de criar os recursos.

Registrar sua fonte de dados usando recursos e grupos de recursos tem as seguintes vantagens:

  • É possível definir uma visualização de atributos para veiculação on-line usando colunas de atributos específicas de várias fontes de dados do BigQuery.

  • Você pode formatar seus dados como uma série temporal especificando uma coluna de carimbo de data/hora do recurso. O Vertex AI Feature Store exibe apenas os valores de atributos mais recentes dos dados de recursos e exclui valores históricos.

  • É possível descobrir a origem do BigQuery como a fonte de dados de recurso associado quando você pesquisa o recurso do grupo de atributos no Data Catalog.

  • É possível configurar o monitoramento de recursos para extrair estatísticas de recursos e detectar deslocamentos.

Configurar a conta de serviço para um grupo de recursos

Um grupo de recursos usa uma conta de serviço para acessar os dados de origem no BigQuery. 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, um grupo de recursos usa a conta de serviço configurada para o projeto. Com essa configuração, qualquer usuário com permissão para criar um grupo de recursos no projeto pode acessar os dados do recurso no BigQuery.

Como alternativa, configure o grupo de recursos para usar a própria conta de serviço. O Vertex AI Feature Store configura uma conta de serviço dedicada para o grupo 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 FeatureGroup.service_agent_type para especificar a configuração da conta de serviç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. 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, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.

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.

    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.

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

Criar um grupo de recursos com a configuração padrão da conta de serviço

Use os exemplos a seguir para criar um grupo de recursos com a configuração padrão da conta de serviço e associar uma fonte de dados do BigQuery.

Console

Use as instruções a seguir para criar um grupo de recursos usando o console do Google Cloud.

  1. Na seção Vertex AI do console do Google Cloud, acesse a página Feature Store.

    Acessar a página da Feature Store

  2. Na seção Grupos de recursos, clique em Criar para abrir o painel Informações básicas na página Criar grupo de recursos.

  3. Especifique o Nome do grupo de recursos.

  4. Opcional: para adicionar rótulos, clique em Adicionar rótulo e especifique o nome e o valor do rótulo. É possível adicionar vários rótulos a um grupo de recursos.

  5. No campo Caminho do BigQuery, clique em Procurar para selecionar a tabela ou visualização de origem do BigQuery a ser associada ao grupo de recursos.

  6. Na lista Coluna de ID da entidade, selecione as colunas de ID da entidade da tabela ou visualização de origem do BigQuery.

    Isso é opcional se a tabela ou visualização de origem do BigQuery tiver uma coluna chamada entity_id. Nesse caso, se você não selecionar uma coluna de ID da entidade, o grupo de recursos vai usar a coluna entity_id como a coluna de ID da entidade padrão.

  7. Clique em Continuar.

  8. No painel Registrar, clique em uma das seguintes opções para indicar se você quer adicionar recursos ao novo grupo de recursos:

    • Incluir todas as colunas da tabela do BigQuery: crie recursos no grupo de recursos para todas as colunas na tabela ou visualização de origem do BigQuery.

    • Inserir recursos manualmente: crie recursos com base em colunas específicas na origem do BigQuery. Para cada recurso, insira um Nome do recurso e clique no nome da coluna de origem do BigQuery correspondente na lista.

      Para adicionar mais elementos, clique em Adicionar outro recurso.

    • Criar um grupo de recursos vazio: cria o grupo de recursos sem adicionar funcionalidades a ele.

  9. Clique em Criar.

SDK da Vertex AI para Python

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


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


def create_feature_group_sample(
    project: str,
    location: str,
    feature_group_id: str,
    bq_table_uri: str,
    entity_id_columns: List[str],
):
    aiplatform.init(project=project, location=location)
    fg = feature_store.FeatureGroup.create(
        name=feature_group_id,
        source=feature_store.utils.FeatureGroupBigQuerySource(
            uri=bq_table_uri, entity_id_columns=entity_id_columns
        ),
    )
    return fg

  • project: o ID do projeto.
  • location: região em que você quer criar o grupo de recursos, como us-central1.
  • feature_group_id: o nome do novo grupo de recursos que você quer criar.
  • bq_table_uri: URI da tabela de origem ou visualização do BigQuery que você quer registrar para o grupo de recursos.
  • 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 FeatureGroup, envie uma solicitação POST usando o método featureGroups.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 o grupo de recursos, como us-central1.
  • 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", ...].
  • PROJECT_ID: o ID do projeto.
  • FEATUREGROUP_NAME: o nome do novo grupo de recursos que você quer criar.
  • BIGQUERY_SOURCE_URI: URI da tabela de origem ou visualização do BigQuery que você quer registrar para o grupo de recursos.
  • TIMESTAMP_COLUMN: opcional. Especifique o nome da coluna que contém os carimbos de data/hora do recurso na tabela ou visualização de origem do BigQuery.
    É necessário especificar o nome da coluna de carimbo de data/hora somente se os dados estiverem formatados como uma série temporal e a coluna que contém os carimbos de data/hora do recurso não tiver o nome feature_timestamp.
  • STATIC_DATA_SOURCE: opcional. Insira true se os dados não estiverem formatados como uma série temporal. A configuração padrão é false.
  • DENSE: opcional. Indica como o Vertex AI Feature Store processa valores nulos ao exibir dados de visualizações de recursos associadas ao grupo de recursos:
    • false: é a configuração padrão. A Feature Store da Vertex AI mostra apenas os valores de atributos não nulos mais recentes. Se o valor mais recente de um recurso for nulo, o Vertex AI Feature Store vai exibir o valor histórico não nulo mais recente. No entanto, se os valores atuais e históricos desse recurso forem nulos, o Feature Store da Vertex AI vai exibir nulo como o valor do recurso.
    • true: para visualizações de recursos com sincronização de dados programada, a Feature Store da Vertex AI exibe apenas os valores de recursos mais recentes, incluindo valores nulos. Para visualizações de recursos com sincronização contínua de dados, a Feature Store da Vertex AI mostra apenas os valores de atributos não nulos mais recentes. No entanto, se os valores atuais e históricos do recurso forem nulos, o Feature Store da Vertex AI vai usar nulo como o valor do recurso. Para mais informações sobre os tipos de sincronização de dados e como configurar o tipo de sincronização de dados em uma visualização de recursos, consulte Sincronizar os dados em uma visualização de recursos.

Método HTTP e URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups?feature_group_id=FEATUREGROUP_NAME

Corpo JSON da solicitação:

{
  "big_query": {
    "entity_id_columns": "ENTITY_ID_COLUMNS",
    "big_query_source": {
      "input_uri": "BIGQUERY_SOURCE_URI",
    }
    "time_series": {
      "timestamp_column": ""TIMESTAMP_COLUMN"",
    },
    "static_data_source": STATIC_DATA_SOURCE,
    "dense": DENSE
  }
}

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/featureGroups?feature_group_id=FEATUREGROUP_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/featureGroups?feature_group_id=FEATUREGROUP_NAME" | Select-Object -Expand Content

Você receberá uma resposta JSON semelhante a esta:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.UpdateFeatureGroupOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-18T03:00:13.060636Z",
      "updateTime": "2023-09-18T03:00:13.060636Z"
    }
  }
}

Criar um grupo de recursos especificando uma configuração de conta de serviço

Use os exemplos a seguir para criar um grupo de recursos de uma fonte de dados do BigQuery especificando uma configuração de conta de serviço.

REST

Para criar um recurso FeatureGroup, envie uma solicitação POST usando o método featureGroups.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 o grupo de recursos, como us-central1.
  • SERVICE_AGENT_TYPE: configuração da conta de serviço para o grupo de recursos. Para usar uma conta de serviço dedicada para o grupo de recursos, digite SERVICE_AGENT_TYPE_FEATURE_GROUP.
  • SERVICE_ACCOUNT_EMAIL: o endereço de e-mail da conta de serviço que você quer usar para o grupo de recursos. Especifique o endereço de e-mail da conta de serviço somente se você usar o tipo de agente de serviço SERVICE_AGENT_TYPE_FEATURE_GROUP.
  • PROJECT_ID: o ID do projeto.
  • 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", ...].
  • FEATUREGROUP_NAME: o nome do novo grupo de recursos que você quer criar.
  • BIGQUERY_SOURCE_URI: URI da tabela de origem ou visualização do BigQuery que você quer registrar para o grupo de recursos.
  • TIMESTAMP_COLUMN: opcional. Especifique o nome da coluna que contém os carimbos de data/hora do recurso na tabela ou visualização de origem do BigQuery.
    É necessário especificar o nome da coluna de carimbo de data/hora somente se os dados estiverem formatados como uma série temporal e a coluna que contém os carimbos de data/hora do recurso não tiver o nome feature_timestamp.
  • STATIC_DATA_SOURCE: opcional. Insira true se os dados não estiverem formatados como uma série temporal. A configuração padrão é false.
  • DENSE: opcional. Indica como o Vertex AI Feature Store processa valores nulos ao exibir dados de visualizações de recursos associadas ao grupo de recursos:
    • false: é a configuração padrão. A Feature Store da Vertex AI mostra apenas os valores de atributos não nulos mais recentes. Se o valor mais recente de um recurso for nulo, o Vertex AI Feature Store vai exibir o valor histórico não nulo mais recente. No entanto, se os valores atuais e históricos desse recurso forem nulos, o Feature Store da Vertex AI vai exibir nulo como o valor do recurso.
    • true: para visualizações de recursos com sincronização de dados programada, a Feature Store da Vertex AI exibe apenas os valores de recursos mais recentes, incluindo valores nulos. Para visualizações de recursos com sincronização contínua de dados, a Feature Store da Vertex AI mostra apenas os valores de atributos não nulos mais recentes. No entanto, se os valores atuais e históricos do recurso forem nulos, o Feature Store da Vertex AI vai usar nulo como o valor do recurso. Para mais informações sobre os tipos de sincronização de dados e como configurar o tipo de sincronização de dados em uma visualização de recursos, consulte Sincronizar os dados em uma visualização de recursos.

Método HTTP e URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups?feature_group_id=FEATUREGROUP_NAME

Corpo JSON da solicitação:

{
  "service_agent_type": "SERVICE_AGENT_TYPE",
  "service_account_email": "SERVICE_ACCOUNT_EMAIL",
  "big_query": {
    "entity_id_columns": "ENTITY_ID_COLUMNS",
    "big_query_source": {
      "input_uri": "BIGQUERY_SOURCE_URI",
    }
    "time_series": {
      "timestamp_column": ""TIMESTAMP_COLUMN"",
    },
    "static_data_source": STATIC_DATA_SOURCE,
    "dense": DENSE
  }
}

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/featureGroups?feature_group_id=FEATUREGROUP_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/featureGroups?feature_group_id=FEATUREGROUP_NAME" | Select-Object -Expand Content

Você receberá uma resposta JSON semelhante a esta:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.UpdateFeatureGroupOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-18T03:00:13.060636Z",
      "updateTime": "2023-09-18T03:00:13.060636Z"
    }
  }
}

A seguir