Importação de streaming

A importação de streaming permite que você faça atualizações em tempo real nos valores dos atributos. Esse método é útil quando a prioridade mais recente dos dados disponíveis mais recentes para veiculação on-line é. Por exemplo, é possível importar dados de eventos de streaming e, em alguns segundos, o Vertex AI Feature Store disponibiliza esses dados para cenários de veiculação on-line.

Se você precisar preencher dados ou calcular valores de recursos em lote, use a importação em lote. Em comparação com as solicitações de importação por streaming, as solicitações de importação em lote podem processar payloads maiores, mas levam mais tempo para serem concluídas.

Para informações sobre o carimbo de data/hora do valor do atributo mais antigo que pode ser importado, consulte Vertex AI Feature Store (legado) em Cotas e limites. Não é possível importar valores de atributos para os quais os carimbos de data/hora indicam datas ou horários futuros.

Exemplo de caso de uso:

Uma organização de varejo on-line pode fornecer uma experiência de compra personalizada usando a atividade atual de um usuário. À medida que os usuários navegam no site, você pode capturar as atividades deles em um featurestore e, em seguida, exibir essas informações para previsões on-line. Essa importação e exibição em tempo real podem ajudar você a mostrar recomendações úteis e relevantes aos clientes durante a sessão de compras.

Uso de nós de armazenamento on-line

A gravação de valores de recursos em um armazenamento on-line usa os recursos da CPU do featurestore (nós de armazenamento on-line). Monitore o uso da CPU para verificar se a demanda não excede o fornecimento, o que pode levar a erros de disponibilização. Recomendamos evitar uma taxa de uso de 70% ou menos para evitar esses erros. Se você exceder esse valor regularmente, atualize seu featurestore para aumentar o número de nós ou usar o escalonamento automático. Para mais informações, consulte Gerenciar storestores.

Importação de streaming

Gravar um valor em um atributo específico. O valor do recurso precisa ser incluído como parte da solicitação de importação. Não é possível fazer streaming de dados diretamente de uma fonte de dados.

Se você estiver gravando nos recursos criados recentemente, aguarde alguns minutos antes de fazer isso, porque os novos recursos ainda podem não ter sido propagados. Caso contrário, talvez você veja um erro resource not found.

Só é possível imoprtar valores de atributo para uma entidade por gravação. Para qualquer projeto e região específicos, é possível gravar valores de atributo simultaneamente para várias entidades em, no máximo, dez tipos de entidade diferentes. Esse limite inclui todas as solicitações de importação de streaming para todos os featurestores em um determinado projeto e região. Se você ultrapassar esse limite, o Vertex AI Feature Store pode não gravar todos os seus dados no armazenamento off-line. Se isso ocorrer, o Vertex AI Feature Store (legado) vai registrar o erro no Explorador de registros. Para saber mais, consulte Monitorar erros de gravação no armazenamento off-line para importação de streaming.

REST

Para importar valores de recursos para os recursos atuais, envie uma solicitação POST usando o método featurestores.entityTypes.importFeatureValues. Se os nomes das colunas de dados de origem e os IDs de recurso de destino forem diferentes, inclua o parâmetro sourceField. Observe que featurestores.entityTypes.writeFeatureValues permite importar valores de recursos para apenas uma entidade por vez.

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

  • LOCATION: região onde a featurestore é criada. Por exemplo, us-central1.
  • PROJECT: o ID do projeto.
  • FEATURESTORE_ID: ID do featurestore.
  • ENTITY_TYPE_ID: ID do tipo de entidade.
  • FEATURE_ID: código de um recurso existente na featurestore para o qual os valores serão importados.
  • VALUE_TYPE: o tipo de valor do recurso.
  • VALUE: valor do recurso.
  • TIME_STAMP (opcional): o horário em que o recurso foi gerado. A data e hora precisam estar no formato RFC3339 UTC.

Método HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:writeFeatureValues

Corpo JSON da solicitação:

{
  "payloads": [
    {
      "entityId": "ENTITY_ID",
      "featureValues": {
        "FEATURE_ID": {
          "VALUE_TYPE": VALUE,
          "metadata": {"generate_time": "TIME_STAMP"}
        }
      }
    }
  ]
}

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-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:writeFeatureValues"

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-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:writeFeatureValues" | Select-Object -Expand Content

Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.

Python

Para saber como instalar ou atualizar o 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

def write_feature_values_sample(
    project: str, location: str, entity_type_id: str, featurestore_id: str
):

    aiplatform.init(project=project, location=location)

    my_entity_type = aiplatform.featurestore.EntityType(
        entity_type_name=entity_type_id, featurestore_id=featurestore_id
    )

    my_data = {
        "movie_01": {
            "title": "The Shawshank Redemption",
            "average_rating": 4.7,
            "genre": "Drama",
        },
    }

    my_entity_type.write_feature_values(instances=my_data)

Outras linguagens

É possível instalar e usar as seguintes bibliotecas de cliente do Vertex AI para chamar a API Vertex AI. As bibliotecas de cliente do Cloud oferecem uma experiência otimizada aos desenvolvedores, usando as convenções e os estilos naturais de cada linguagem com suporte.

A seguir