Pular para o conteúdo principal

O que é o Databricks Feature Serving?

Databricks Feature Serving disponibiliza os dados da plataforma Databricks para modelos ou aplicativos implantados fora do site Databricks. Feature Serving O ponto de extremidade é automaticamente escalonado para se ajustar ao tempo do tráfego real e fornecer um serviço de alta disponibilidade e baixa latência para servir recursos. Esta página descreve como configurar e usar o Feature Serving. Para obter um passo a passo em tutorial, consulte implantado e consulte um Feature Serving endpoint .

Quando o senhor usa o site Mosaic AI Model Serving para atender a um modelo que foi criado usando o recurso do site Databricks, o modelo procura e transforma automaticamente o recurso para solicitações de inferência. Com o Databricks Feature Serving, o senhor pode servir dados estruturados para aplicativos de geração aumentada de recuperação (RAG), bem como recursos necessários para outros aplicativos, como modelos servidos fora do Databricks ou qualquer outro aplicativo que exija recursos baseados em dados no Unity Catalog.

Quando usar Feature Serving

Por que usar o Feature Serving?

Databricks Feature Serving oferece uma única interface que atende a recursos pré-materializados e sob demanda. Também inclui os seguintes benefícios:

  • Simplicidade. A Databricks cuida da infraestrutura. Com uma única chamada de API, a Databricks cria um ambiente de serviço pronto para produção.
  • Alta disponibilidade e escalabilidade. Feature Serving aumenta e diminui automaticamente para se ajustar ao volume de solicitações de atendimento.
  • Segurança. são implantados em um limite de rede seguro e usam o site compute dedicado, que termina quando o endpoint é excluído ou reduzido a zero.

Requisitos

  • Databricks Runtime 14.2 ML ou acima.
  • Para usar a API do Python, o Feature Serving requer o site databricks-feature-engineering versão 0.1.2 ou acima, que está incorporado no Databricks Runtime 14.2 ML. Para versões anteriores do Databricks Runtime ML, instale manualmente a versão necessária usando %pip install databricks-feature-engineering>=0.1.2. Se estiver usando um notebook Databricks, o senhor deverá reiniciar o kernel Python executando este comando em uma nova célula: dbutils.library.restartPython().
  • Para usar o Databricks SDK, Feature Serving requer databricks-sdk versão 0.18.0 ou acima. Para instalar manualmente a versão necessária, use %pip install databricks-sdk>=0.18.0. Se estiver usando um notebook Databricks, o senhor deverá reiniciar o kernel Python executando este comando em uma nova célula: dbutils.library.restartPython().

Databricks Feature Serving fornece uma interface de usuário e várias opções programáticas para criar, atualizar, consultar e excluir pontos de extremidade. Este artigo inclui instruções para cada uma das opções a seguir:

  • IU da Databricks
  • API REST
  • API do Python
  • SDK da Databricks

Para usar o REST API ou MLflow Deployments SDK, o senhor deve ter um token Databricks API .

important

Como prática recomendada de segurança para cenários de produção, a Databricks recomenda que o senhor use tokens OAuth máquina a máquina para autenticação durante a produção.

Para testes e desenvolvimento, o site Databricks recomenda o uso de tokens de acesso pessoal pertencentes à entidade de serviço em vez de usuários do site workspace. Para criar tokens o site para uma entidade de serviço, consulte gerenciar tokens para uma entidade de serviço.

Autenticação para Feature Serving

Para obter informações sobre autenticação, consulte Autorização de acesso a Databricks recurso.

Crie um FeatureSpec

O site FeatureSpec é um conjunto de recursos e funções definido pelo usuário. O senhor pode combinar recurso e funções em um FeatureSpec. FeatureSpecs são armazenados e gerenciados pelo site Unity Catalog e aparecem no Catalog Explorer.

As tabelas especificadas em um FeatureSpec devem ser publicadas em uma tabela on-line ou em um armazenamento on-line de terceiros. Consulte Use online tables for tempo real Feature Serving ou Third-party online stores.

O senhor deve usar o pacote databricks-feature-engineering para criar um FeatureSpec.

Python
from databricks.feature_engineering import (
FeatureFunction,
FeatureLookup,
FeatureEngineeringClient,
)

fe = FeatureEngineeringClient()

features = [
# Lookup column `average_yearly_spend` and `country` from a table in UC by the input `user_id`.
FeatureLookup(
table_name="main.default.customer_profile",
lookup_key="user_id",
feature_names=["average_yearly_spend", "country"]
),
# Calculate a new feature called `spending_gap` - the difference between `ytd_spend` and `average_yearly_spend`.
FeatureFunction(
udf_name="main.default.difference",
output_name="spending_gap",
# Bind the function parameter with input from other features or from request.
# The function calculates a - b.
input_bindings={"a": "ytd_spend", "b": "average_yearly_spend"},
),
]

# Create a `FeatureSpec` with the features defined above.
# The `FeatureSpec` can be accessed in Unity Catalog as a function.
fe.create_feature_spec(
name="main.default.customer_features",
features=features,
)

Criar um endpoint

O FeatureSpec define o endpoint. Para obter mais informações, consulte Create custom servindo modelo endpoint, a documentação Python API ou a documentaçãoDatabricks SDK para obter detalhes.

nota

Para cargas de trabalho que são sensíveis à latência ou que exigem altas consultas por segundo, a Servindo Modelo oferece otimização de rota no endpoint personalizado da Servindo Modelo, consulte Configurar otimização de rota no endpoint de serviço.

Bash
curl -X POST -u token:$DATABRICKS_API_TOKEN ${WORKSPACE_URL}/api/2.0/serving-endpoints \
-H 'Content-Type: application/json' \
-d '"name": "customer-features",
"config": {
"served_entities": [
{
"entity_name": "main.default.customer_features",
"workload_size": "Small",
"scale_to_zero_enabled": true
}
]
}'

Para ver o endpoint, clique em Serving na barra lateral esquerda da interface do usuário do Databricks. Quando o estado é Ready (Pronto ), o site endpoint está pronto para responder às consultas. Para saber mais sobre o Mosaic AI Model Serving, consulte Mosaic AI Model Serving.

Salvar o DataFrame ampliado na tabela de inferência

Para endpoints criados a partir de fevereiro de 2025, o senhor pode configurar o modelo de serviço endpoint para log o DataFrame aumentado que contém os valores de recurso pesquisados e os valores de retorno de função. O DataFrame é salvo na tabela de inferência do modelo atendido.

Para obter instruções sobre como definir essa configuração, consulte log recurso lookup DataFrames to inference tables.

Para obter informações sobre tabelas de inferência, consulte Tabelas de inferência para modelos de monitoramento e depuração.

Obter um endpoint

O senhor pode usar o SDK da Databricks ou a API do Python para obter os metadados e o status de um endpoint.

Python
endpoint = workspace.serving_endpoints.get(name="customer-features")
# print(endpoint)

Obter o esquema de um endpoint

Você pode usar

o REST API para obter o esquema de um endpoint. Para obter mais informações sobre o esquema endpoint, consulte Get a servindo modelo endpoint schema.

Bash
ACCESS_TOKEN=<token>
ENDPOINT_NAME=<endpoint name>

curl "https://example.databricks.com/api/2.0/serving-endpoints/$ENDPOINT_NAME/openapi" -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json"

Consultar um endpoint

O senhor pode usar a REST API, o MLflow Deployments SDK ou a Serving UI para consultar um endpoint.

O código a seguir mostra como configurar as credenciais e criar o cliente ao usar o SDK do MLflow Deployments.

  # Set up credentials
export DATABRICKS_HOST=...
export DATABRICKS_TOKEN=...
Python
  # Set up the client
import mlflow.deployments

client = mlflow.deployments.get_deploy_client("databricks")
nota

Como prática recomendada de segurança ao se autenticar com ferramentas, sistemas, scripts e aplicativos automatizados, a Databricks recomenda que você use tokens OAuth.

Se o senhor usar a autenticação de tokens de acesso pessoal, a Databricks recomenda usar o acesso pessoal tokens pertencente à entidade de serviço em vez de usuários workspace. Para criar tokens o site para uma entidade de serviço, consulte gerenciar tokens para uma entidade de serviço.

Consultar um site endpoint usando APIs

Esta seção inclui exemplos de consulta a um endpoint usando a API REST ou o SDK do MLflow Deployments.

Bash
curl -X POST -u token:$DATABRICKS_API_TOKEN $ENDPOINT_INVOCATION_URL \
-H 'Content-Type: application/json' \
-d '{"dataframe_records": [
{"user_id": 1, "ytd_spend": 598},
{"user_id": 2, "ytd_spend": 280}
]}'

Consultar um endpoint usando a UI

O senhor pode consultar um serviço endpoint diretamente da Serving UI. A interface do usuário inclui exemplos de códigos gerados que o senhor pode usar para consultar o endpoint.

  1. Na barra lateral esquerda do site Databricks workspace, clique em Serving .

  2. Clique no endpoint que o senhor deseja consultar.

  3. No canto superior direito da tela, clique em Query endpoint (Consultar ponto de extremidade ).

    Consultar o botão endpoint

  4. Na caixa Request (Solicitação ), digite o corpo da solicitação no formato JSON.

  5. Clique em Enviar solicitação .

JSON
// Example of a request body.
{
"dataframe_records": [
{ "user_id": 1, "ytd_spend": 598 },
{ "user_id": 2, "ytd_spend": 280 }
]
}

A caixa de diálogo do endpoint Query inclui um código de exemplo gerado em curl, Python e SQL. Clique na guia view e copie o código de exemplo.

consulta endpoint diálogo

Para copiar o código, clique no ícone de cópia no canto superior direito da caixa de texto.

botão de cópia na caixa de diálogo da consulta endpoint

Atualizar e endpoint

O senhor pode atualizar um endpoint usando a REST API, o Databricks SDK ou a Serving UI.

Atualize o site endpoint usando APIs

Bash
curl -X PUT -u token:$DATABRICKS_API_TOKEN ${WORKSPACE_URL}/api/2.0/serving-endpoints/<endpoint_name>/config \
-H 'Content-Type: application/json' \
-d '"served_entities": [
{
"name": "customer-features",
"entity_name": "main.default.customer_features_new",
"workload_size": "Small",
"scale_to_zero_enabled": True
}
]'

Atualizar um endpoint usando a UI

Siga estas etapas para usar a Serving UI:

  1. Na barra lateral esquerda do site Databricks workspace, clique em Serving .
  2. Na tabela, clique no nome do endpoint que o senhor deseja atualizar. A tela do endpoint é exibida.
  3. No canto superior direito da tela, clique em Editar endpoint .
  4. Na caixa de diálogo Edit serving endpoint (Editar endpoint de serviço ), edite as configurações do endpoint conforme necessário.
  5. Clique em Atualizar para salvar suas alterações.

atualizar e endpoint

Excluir um endpoint

atenção

Essa ação é irreversível.

O senhor pode excluir um endpoint usando a REST API, o Databricks SDK, a Python API ou a Serving UI.

Excluir um endpoint usando APIs

Bash
curl -X DELETE -u token:$DATABRICKS_API_TOKEN ${WORKSPACE_URL}/api/2.0/serving-endpoints/<endpoint_name>

Excluir um endpoint usando a interface do usuário

Siga estas etapas para excluir um endpoint usando a Serving UI:

  1. Na barra lateral esquerda do site Databricks workspace, clique em Serving .
  2. Na tabela, clique no nome do endpoint que o senhor deseja excluir. A tela do endpoint é exibida.
  3. No canto superior direito da tela, clique no menu de kebab Menu Kebab e selecione Excluir.

excluir um endpoint

Monitorar a integridade de um endpoint

Para obter informações sobre o logs e as métricas disponíveis para o endpoint Feature Serving, consulte Monitorar a qualidade do modelo e a saúde do endpoint.

Controle de acesso

Para obter informações sobre permissões no endpoint Feature Serving, consulte gerenciar permissões em seu modelo de serviço endpoint.

Exemplo de notebook

Este Notebook ilustra como usar o Databricks SDK para criar um Feature Serving endpoint usando Databricks Online Tables.

Feature Serving Exemplo de Notebook com tabelas on-line

Open notebook in new tab