Freigeben über


Materialisieren und Bereitstellen deklarativer Features

Von Bedeutung

Dieses Feature ist Beta und ist in den folgenden Regionen verfügbar: us-east-1 und us-west-2.

Nachdem Sie Ihre deklarativen Featuredefinitionen erstellt haben, die im Unity-Katalog gespeichert sind, können Sie Featuredaten aus der Quelltabelle mithilfe der Featuredefinitionen erstellen. Dieser Prozess wird als Materialisierung Ihrer Features bezeichnet. Azure Databricks erstellt und verwaltet Lakeflow Spark Declarative Pipelines zum Auffüllen von Tabellen im Unity-Katalog für Modellschulungen und Batchbewertungen oder Onlinebereitstellungen.

Anforderungen

  • Features müssen mit der deklarativen Feature-API erstellt und im Unity-Katalog gespeichert werden.
  • Versionsanforderungen finden Sie unter "Anforderungen".

API-Datenstrukturen

OfflineStoreConfig

Konfiguration für den Offlinespeicher, in dem materialisierte Features geschrieben werden. Die Materialisierungspipelines erstellen neue Tabellen in dieser Datenbank.

OfflineStoreConfig(
    catalog_name: str,        # Catalog name for the offline table where materialized features will be stored
    schema_name: str,         # Schema name for the offline table
    table_name_prefix: str    # Table name prefix for the offline table. The pipeline may create multiple tables with this prefix, each updated at different cadences
)
from databricks.feature_engineering.entities import OfflineStoreConfig

offline_store = OfflineStoreConfig(
    catalog_name="main",
    schema_name="feature_store",
    table_name_prefix="customer_features"
)

OnlineStoreConfig

Konfiguration für den Online-Shop, in dem Features gespeichert werden, die für den Modelldienst genutzt werden. Die Materialisierung erstellt Delta-Tabellen mit den catalog.schema.table_name_prefixTabellen und überträgt die Tabellen zu Lakebase-Tabellen mit demselben Namen.

from databricks.feature_engineering.entities import OnlineStoreConfig

online_store = OnlineStoreConfig(
    catalog_name="main",
    schema_name="feature_store",
    table_name_prefix="customer_features_serving",
    online_store_name="customer_features_store"
)

MaterializedFeature

Stellt ein deklaratives Feature dar, das materialisiert wurde, d. h. eine vorkompilierte Darstellung, die im Unity-Katalog verfügbar ist. Es gibt ein eigenes materialisiertes Feature für die Offlinetabelle und die Onlinetabelle. Typischerweise instanziieren Benutzer ein MaterializedFeature nicht direkt.

API-Funktionsaufrufe

materialize_features()

Materialisiert eine Liste deklarativer Features in einer Offline-Delta-Tabelle oder in einem Online Feature Store.

FeatureEngineeringClient.materialize_features(
    features: List[Feature],                                               # List of declarative features to materialize
    offline_config: OfflineStoreConfig,                                    # Offline store config if materializing offline
    online_config: Optional[OnlineStoreConfig] = None,                     # Online store config if materializing online
    pipeline_state: Union[MaterializedFeaturePipelineScheduleState, str],  # Materialization pipeline state - currently must be "ACTIVE"
    cron_schedule: Optional[str] = None,                                   # Materialization schedule, specified in quartz cron syntax. Currently must be provided.
) -> List[MaterializedFeature]:

Die Methode gibt eine Liste der materialisierten Features zurück, die Metadaten enthalten, z. B. Cron-Zeitplan, wenn Featurewerte aktualisiert werden, und Informationen zu den Unity-Katalogtabellen, in denen die Features materialisiert sind.

Wenn sowohl ein OnlineStoreConfig als auch ein OfflineStoreConfig bereitgestellt werden, werden pro bereitgestelltem Feature zwei materialisierte Features zurückgegeben, eines für jeden Speichertyp.

list_materialized_features()

Gibt eine Liste aller materialisierten Features im Unity-Katalog-Metastore des Benutzers zurück.

Standardmäßig werden maximal 100 Features zurückgegeben. Sie können diesen Grenzwert mithilfe des max_results Parameters ändern.

Verwenden Sie den optionalen feature_name Parameter, um die zurückgegebenen materialisierten Features nach einem Featurenamen zu filtern.

FeatureEngineeringClient.list_materialized_features(
    feature_name: Optional[str] = None,     # Optional feature name to filter by
    max_results: int = 100,                 # Maximum number of features to be returned
) -> List[MaterializedFeature]:

So löschen Sie ein materialisiertes Feature

Um ein materialisiertes Feature zu löschen, verwenden Sie list_materialized_features(). Überprüfen Sie das Attribut, navigieren Sie zu dieser table_name Tabelle im Unity-Katalog, und löschen Sie die Tabelle, die das Feature enthält. Verwenden Sie die Registerkarte "Linie ", um alle zugehörigen Pipelines zu identifizieren und sie ebenfalls zu löschen. Stellen Sie abschließend sicher, dass für Onlinetabellen auch die Offlinepipeline und -tabelle gelöscht werden.

In der Betaversion werden Lösch-APIs nicht unterstützt. Bei Bedarf können Sie Featurepipelines und Featuretabellen manuell über die Databricks-Benutzeroberfläche löschen.

Verwenden von Onlinefeatures in Echtzeitanwendungen

Wenn Sie Features für Echtzeitanwendungen und -dienste bereitstellen möchten, erstellen Sie einen Endpunkt für die Bereitstellung von Features. Siehe Feature Serving-Endpunkte.

Modelle, die mithilfe von Features von Databricks trainiert werden, verfolgen automatisch deren Abstammung zu den Features, mit denen sie trainiert wurden. Wenn diese Modelle als Endpunkte bereitgestellt werden, verwenden diese Modelle Unity-Katalog, um geeignete Features in Online-Stores zu finden. Ausführliche Informationen finden Sie unter "Verwenden von Features in Onlineworkflows".

Einschränkungen

  • Kontinuierliche Features können nicht materialisiert werden.
  • Sie können nur mit materialisierten Features im Arbeitsbereich arbeiten, in dem sie erstellt wurden.
  • Das Löschen und Anhalten eines Features muss auf Pipelineebene manuell verwaltet werden.