Sdílet prostřednictvím


Materializace a obsluha deklarativních funkcí

Důležité

Tato funkce je beta a je k dispozici v následujících oblastech: us-east-1 a us-west-2.

Po vytvoření definic deklarativních funkcí, které jsou uložené v katalogu Unity, můžete pomocí definic funkcí vytvořit data funkcí ze zdrojové tabulky. Tento proces se nazývá materializace vašich funkcí. Azure Databricks vytváří a spravuje Lakeflow Spark deklarativní kanály pro plnění tabulek v katalogu Unity určených pro trénování modelů, dávkové vyhodnocování nebo online nasazení.

Požadavky

  • Funkce musí být vytvořeny pomocí rozhraní API deklarativní funkce a uloženy v katalogu Unity.
  • Požadavky na verzi najdete v tématu Požadavky.

Datové struktury rozhraní API

OfflineStoreConfig

Konfigurace offline úložiště, kam budou zapsány materializované vlastnosti. Materializační kanály vytvářejí v tomto úložišti nové tabulky.

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

Konfigurace pro online úložiště, ve kterém jsou uložené funkce používané modelem obsluhy. Materializace vytvoří tabulky Delta s tabulkou catalog.schema.table_name_prefixa streamuje tabulky do tabulek Lakebase se stejným názvem.

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

Představuje deklarativní funkci, která byla materializována, tj. má předem určenou reprezentaci dostupnou v katalogu Unity. Pro offline tabulku a online tabulku existuje jedinečná materializovaná funkce. Uživatelé obvykle nebudou instancovat MaterializedFeature přímo.

Volání funkcí rozhraní API

materialize_features()

Materializuje seznam deklarativních funkcí do offline tabulky Delta nebo do online úložiště funkcí.

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]:

Metoda vrátí seznam materializovaných funkcí, které obsahují metadata, jako je plán cron, když jsou hodnoty funkcí aktualizovány a informace o tabulkách Katalogu Unity, kde jsou funkce materializovány.

Pokud jsou obě funkce OnlineStoreConfig a OfflineStoreConfig k dispozici, vrátí se dvě materializované funkce pro každou poskytnutou funkci, jedna pro každý typ úložiště.

list_materialized_features()

Vrátí seznam všech materializovaných vlastností v úložišti metadat uživatelského Unity Catalogu.

Ve výchozím nastavení se vrátí maximálně 100 funkcí. Tento limit můžete změnit pomocí parametru max_results .

Chcete-li filtrovat vrácené materializované funkce podle názvu funkce, použijte volitelný feature_name parametr.

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]:

Jak odstranit materializovanou funkci

Chcete-li odstranit materializovanou funkci, použijte list_materialized_features(). table_name Zkontrolujte atribut, přejděte do této tabulky v katalogu Unity a odstraňte tabulku obsahující tuto funkci. Pomocí karty Rodokmen identifikujte všechny přidružené kanály a odstraňte je také. Nakonec se ujistěte, že pro online tabulky se odstraní i offline potrubí a tabulka.

V beta verzi se rozhraní API pro odstranění nepodporují. V případě potřeby můžete kanály funkcí a tabulky funkcí ručně odstranit pomocí uživatelského rozhraní Databricks.

Použití online funkcí v aplikacích v reálném čase

Pokud chcete poskytovat funkce aplikacím a službám v reálném čase, vytvořte koncový bod obsluhující funkce. Viz koncové body pro poskytování funkcí.

Modely, které jsou natrénované pomocí funkcí z Databricks, automaticky sledují rodokmen k funkcím, na které byly natrénovány. Při nasazení jako koncové body tyto modely používají Katalog Unity k vyhledání vhodných funkcí v online obchodech. Podrobnosti najdete v tématu Použití funkcí v online pracovních postupech.

Omezení

  • Spojité prvky nelze materializovat.
  • V pracovním prostoru, ve kterém byly vytvořeny, můžete pracovat pouze s materializovanými funkcemi.
  • Odstranění a pozastavení funkce se musí spravovat ručně na úrovni pipeline.