Notes de publication du Magasin de fonctionnalités Databricks et du Magasin de fonctionnalités d’espace de travail hérité.

Cette page liste les publications du client Ingénierie des caractéristiques Databricks dans Unity Catalog et du client Magasin des caractéristiques d’espace de travail Databricks. Les deux clients sont disponibles sur PyPI : databricks-feature-engineering et databricks-feature-store.

Les bibliothèques servent à :

  • Créer, lire et écrire des tables de caractéristiques.
  • Effectuer l’apprentissage de modèles sur les données de caractéristiques.
  • Publier des tables de caractéristiques dans des magasins en ligne pour un déploiement en temps réel.

Pour plus d’informations sur l’utilisation, consultez databricks Feature Store. Pour la documentation de l’API Python, consultez API Python de Feature Engineering.

Le client Ingénierie des caractéristiques Databricks dans Unity Catalog fonctionne pour les caractéristiques et les tables de caractéristiques de Unity Catalog. Le client Magasin des caractéristiques d’espace de travail fonctionne pour les caractéristiques et les tables de caractéristiques du Magasin des caractéristiques d’espace de travail. Les deux clients sont préinstallés dans Databricks Runtime pour Machine Learning. Ils peuvent également s’exécuter sur Databricks Runtime après l’installation de databricks-feature-engineering depuis PyPI (pip install databricks-feature-engineering). Pour les tests unitaires uniquement, les deux clients peuvent être utilisés localement ou dans des environnements CI/CD.

Pour obtenir un tableau indiquant la compatibilité des versions des clients avec Databricks Runtime et Databricks Runtime ML, consultez Matrice de compatibilité de l’Ingénierie des caractéristiques. Les versions antérieures du client Feature Store d'espace de travail Databricks sont disponibles sur PyPI sous le nom databricks-feature-store.

databricks-feature-engineering 0.18.2

  • Remplissage rétroactif des fonctionnalités par lots :
    • backfill_features() accepte features, une liste d’objets Feature ou des noms complets de fonctionnalités. Le paramètre feature_full_names est déconseillé.
    • Une nouvelle BackfillRange classe dans databricks.feature_engineering.entities prend des valeurs Python datetime pour start_time et end_time. La transmission d'un BackfillRange à partir du SDK Databricks pour Python est déconseillée.
    • backfill_features() renvoie désormais un BackfillStatus qui indique l'état, les fonctionnalités, les plages horaires et le message d'erreur du remplissage rétroactif. Définissez wait=True pour attendre la fin du remplissage rétroactif.
    • Les nouvelles méthodes get_backfill(), wait_for_backfill() et cancel_backfill() permettent de vérifier l'état d'un remplissage rétroactif, d'attendre sa fin et de l'annuler. Le code qui appelle wait(), cancel() ou backfill_features() sur le résultat de done() doit utiliser ces méthodes à la place. Le code existant qui utilise get_operation() et cancel_operation() pour les backfills continue à fonctionner.
  • Purge des entités de fonctionnalités (bêta) :
  • Fonctionnalités au moment de la requête :
    • RequestSource prend en charge les champs de requête ARRAY, MAP et STRUCT, y compris les types imbriqués. Définissez-les avec le nouveau dataframe_schema paramètre ou inférez-les avec RequestSource.from_dataframe(). Les clés MAP doivent être des chaînes.
    • log_model() inclut des champs de requête imbriqués dans la signature du modèle.
    • RequestSource.from_dataframe() accepte les DataFrames Spark Connect.
  • Autres changements :
    • Correction d'un problème où create_training_set() et compute_features() renvoyaient une seule ligne pour plusieurs lignes d'entrée identiques. Chaque ligne d’entrée renvoie alors une ligne de sortie.
    • Correctifs de bogues et améliorations.

databricks-feature-engineering 0.18.1

Cette version inclut les améliorations suivantes apportées aux vues des de fonctionnalités :

  • La diffusion en ligne avec Lakebase prend désormais en charge les noms de fonctionnalités dépassant 64 caractères.
  • RollingWindow accepte désormais window_duration=None pour l'agrégation Last sur toute la durée de vie, sur les sources Delta avec matérialisation basée sur des déclencheurs de table, uniquement en ligne.
  • Les fonctionnalités basées sur FeatureViewSource peuvent désormais être prévisualisées à l’aide de compute_features(), y compris les dépendances couvrant plusieurs tables sources.
  • SawtoothWindow prend désormais en charge les fenêtres d'agrégation sur toute la durée de vie (window_duration=None) dans create_training_set() et compute_features().
  • backfill_features() et purge_feature_entities() acceptent tags et budget_policy_id pour le suivi des coûts et l’attribution.
  • Correctifs de bogues et améliorations.

databricks-feature-engineering 0.18.0

  • FeatureViewSource :
    • New FeatureViewSource définit une caractéristique composée d’autres caractéristiques, en appliquant une CustomUDF ligne par ligne à travers leurs valeurs. Soutenu tout au long du cycle de formation et de service, sauf pour compute_features().
  • Fonctionnalités de CustomUDF :
    • create_feature() valide CustomUDFinput_bindings contre la signature de fonction du catalogue Unity et vérifie les types de colonnes liés aux types de paramètres de fonction, signalant les incompatibilités lors de la création de la fonctionnalité plutôt qu’au moment de l’entraînement ou du service.
  • Fonctionnalités de diffusion en continu :
    • create_stream() ajoute record_type_filter, un prédicat SQL qui conserve uniquement les enregistrements correspondants après le décodage, et excluded_columns, qui exclut des colonnes de l’ingestion. update_stream() accepte excluded_columnségalement .
  • Matérialisation :
    • materialize_features() accepte tags et budget_policy_id pour le suivi et l’attribution des coûts.
    • CronSchedule prend en charge un mode de planification dérivé qui se matérialise à partir des fenêtres d’agrégation et du timing d’une fonctionnalité, en plus d’une expression cron manuelle.
  • Remplissage rétroactif des fonctionnalités par lots :
    • La nouvelle méthode backfill_features() recalcule les valeurs matérialisées des vues de fonctionnalités sur les plages horaires de votre choix, par exemple après la correction de données sources historiques. Utilisez get_operation() et cancel_operation() pour vérifier l'état d'un remplissage rétroactif ou l'annuler.
  • Purge des entités de fonctionnalités (bêta) :
    • La nouvelle méthode purge_feature_entities() supprime les valeurs de fonctionnalités matérialisées des entités sélectionnées dans les magasins hors connexion et en ligne, par exemple à la suite d'une demande de suppression de données. Consultez Purger les valeurs de fonctionnalité pour les entités.
  • Contrôle d'accès aux fonctionnalités fenêtrées start_time :
    • Les fonctionnalités en mode fenêtré imposent désormais toujours start_time. Les lignes d’entraînement dont la fin de fenêtre se situe avant celle d’une caractéristique start_time sont exclues afin que les ensembles d’entraînement hors connexion correspondent aux valeurs fournies en ligne. Définissez start_time sur une fonctionnalité avec fenêtre pour définir le seuil de coupure.
  • Autres changements :
    • Les fonctionnalités d’agrégation rejettent DATE les colonnes de séries temporelles lors de la création. Utilisez plutôt une TIMESTAMP colonne.
    • ColumnSelection Les fonctionnalités appliquent le délai de stabilisation de la source dans create_training_set() et compute_features(), en excluant les lignes source qui ne sont pas encore stabilisées.
    • Ajout du support des types de chaînes Databricks Runtime 18 dans les entrées et sorties UDF de fonctionnalités.
    • Les champs de temporisation de fonctionnalité, tels que start_time, le délai d’agrégation et le délai de stabilisation de la source, sont désormais conservés lors des lectures et écritures du client.
    • Correctifs de bogues et améliorations.

databricks-feature-engineering 0.17.1

  • Correctifs de bogues et améliorations.

databricks-feature-engineering 0.17.0

  • Agrégations SawtoothWindow (Aperçu) :
    • La nouvelle SawtoothWindow classe de fenêtre temporelle maintient les longues fenêtres d’agrégation (par exemple, 30, 60 ou 90 jours) en permanence fraîches : le bord arrière de la fenêtre avance en étapes quotidiennes fixes tandis que le bord d’avance reste à jour avec les derniers événements en streaming, évitant un recalcul complet de chaque événement. Pris en charge pour les agrégations Sum, Avg, Count, Min et Max. window_duration doit être supérieur à deux jours ; utilisez RollingWindow pour des fenêtres plus courtes.
  • LastN agrégation (Aperçu) :
    • La nouvelle LastN agrégation retourne les valeurs N les plus récentes dans une fenêtre sous forme de tableau, ordonnée par la colonne de la série temporelle de la caractéristique. Pris en charge avec les plages horaires SlidingWindow et RollingWindow.
  • Fenêtres d’agrégation sur la durée de vie :
    • SlidingWindow prend désormais en charge des fenêtres permanentes (infinies) qui agrègent l’ensemble de l’historique. Les fenêtres de durée de vie sont disponibles uniquement pour les fonctionnalités par lot ; définissez window_duration sur None pour en définir une dans create_training_set() et compute_features().
  • Fonctionnalités de CustomUDF (Aperçu) :
    • Nouveau type de fonction CustomUDF pour create_feature() appliquant une fonction Unity Catalog enregistrée sur chaque ligne aux colonnes source. input_bindings associe chaque paramètre de fonction UC à la colonne source qui le remplit. CustomUDF agit directement uniquement sur les caractéristiques RequestSource (au moment de la requête) ; il ne peut pas être appliqué à d’autres types de caractéristiques.
  • Transformations de source en streaming (Aperçu) :
    • StreamSource accepte désormais une transformation_sql expression SQL SELECT , appliquée après la conversion du schéma du flux, pour transformer les enregistrements avant le calcul des caractéristiques. Une fois défini, fournir le schéma de sortie transformé via dataframe_schema.
  • Registre de schéma pour les sources en streaming (Aperçu) :
    • create_stream() peut désormais résoudre les schémas de clé et de charge utile en flux depuis un registre de schémas externe (par exemple, Confluent) via une connexion Unity Catalog, en utilisant SchemaRegistryConfig plutôt que de fournir des schémas en ligne. Les formats Avro et Protobuf sont pris en charge.
  • Dépendances de service personnalisées (Aperçu) :
    • Vous pouvez désormais déclarer des dépendances pip supplémentaires pour le service des variables. create_feature_spec() et log_model() acceptent extra_pip_requirements, une liste de paquets pip (ou de chemins .whl de volumes Unity Catalog) à installer dans l’environnement de service du modèle pour les bibliothèques nécessaires à vos UDF de fonctionnalités, mais non disponibles par défaut. Les dépendances déclarées dans la spécification de fonctionnalité sont conservées lorsque le modèle est mis en service.
  • Autres améliorations :
    • Correctifs de bogues et améliorations.

databricks-feature-engineering 0.16.1

  • create_training_set et score_batch réutilisent désormais les fonctionnalités d’agrégation matérialisée hors ligne lorsqu’elles sont disponibles, ce qui accélère la création du jeu de données d’entraînement et l’inférence par lots. Voir Matérialiser les vues des fonctionnalités.
  • RequestSource les fonctionnalités ne nécessitent plus de colonnes d’entité et de série chronologique.
  • Correction des résultats incorrects First et Last dans create_training_set. Ces agrégations incluent désormais des valeurs Null par défaut ; ajoutez a filter_condition pour exclure les colonnes d’entrée Null.
  • Correction d’un problème où compute_features renvoyait des zéros ou des valeurs nulles lorsque les lignes source contenaient des valeurs nulles.
  • Correctifs de bogues et améliorations.

databricks-feature-engineering 0.16.0

  • Préversion publique de Feature Views:
    • Feature Views est désormais disponible en préversion publique. Les utilitaires is_beta_feature_view() et list_beta_feature_views() sur FeatureEngineeringClient identifient les fonctionnalités qui ont été enregistrées sous l’API bêta et qui doivent être migrées vers le format de préversion publique.
    • Feature.clone() méthode permet de migrer des vues de fonctionnalités bêta vers la préversion publique.
    • create_pipeline est déconseillé pour les vues de fonctionnalités ; utilisez plutôt l’API des fonctionnalités matérialisées.
  • Fonctionnalités de diffusion en continu :
    • StreamSource est désormais pris en charge dans create_feature() pour définir des variables de caractéristique en streaming à partir de sources Kafka ou Delta.
    • create_training_set prend désormais en charge la formation sur les fonctionnalités définies avec un StreamSource.
    • Nouvelles méthodes create_stream, get_stream, update_stream, delete_stream et list_streams sur FeatureEngineeringClient pour gérer les sources de fonctionnalités en continu.
    • StreamingMode déclencheur pour materialize_features sélectionner la matérialisation par micro-lots.
  • Autres améliorations :
    • Nouvelle list_features() API dans FeatureEngineeringClient répertorie les fonctions dans un catalogue ou un schéma.
    • Le nouvel utilitaire grant_feature_serving_access() octroie les autorisations requises pour la mise en ligne des features matérialisées, avec un mode dry_run permettant de prévisualiser l’accès avant de les appliquer.
    • DeltaTableSource.from_sql() accepte maintenant directement un SparkSession .
    • DeltaTableSource.dataframe_schema remplace le paramètre déconseillé schema_json .
    • RollingWindow remplace l’alias supprimé ContinuousWindow .
    • Suppression du paramètre déconseillé offset de RollingWindow; utilisez delay à la place.
    • La prise en charge des noms Unity Catalog en deux parties avec un catalogue par défaut a été supprimée.
    • Correctifs de bogues et améliorations.

databricks-feature-engineering 0.15.0

  • RequestSource (bêta) :
    • La nouvelle RequestSource classe active les fonctionnalités calculées au moment de la requête à partir des données transmises directement au modèle, sans nécessiter de recherche de table de fonctionnalités.
    • create_feature(), create_training_set(), score_batch() et compute_features() prennent tous en charge les fonctionnalités basées sur RequestSource.
    • log_model intègre automatiquement les RequestSource fonctionnalités dans la signature du modèle.
  • Sélection de colonnes (bêta) :
    • La nouvelle ColumnSelection classe permet de sélectionner des colonnes de sortie spécifiques à partir d’une source de fonctionnalité, ce qui permet d’obtenir des définitions de fonctionnalités plus granulaires.
    • Pris en charge dans create_feature(), create_training_set(), compute_features() et log_model.
  • Autres améliorations :
    • Nouveau TableTrigger type de déclencheur pour materialize_features déclencher la matérialisation lors des mises à jour des tables Delta.
    • score_batch s’exécute désormais sur les environnements d’exécution Databricks Runtime Serverless.
    • DeltaTableSource.from_sql() rejette désormais les clauses SQL non prises en charge telles que GROUP BY et ORDER BY.
    • RequestSource.from_dataframe() déduit le schéma de requête d’un DataFrame existant.
    • Suppression de la dépendance à Flask dans databricks-feature-engineering.
    • Correctifs de bogues et améliorations.

databricks-feature-engineering 0.14.0

  • Fonctionnalités déclaratives batch (bêta) :
    • API de fonctionnalités déclaratives pour stocker les définitions de fonctionnalités déclaratives en tant que fonctions de catalogue Unity avec des agrégations et des fenêtres de temps.
    • L’API fonctionnalités matérialisées planifie la matérialisation automatique par lots des fonctionnalités dans les magasins en ligne à l’aide de planifications cron configurables.
    • Les fonctionnalités matérialisées peuvent être utilisées dans le service en ligne pour les modèles inscrits dans le catalogue Unity.
    • Prise en charge des fenêtres glissantes et des fenêtres bascule via les classes SlidingWindow et TumblingWindow pour un calcul correct des fonctionnalités à un instant donné dans create_training_set().
    • Le paramètre filter_condition autorise le filtrage des données source lors du calcul des caractéristiques.
  • Autres améliorations :
    • La nouvelle API list_online_stores() répertorie tous les magasins en ligne d’un catalogue ou d’un schéma.
    • Prise en charge de usage_policy_id pour le suivi de la facturation lors de la création ou de la mise à jour des magasins en ligne.
    • Amélioration des messages d’erreur lorsque les magasins en ligne sont supprimés ou indisponibles.
    • Améliorations des performances et corrections des bogues.

databricks-feature-engineering 0.13.0

  • API pour la gestion des magasins de fonctionnalités en ligne gérés par Databricks.
  • publish_table() accepte maintenant les paramètres source_table_name, online_table_name, et publish_mode pour une spécification de table plus claire.
  • Prise en charge de read_replica_count lors de la création ou de la mise à jour de magasins en ligne pour améliorer l'évolutivité de la lecture.
  • Correctifs de bogues et améliorations.

databricks-feature-engineering 0.12.1

  • Prise en charge des valeurs par défaut pour les recherches de fonctionnalités.
  • Correctifs de bogues et améliorations.

databricks-feature-engineering 0.11.0

  • Ajout de la prise en charge de mlflow version 3.0.
  • Correctifs de bogues et améliorations.

databricks-feature-engineering 0.10.2

  • Ajoutez la prise en charge de la version mlflow 2.20.0 et des versions ultérieures.
  • Ajouter la prise en charge de la version 2.x numpy.
  • Correctifs de bogues et améliorations.

databricks-feature-engineering 0.9.0

  • Soutien de l'utilisation de prebuilt_env dans les invocations de score_batch.
  • Améliorations des performances de jointure de fonctionnalités ponctuelles avec Photon.
  • Correctifs de bogues et améliorations.

databricks-feature-engineering 0.8.0

  • Prise en charge de l’utilisation de params dans les appels score_batch, ce qui permet de transmettre des paramètres supplémentaires au modèle pour l’inférence.
  • Correctifs de bogues et améliorations.

databricks-feature-engineering 0.7.0

databricks-feature-engineering 0.6.0

  • L’exécution de jointures à un point dans le temps avec Spark natif est désormais prise en charge, en plus de la prise en charge existante avec Tempo. Grand merci à Semyon Sinchenko d’avoir suggéré l’idée.
  • StructType est désormais pris en charge en tant que type de données PySpark. StructType n’est pas pris en charge pour la mise en service en ligne.
  • write_table prend désormais en charge l’écriture dans des tables dont le clustering liquide est activé.
  • Le paramètre timeseries_columns de create_table a été renommé timeseries_column. Les flux de travail existants peuvent continuer à utiliser le paramètre timeseries_columns.
  • score_batch prend désormais en charge le paramètre env_manager. Pour en savoir plus, consultez la documentation MLflow.

databricks-feature-engineering 0.5.0

  • Nouvelle API update_feature_spec dans databricks-feature-engineering qui permet aux utilisateurs de mettre à jour le propriétaire d’une FeatureSpec dans Unity Catalog.

databricks-feature-engineering 0.4.0

  • Résolutions de petits bogue et améliorations.

databricks-feature-engineering 0.3.0

  • log_model utilise désormais le nouveau package PyPI databricks-feature-lookup, qui inclut des améliorations du niveau de performance du service de modèle en ligne.

databricks-feature-store 0.17.0

  • databricks-feature-store est déconseillé. Tous les modules existants de ce package sont disponibles dans databricks-feature-engineering versions 0.2.0 et ultérieures. Pour plus d’informations, consultez API Python.

Databricks-Feature-Engineering 0.2.0

  • databricks-feature-engineering contient désormais tous les modules de databricks-feature-store. Pour plus d’informations, consultez API Python.

databricks-feature-store 0.16.3

  • Corrige le bogue de délai d’expiration lors de l’utilisation d’AutoML avec des tables de caractéristiques.

databricks-feature-engineering 0.1.3

  • Petites améliorations apportées à UpgradeClient.

databricks-feature-store 0.16.2

databricks-feature-store 0.16.1

  • Résolutions de petits bogue et améliorations.

databricks-feature-engineering 0.1.2 et databricks-feature-store 0.16.0

  • Résolutions de petits bogue et améliorations.
    • Correction des URL incorrectes de traçabilité des travaux enregistrées avec certaines configurations de l’espace de travail.

databricks-feature-engineering 0.1.1

  • Résolutions de petits bogue et améliorations.

databricks-feature-engineering 0.1.0

  • Version GA de Feature Engineering dans le client Python Unity Catalog vers PyPI

databricks-feature-store 0.15.1

  • Résolutions de petits bogue et améliorations.

databricks-feature-store 0.15.0

  • Vous pouvez désormais déduire et consigner automatiquement un exemple d’entrée lorsque vous journalisez un modèle. Pour ce faire, définissez infer_model_example sur True lorsque vous appelez log_model. L’exemple est basé sur les données d’apprentissage spécifiées dans le paramètre training_set.

databricks-feature-store 0.14.2

  • Correction d'un bogue lors de la publication sur Aurora MySQL à partir d'un connecteur MariaDB/J >=2.7.5.

databricks-feature-store 0.14.1

  • Résolutions de petits bogue et améliorations.

databricks-feature-store 0.14.0

À compter de la version 0.14.0, vous devez spécifier des colonnes clés timestamp dans l’argument primary_keys. Les clés timestamp font partie des « clés primaires » qui identifient de manière unique chaque ligne de la table de fonctionnalités. Comme d’autres colonnes de clé primaire, les colonnes de clé timestamp ne peuvent pas contenir de valeurs NUL.

Dans l’exemple suivant, le DataFrame user_features_df contient les colonnes suivantes : user_id, ts, purchases_30d et is_free_trial_active.

0.14.0 et versions ultérieures

fs = FeatureStoreClient()

fs.create_table(
name="ads_team.user_features",
primary_keys=["user_id", "ts"],
timestamp_keys="ts",
features_df=user_features_df,
)

0.13.1 et versions antérieures

fs = FeatureStoreClient()

fs.create_table(
name="ads_team.user_features",
primary_keys="user_id",
timestamp_keys="ts",
features_df=user_features_df,
)

databricks-feature-store 0.13.1

  • Résolutions de petits bogue et améliorations.

databricks-feature-store 0.13.0

  • La version minimale requise mlflow-skinnyest désormais 2.4.0.
  • La création d’un jeu d’entraînement échoue si le DataFrame fourni ne contient pas toutes les clés de recherche requises.
  • Lors de la journalisation d’un modèle qui utilise des tables de caractéristiques dans Unity Catalog, une signature MLflow est journalisée automatiquement avec le modèle.

databricks-feature-store 0.12.0

  • Vous pouvez maintenant supprimer un magasin en ligne à l’aide de l’API drop_online_table.

databricks-feature-store 0.11.0

  • Dans les espaces de travail avec Unity Catalog, vous pouvez désormais publier à la fois des tables d’espace de travail et des fonctionnalités Unity Catalog dans des magasins en ligne Cosmos DB. Pour cela, Databricks Runtime 13.0 ML ou une version ultérieure est nécessaire.

databricks-feature-store 0.10.0

  • Résolutions de petits bogue et améliorations.

databricks-feature-store 0.9.0

  • Résolutions de petits bogue et améliorations.

databricks-feature-store 0.8.0

  • Résolutions de petits bogue et améliorations.

databricks-feature-store 0.7.1

  • Ajout de flask en tant que dépendance pour résoudre le problème de dépendance manquante lors de la notation des modèles avec score_batch.

databricks-feature-store 0.7.0

  • Résolutions de petits bogue et améliorations.

databricks-feature-store 0.6.1

  • Publication publique initiale du client Databricks Feature Store sur PyPI.