Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Cette fonctionnalité est disponible en préversion publique. Les administrateurs d’espace de travail peuvent contrôler l’accès à cette fonctionnalité à partir de la page Aperçus . Consultez Gérer les préversions d’Azure Databricks.
Vous pouvez mettre des Feature Views en ligne de deux façons :
- Service de modèles : déployez un modèle entraîné sur des vues de fonctionnalités. Le point de terminaison récupère automatiquement les valeurs des variables depuis le magasin en ligne, en s’appuyant sur la traçabilité enregistrée au moment où le modèle a été consigné. Utilisez ceci pour fournir les prédictions du modèle.
-
Service des fonctionnalités : déployez un
FeatureSpecqui référence directement les vues de fonctionnalités, sans modèle. Le point de terminaison retourne les valeurs de fonctionnalité recherchées. Utilisez-le lorsqu’une application a besoin de valeurs de fonctionnalités plutôt que de prédictions de modèle.
Les deux approches lisent les valeurs de fonctionnalités précomputées à partir d’un magasin en ligne. Vous devez donc d’abord matérialiser les fonctionnalités d’un magasin en ligne.
Les modèles entraînés à l’aide des caractéristiques de Databricks effectuent automatiquement la traçabilité des caractéristiques qu’ils utilisent pour leur entraînement. Lorsqu’ils sont déployés en tant que points de terminaison de mise en service de modèles, ces modèles utilisent Unity Catalog pour rechercher des fonctionnalités à partir de magasins en ligne.
Permissions
Pour délivrer une fonctionnalité, le principal qui crée le points de terminaison de mise en service de modèles doit disposer de SELECT sur la table Unity Catalog sur laquelle repose la fonctionnalité matérialisée. Les recherches en ligne lisent directement dans la table matérialisée ; ce sont donc les SELECT au niveau de la table qui accordent l’accès. Pour obtenir la description des privilèges, consultez SELECT.
Comme une table matérialisée peut contenir plus d’une fonctionnalité, lui accorder SELECT donne accès à toutes les fonctionnalités de cette table, et pas seulement à celle que vous souhaitez exposer. Avant d’accorder l’accès aux services, vérifiez que chaque fonctionnalité partageant la table peut être partagée avec le principal. Pour limiter l’exposition, matérialisez séparément les caractéristiques sensibles.
Pour accorder cet accès sans résoudre les tables manuellement, utilisez FeatureEngineeringClient.grant_feature_serving_access. En fonction d’un modèle ou d’une spécification de fonctionnalité, il résout chaque fonctionnalité dans sa table en ligne, octroie SELECT (ainsi que USE CATALOGUSE SCHEMA) sur ces tables aux principaux que vous spécifiez et retourne un rapport de chaque table et les fonctionnalités supplémentaires exposées par l’octroi. Passez dry_run=True pour prévisualiser le rapport avant d’accorder l’autorisation.
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",
)
Déployer un point de terminaison de mise en service de modèles
Utilisez un point de terminaison de service de modèle existant ou utilisez le Kit de développement logiciel (SDK) Databricks pour en créer un nouveau. Le modèle doit être inscrit dans le catalogue Unity.
Le code suivant illustre la manière de créer un point de terminaison de mise en service de modèles. Pour plus d'informations, consultez Créer des points d'accès de modèles personnalisés.
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,
)
],
),
)
Interroger le point de terminaison
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"},
],
)
Interroger l'endpoint avec les fonctionnalités de RequestSource
Si le modèle a été entraîné avec des fonctionnalités RequestSource, la charge utile de la requête doit également inclure toutes les colonnes RequestSource. Ces colonnes ont été ajoutées à la signature du modèle MLflow pendant log_model, de sorte que le schéma d’API du point de terminaison reflète les champs de requête requis.
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)
},
],
)
Les clés d’entité sont utilisées pour rechercher les fonctionnalités stockées dans une table à partir du magasin de fonctionnalités en ligne.
RequestSource les colonnes sont transmises directement au modèle.
Vous pouvez aussi utiliser 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"
}
]
}'
Délivrer des fonctionnalités avec un FeatureSpec
Pour diffuser des Feature Views sans modèle, créez un FeatureSpec qui référence les fonctionnalités et déployez-le sur un point de terminaison de diffusion des fonctionnalités. Le point de terminaison retourne les valeurs de fonctionnalité recherchées pour les clés d’entité dans la requête.
Les fonctionnalités doivent être inscrites dans le Unity Catalog et matérialisées dans un magasin en ligne avant de créer le point de terminaison.
Note
Un FeatureSpec qui contient des Feature Views ne peut pas contenir également de définitions FeatureLookup ou FeatureFunction. Les vues de fonctionnalités ne peuvent pas être combinées avec ces définitions dans le même 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,
)
),
)
Interrogez le point de terminaison à l’aide des clés d’entité utilisées pour récupérer les caractéristiques matérialisées :
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
response = w.serving_endpoints.query(
name="transaction-features",
dataframe_records=[{"user_id": "user_123"}],
)
Pour en savoir plus sur les points de terminaison de diffusion des fonctionnalités, consultez les points de terminaison de diffusion des fonctionnalités.