Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Importante
Este recurso está no Public Preview. Os administradores do espaço de trabalho podem controlar o acesso a esse recurso na página Visualizações . Ver Gerir as pré-visualizações de Azure Databricks.
Pode disponibilizar as Visualizações de Destaque online de duas formas:
- Disponibilização de modelos: Implemente um modelo treinado com base em Feature Views. O endpoint consulta automaticamente os valores das funcionalidades na loja online, usando a linhagem registada quando o modelo foi registado. Utilize isto para disponibilizar previsões do modelo.
-
Feature Serving: Implemente um
FeatureSpecque faça referência diretamente às Feature Views, sem um modelo. O endpoint devolve os valores das características consultadas. Use isto quando uma aplicação precisa de valores de funcionalidades em vez de previsões de modelos.
Ambas as abordagens leem valores de funcionalidades pré-computadas de uma loja online, por isso deve primeiro materializar as funcionalidades numa loja online.
Os modelos que são treinados usando funcionalidades do Databricks rastreiam automaticamente a linhagem das características em que foram treinados. Quando implementados como endpoints de serviço de modelos, estes modelos utilizam o Unity Catalog para consultar funcionalidades em lojas online.
Permissions
Para disponibilizar uma funcionalidade, a entidade principal que cria o endpoint de disponibilização do modelo tem de ter SELECT na tabela do Unity Catalog subjacente à funcionalidade materializada. As consultas online leem diretamente da tabela materializada, por isso o nível SELECT da tabela é o que concede o acesso ao serviço. Para a descrição do privilégio, veja SELECT.
Como uma tabela materializada pode conter mais do que uma funcionalidade, conceder SELECT nela concede acesso a todas as funcionalidades dessa tabela, não apenas aquela que pretende servir. Antes de conceder acesso ao serviço, confirme que todas as funcionalidades que partilham a tabela podem ser partilhadas com o principal. Para limitar a exposição, materialize as características sensíveis separadamente.
Para conceder este acesso sem resolver tabelas manualmente, use FeatureEngineeringClient.grant_feature_serving_access. Dado um modelo ou uma especificação de funcionalidade, resolve cada funcionalidade para a respetiva tabela online, concede SELECT (juntamente com USE CATALOG e USE SCHEMA) nessas tabelas às entidades principais que especificar e devolve um relatório de cada tabela e das funcionalidades adicionais que a concessão expõe. Passe dry_run=True para pré-visualizar o relatório antes de conceder.
from databricks.feature_engineering import FeatureEngineeringClient
fe = FeatureEngineeringClient()
# Preview the tables and the features each grant would expose.
report = fe.grant_feature_serving_access(
grant_to=["serving-principal@example.com"],
model_uri="models:/main.ecommerce.fraud_model/1",
dry_run=True,
)
print(report)
# Grant SELECT on the resolved online tables.
fe.grant_feature_serving_access(
grant_to=["serving-principal@example.com"],
model_uri="models:/main.ecommerce.fraud_model/1",
)
Implementar um endpoint de disponibilização de modelo
Use um modelo existente para servir o endpoint, ou utilize o Databricks SDK para criar um novo. O modelo deve estar registado no Catálogo Unity.
O código seguinte mostra como criar um novo endpoint de serviço de modelo. Para mais informações, consulte Configurar endpoints de fornecimento de modelos personalizados.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import EndpointCoreConfigInput, ServedEntityInput
w = WorkspaceClient()
endpoint_name = "fraud-detection-endpoint"
model_name = "main.ecommerce.fraud_model"
w.serving_endpoints.create(
name=endpoint_name,
config=EndpointCoreConfigInput(
name=endpoint_name,
served_entities=[
ServedEntityInput(
entity_name=model_name,
entity_version=1,
max_provisioned_concurrency=4,
min_provisioned_concurrency=0,
)
],
),
)
Consultar o endpoint
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
response = w.serving_endpoints.query(
name="fraud-detection-endpoint",
dataframe_records=[
{"user_id": "user_123", "transaction_time": "2026-03-01T12:00:00"},
],
)
Fazer consulta ao endpoint com as funcionalidades RequestSource
Se o modelo foi treinado com RequestSource características, o payload do pedido deve também incluir todas as RequestSource colunas. Estas colunas foram adicionadas à assinatura do modelo MLflow durante log_model, pelo que o esquema API do endpoint reflete os campos de pedido necessários.
response = w.serving_endpoints.query(
name="fraud-detection-endpoint",
dataframe_records=[
{
"user_id": "user_123",
"transaction_time": "2026-03-01T12:00:00",
"transaction_amount": 275.30, # RequestSource column
"vendor_id": "v_42", # RequestSource column (also used as entity key)
},
],
)
As chaves de entidade são usadas para consultar funcionalidades com tabelas na loja online.
RequestSource as colunas são passadas diretamente para o modelo.
Você também pode usar curl:
curl -X POST "https://<workspace>.cloud.databricks.com/serving-endpoints/<endpoint>/invocations" \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"dataframe_records": [
{
"user_id": "user_123",
"transaction_time": "2026-03-01T12:00:00",
"transaction_amount": 275.30,
"vendor_id": "v_42"
}
]
}'
Funcionalidades do Serve com um FeatureSpec
Para servir Feature Views sem um modelo, crie um FeatureSpec que faça referência às features e implemente-o num endpoint Feature Serving. O endpoint devolve os valores de funcionalidades consultados para as chaves de entidade no pedido.
As funcionalidades devem estar registadas no Unity Catalog e materializadas numa loja online antes de criar o endpoint.
Note
A FeatureSpec que contém Vistas de Funcionalidade também não pode conter definições de FeatureLookup ou FeatureFunction. As Feature Views não podem ser misturadas com essas definições na mesma FeatureSpec.
from databricks.feature_engineering import FeatureEngineeringClient
from databricks.feature_engineering.entities.feature_serving_endpoint import (
EndpointCoreConfig,
ServedEntity,
)
fe = FeatureEngineeringClient()
# 1. Retrieve a registered Feature View
agg_feature = fe.get_feature(full_name="main.ecommerce.amount_sum_sliding_7d_1d")
# 2. Create a FeatureSpec that includes the Feature View
feature_spec_name = "main.ecommerce.transaction_feature_spec"
fe.create_feature_spec(name=feature_spec_name, features=[agg_feature])
# 3. Deploy a Feature Serving endpoint backed by the FeatureSpec
fe.create_feature_serving_endpoint(
name="transaction-features",
config=EndpointCoreConfig(
served_entities=ServedEntity(
feature_spec_name=feature_spec_name,
workload_size="Small",
scale_to_zero_enabled=True,
)
),
)
Consulte o endpoint com as chaves de entidade usadas para consultar as funcionalidades materializadas:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
response = w.serving_endpoints.query(
name="transaction-features",
dataframe_records=[{"user_id": "user_123"}],
)
Para mais informações sobre endpoints de Feature Serving consulte Feature Serving endpoints.