Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Cette fonctionnalité est disponible en préversion publique et est disponible dans les régions suivantes :
westus, westus2, eastus, eastus2, northeurope, westeurope, australiaeast, brazilsouth, canadacentral, centralindia, centralus, southcentralus, southeastasia,uksouth
Les magasins de fonctionnalités Databricks Online sont une solution évolutive hautes performances pour servir les données de fonctionnalités aux applications en ligne et aux modèles Machine Learning en temps réel. Optimisé par Databricks Lakebase, il fournit un accès à faible latence aux données de fonctionnalités à grande échelle tout en conservant la cohérence avec vos tables de fonctionnalités hors connexion.
Les principaux cas d’usage des magasins de fonctionnalités en ligne sont les suivants :
- Servir des fonctionnalités à des applications en temps réel telles que les systèmes de recommandation, la détection des fraudes et les moteurs de personnalisation à l’aide de points de terminaison de service de fonctionnalité.
- Analyse automatique des caractéristiques pour l’inférence en temps réel dans les endpoints de service de modèle.
Requirements
Les Feature Stores Databricks Online nécessitent Databricks Runtime 16.4 LTS ML ou version ultérieure. Vous pouvez également utiliser l'informatique sans serveur.
Pour utiliser databricks Online Feature Stores, vous devez d’abord installer le package. Les lignes de code suivantes doivent être exécutées chaque fois qu’un notebook est exécuté :
%pip install databricks-feature-engineering>=0.13.0
dbutils.library.restartPython()
Créer un magasin en ligne
Lorsque vous créez un magasin en ligne, vous approvisionnez une infrastructure managée hautement disponible pour le service des fonctionnalités en temps réel. Pour plus d’informations, consultez la tarification Lakebase . Pour gérer les coûts, supprimez les magasins en ligne lorsqu’ils ne sont pas utilisés pour le développement et le test.
Pour créer un magasin de fonctionnalités en ligne :
from databricks.feature_engineering import FeatureEngineeringClient
# Initialize the client
fe = FeatureEngineeringClient()
# Create an online store with specified capacity
fe.create_online_store(
name="my-online-store",
capacity="CU_2" # Valid options: "CU_1", "CU_2", "CU_4", "CU_8"
)
Les options de capacité correspondent à différents niveaux de performances « CU_1 », « CU_2 », « CU_4 » et « CU_8 ». Chaque unité de capacité alloue environ 16 Go de RAM à l’instance de base de données, ainsi que toutes les ressources UC et SSD locales associées. L'augmentation de l'échelle augmente ces ressources de manière linéaire. Pour plus d’informations, consultez Gérer la capacité d’instance.
Gérer les magasins en ligne
Le code suivant montre comment récupérer et mettre à jour les magasins en ligne :
# Get information about an existing online store
store = fe.get_online_store(name="my-online-store")
if store:
print(f"Store: {store.name}, State: {store.state}, Capacity: {store.capacity}")
# Update the capacity of an online store
updated_store = fe.update_online_store(
name="my-online-store",
capacity="CU_4" # Upgrade to higher capacity
)
Ajouter des répliques en lecture à un magasin en ligne
Lors de la création ou de la mise à jour d’un magasin en ligne, vous pouvez ajouter des réplicas en lecture au magasin en ligne en spécifiant le read_replica_count paramètre. Le trafic de lecture est automatiquement distribué entre les réplicas en lecture, ce qui réduit la latence et améliore les performances et l'évolutivité pour les charges de travail concurrentes.
Publier une table de fonctionnalités dans un magasin en ligne
Une fois que votre magasin en ligne est à l’état AVAILABLE , vous pouvez publier des tables de fonctionnalités pour les rendre disponibles pour un accès à faible latence. Passez en revue le tableau ci-dessous pour vous assurer que votre table hors connexion source a été créée correctement pour le cas d’usage en temps réel.
| Cas d’utilisation | Créer la table de fonctionnalités hors connexion à l’aide de cette méthode |
|---|---|
| Seules les dernières valeurs de fonctionnalité pour chaque ID d’entité sont disponibles dans le magasin en ligne pour les applications en temps réel. Plusieurs lignes avec la même valeur de clé primaire, mais différentes valeurs de clé de série chronologique peuvent exister dans la source de données hors connexion et seront dédupliquées dans le pipeline de publication. Ce cas est le plus fréquemment utilisé pour les points de terminaison de service de modèle ou de fonctionnalité en ligne. |
Créer une table avec la désignation de série chronologique |
| Les dernières valeurs et toutes les valeurs des caractéristiques des séries chronologiques précédentes de la table offline sont disponibles dans le magasin en ligne pour être accessibles par les applications en temps réel. Toutes les lignes de la table source (hors connexion) sont publiées sans déduplication. Cela est rarement utilisé, mais peut être nécessaire lorsque les points de terminaison interrogent les fonctionnalités par ID d’entité et la date/timestamp exacte pour la vérification des données ou les tests back-testing. |
Créer une table sans désignation de série chronologique |
Conditions préalables à la publication dans des magasins en ligne
Toutes les tables de fonctionnalités (avec ou sans série chronologique) doivent répondre à ces exigences avant la publication :
- Contrainte de clé primaire : obligatoire pour la publication dans le magasin en ligne
- Clés primaires non nullables : les colonnes de clé primaire ne peuvent pas contenir de valeurs NULL
- Flux de données modifié activé : requis pour la synchronisation du magasin en ligne. Voir Activer le flux de données modifiées
-- Enable CDF if not already enabled
ALTER TABLE catalog.schema.your_feature_table
SET TBLPROPERTIES ('delta.enableChangeDataFeed' = 'true');
-- Ensure primary key columns are not nullable
ALTER TABLE catalog.schema.your_feature_table
ALTER COLUMN user_id SET NOT NULL;
Publier une table de fonctionnalités
Pour publier une table de fonctionnalités dans un magasin en ligne :
from databricks.ml_features.entities.online_store import DatabricksOnlineStore
# Get the online store instance
online_store = fe.get_online_store(name="my-online-store")
# Publish the feature table to the online store
fe.publish_table(
online_store=online_store,
source_table_name="catalog_name.schema_name.feature_table_name",
online_table_name="catalog_name.schema_name.online_feature_table_name"
)
L’opération publish_table effectue les opérations suivantes :
- Créez une table dans le magasin en ligne si elle n’existe pas.
- Synchronisez les données de fonctionnalités de la table de fonctionnalités hors connexion vers le magasin en ligne.
- Configurez l’infrastructure nécessaire pour synchroniser le magasin en ligne avec la table hors connexion.
Mettre à jour en continu les fonctionnalités en ligne
Si publish_table est appelée avec streaming=True, la table en ligne est configurée avec un pipeline de diffusion en continu pour mettre à jour le magasin en ligne à mesure que de nouvelles données arrivent dans la table de caractéristiques hors ligne.
Planifier les mises à jour des fonctionnalités en ligne
Pour mettre à jour régulièrement les fonctionnalités d’une table en ligne, créez un travail Lakeflow planifié qui s’exécute publish_table. La tâche actualise automatiquement la table et met à jour de façon incrémentielle les fonctionnalités en ligne. Consultez les offres d'emploi Lakeflow.
Supprimer une table en ligne
Pour supprimer une table en ligne, utilisez la commande DROP TABLE Databricks SQL ou utilisez la commande du Kit de développement logiciel (SDK) Python pour supprimer une table synchronisée.
Note
La suppression de la table en ligne de Unity Catalog annule l’inscription de la table et arrête toutes les actualisations de données. Toutefois, la table reste dans la base de données Postgres sous-jacente. Pour libérer de l’espace dans votre instance de base de données, connectez-vous à l’instance et utilisez la DROP TABLE commande.
Explorer et interroger des fonctionnalités en ligne
Une fois que l’état de votre table publiée est « AVAILABLE », vous pouvez explorer et interroger les données de fonctionnalité de plusieurs façons :
Interface utilisateur du catalogue Unity : accédez à la table en ligne dans Le catalogue Unity pour afficher des exemples de données et explorer le schéma directement dans l’interface utilisateur. Cela offre un moyen pratique d’inspecter vos données de fonctionnalité et de vérifier que le processus de publication s’est terminé correctement.
Éditeur SQL : Pour des requêtes et une exploration de données plus avancées, vous pouvez utiliser l’éditeur SQL pour exécuter des requêtes PostgreSQL sur vos tables de fonctionnalités en ligne. Cela vous permet d’effectuer des requêtes, des jointures et des analyses complexes sur vos données de fonctionnalité. Pour obtenir des instructions détaillées sur l’utilisation de l’éditeur SQL avec des magasins en ligne, consultez Accéder à une instance de base de données à partir de l’éditeur SQL.
Utiliser des fonctionnalités en ligne dans des applications en temps réel
Pour servir des fonctionnalités aux applications et services en temps réel, créez un point de terminaison de distribution de fonctionnalités. Consultez les points de terminaison de service de fonction.
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, ces modèles utilisent le catalogue Unity pour rechercher les fonctionnalités appropriées dans les magasins en ligne. Pour plus d’informations, consultez Utiliser des fonctionnalités dans les flux de travail en ligne.
Supprimer un magasin en ligne
Pour supprimer un magasin en ligne :
fe.delete_online_store(name="my-online-store")
Note
La suppression d’une table publiée en ligne peut entraîner des défaillances inattendues dans les dépendances en aval. Avant de supprimer une table, vous devez vous assurer que ses fonctionnalités en ligne ne sont plus utilisées par le service de modèle ou les points de terminaison de service de fonctionnalités.
Meilleures pratiques en termes d’optimisation des coûts
- Réutiliser les magasins en ligne : vous pouvez publier plusieurs tables de fonctionnalités dans un magasin en ligne unique. Pour les scénarios de développement, de test et de formation, nous vous recommandons de partager un magasin en ligne sur plusieurs projets ou utilisateurs plutôt que de créer des magasins distincts.
- Capacité de taille appropriée : commencez par CU_1 pour les tests et effectuez un scale-up uniquement lorsque les exigences de performances le demandent.
- Supprimer les magasins en ligne qui ne sont pas utilisés : les magasins en ligne entraînent continuellement des coûts. Supprimez les magasins en ligne qui ne sont plus nécessaires.
Limitations
- Le nombre maximal de réplicas en lecture pour un magasin de fonctionnalités en ligne Databricks est de 2. Contactez votre équipe de compte Databricks pour augmenter la limite.
- Les paramètres suivants ne sont pas pris en charge lors de la publication dans un magasin de fonctionnalités en ligne Databricks :
filter_condition, ,checkpoint_location,mode,triggeretfeatures. - Seules les tables de fonctionnalités du catalogue Unity sont prises en charge.
- Le seul mode de publication pris en charge est « merge ».
- La mise à l’échelle à zéro n’est pas prise en charge pour les magasins en ligne.
Exemple de notebook
Le notebook suivant montre un exemple de configuration et d’accès à un magasin de fonctionnalités Databricks Online à l’aide de Databricks Lakebase.
Magasin de fonctionnalités en ligne avec notebook Lakebase
Obtenir un ordinateur portable
Ressources supplémentaires
- En savoir plus sur l’ingénierie des fonctionnalités dans Databricks.
- Explorez les gouvernances et la traçabilité des données dans le catalogue Unity.
- Comprendre l’architecture et les fonctionnalités de Lakebase .