Disponibilize Recurso views
Visualização
Esse recurso está em Prévia Pública. Os administradores do espaço de trabalho podem controlar o acesso a esse recurso na página Pré-visualizações . Consulte Gerenciar prévias do Databricks.
Você pode disponibilizar as Views de Recurso online de duas maneiras:
- Servindo modelo: Implantado um modelo que foi treinado em Recurso Views. O endpoint busca automaticamente os valores de recursos no armazenamento online, usando a linhagem rastreada quando o modelo foi registrado. Use isto para disponibilizar previsões de modelo.
- Feature Serving: Implante uma que faça referência direta a recurso view, sem um
FeatureSpecmodelo. O endpoint retorna os valores de recurso pesquisados. Use isso quando um aplicativo precisar de valores de recurso em vez de previsões de modelo.
Ambas as abordagens leem valores de recursos pré-calculados de um armazenamento online, então você deve primeiro materializar os recursos em um armazenamento online.
Os modelos treinados usando recursos do Databricks rastreiam automaticamente a linhagem até o recurso em que foram treinados. Quando implantados como endpoints de modelos de serviço, esses modelos usam Unity Catalog para buscar recursos em lojas online.
Permissões
Para disponibilizar um recurso, a entidade que cria o endpoint de servindo modelo deve ter SELECT na tabela do Unity Catalog que apoia o recurso materializado. Pesquisas online leem diretamente da tabela materializada, então, SELECT em nível de tabela é o que concede acesso à disponibilização. Para a descrição do privilégio, consulte SELECT.
Como uma tabela materializada pode conter mais de um recurso, conceder SELECT nela concede acesso a cada recurso nessa tabela, e não apenas àquele que você pretende disponibilizar. Antes de conceder acesso de disponibilização, confirme que cada recurso de compartilhamento da tabela pode ser compartilhado com a entidade principal. Para limitar a exposição, materialize recursos confidenciais separadamente.
Para conceder este acesso sem resolver as tabelas manualmente, use FeatureEngineeringClient.grant_feature_serving_access. Dada uma especificação de modelo ou recurso, ela resolve cada recurso para sua tabela online, concede SELECT (juntamente com USE CATALOG e USE SCHEMA) nessas tabelas aos principais que você especificar e retorna um relatório de cada tabela e os recursos adicionais que a concessão expõe. Passe dry_run=True para 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",
)
implantou um modelo endpoint
Utilize um endpoint de modelo de serviço existente ou use o SDK Databricks para criar um novo. O modelo deve ser registrado no Unity Catalog.
O código a seguir mostra como criar um novo endpoint servindo modelo. Para obter mais informações, consulte Criar endpoint de modelo de navegação personalizado.
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"},
],
)
Consulte o endpoint com o recurso RequestSource
Se o modelo foi treinado com recurso RequestSource , a carga útil da solicitação também deve incluir todas as colunas RequestSource . Essas colunas foram adicionadas à assinatura do modelo MLflow durante log_model, portanto, o esquema da API do endpoint reflete os campos de solicitação 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 buscar recursos baseados em tabelas no armazenamento online. As colunas RequestSource 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"
}
]
}'
Disponibilizar recursos com um FeatureSpec
Para disponibilizar Feature Views sem um modelo, crie um FeatureSpec que faça referência aos recursos e implante-o em um endpoint de Feature Serving. O endpoint retorna os valores de recurso pesquisados para as keys de entidade na solicitação.
Os recursos devem ser registrados no Unity Catalog e materializados em um armazenamento online antes de você criar o endpoint.
A FeatureSpec que contém recurso Views não pode também conter definições de FeatureLookup ou FeatureFunction. Recurso views não podem ser misturadas com essas definições no mesmo 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 pesquisar os recursos materializados:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
response = w.serving_endpoints.query(
name="transaction-features",
dataframe_records=[{"user_id": "user_123"}],
)
Para saber mais sobre os endpoints de Feature Serving, consulte endpoints de Feature Serving.