Materializace zobrazení funkcí

Po vytvoření definic zobrazení 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 kanály Lakeflow pro naplnění tabulek v katalogu Unity pro trénování modelů a dávkové vyhodnocování nebo online obsluhu.

Informace o poskytování zobrazení funkcí naleznete v tématu Obsluha zobrazení funkcí.

Pro odstranění materializovaných hodnot pro vybrané entity viz Odstranit hodnoty funkcí pro entity.

Požadavky

  • Funkce musí být vytvořeny jako zobrazení funkcí a uloženy v katalogu Unity.
  • Požadavky na verzi najdete v tématu Požadavky.

Podpora materializace podle typu prvku

Zda a kde lze nějakou vlastnost materializovat, závisí na jejím typu:

Funkce, které se objevují pouze v online obchodech, jsou stále použitelné offline: create_training_set a compute_features vypočítávají své aktuální hodnoty přímo ze zdroje, takže offline materializace není potřeba.

Materializace výběru sloupce

ColumnSelection funkce umožňují výběr nejnovější hodnoty jediného sloupce pro každý klíč entity bez použití agregace. Mohou být materializovány pouze do online obchodů. Pro případy použití offline (trénování a dávkové odvozování) ColumnSelection se funkce načítají přímo ze zdrojových dat v době dotazu, takže offline materializace není nutná.

Činnost materializace

  • Kanál zapíše poslední řádek pro klíč entity do online tabulky bez okna agregace.
  • Online materializace naplní online tabulku aktuální nejnovější hodnotou pro každé klíč entity.

Příklad

from databricks.feature_engineering import FeatureEngineeringClient
from databricks.feature_engineering.entities import (
    DeltaTableSource, Feature, ColumnSelection, TableTrigger, OnlineStoreConfig,
)

fe = FeatureEngineeringClient()

delta_source = DeltaTableSource(
    catalog_name="catalog",
    schema_name="schema",
    table_name="transactions",
)

amount_feature = Feature(
    source=delta_source,
    function=ColumnSelection("amount"),
    entity=["user_id"],
    timeseries_column="transaction_time",
    name="latest_transaction_amount",
)

# Register before materializing
amount_feature = fe.register_feature(
    feature=amount_feature,
    catalog_name="catalog",
    schema_name="schema",
)

mfs = fe.materialize_features(
    features=[amount_feature],
    online_config=OnlineStoreConfig(
        catalog_name="catalog",
        schema_name="feats_online",
        table_name_prefix="txn_",
        online_store_name="lb_usw2"
    ),
    trigger=TableTrigger(),
)

ColumnSelection funkce používají TableTrigger, který spouští kanál pokaždé, když zdrojová tabulka Delta obdrží nové potvrzení. Není potřeba offline_config, protože funkce ColumnSelection se čtou přímo ze zdroje pro offline použití (trénování a dávkové odvozování).

Note

RequestSource funkce nelze materializovat, protože představují data poskytnutá volajícím v době odvozování (nebo extrahované z označeného datového rámce v době trénování). Neexistuje žádná zdrojová tabulka, ze které by bylo potřeba číst. Hodnoty existují pouze v datové části požadavku nebo trénovacím datovém rámci.

Materializace nejnovějších hodnot s omezenou dobou platnosti

Dávková Last agregace s RollingWindow dává online atributu dobu životnosti (TTL): jeho hodnota v online úložišti vyprší, pokud do daného okna nespadá žádná zdrojová hodnota. To je užitečné, když doba od vytvoření hodnoty určuje, zda je bezpečné ji poskytnout. Například stav zařízení z poslední hodiny lze vrátit, zatímco starší stav se vyhodnotí jako null namísto toho, aby zůstával k dispozici neomezeně dlouho.

A RollingWindow definuje explicitní délku, která dává vlastnosti chování podobné TTL. Například pokud zdroj zveřejňuje hodnoty denně a chcete si ponechat pouze hodnoty z posledních sedmi dnů, použijte a RollingWindow s sedmidenní trvací dobou. Při každém spuštění materializace zcela nahradí online tabulku, takže hodnoty, které nespadají do tohoto okna, jsou odstraňovány podle předvídatelného harmonogramu. To poskytuje stejný výsledek jako streamování Last s RollingWindow, ale je levnější, protože neprovádí výpočty nepřetržitě.

Tento vzor publikování je podobný tabulce příznaků s TTL, která je publikována v režimu snapshotu. Pokud udržujete sadu tabulek funkcí a chcete je používat spolu s dalšími Feature Views, můžete je přizpůsobit frameworku pro tvorbu Feature Views. Použijte dávku Last s RollingWindow a TableTrigger.

Tato kombinace má speciální režim materializace pouze online s následujícími požadavky:

  • Zdroj musí být DeltaTableSource.
  • Agregační funkce musí být Last, a její okno musí být .RollingWindow
  • Materializace musí poskytnout OnlineStoreConfig, vynechat OfflineStoreConfig a použít TableTrigger.

V následujícím příkladu je registrovaná vlastnost, latest_device_state_1h která splňuje tyto požadavky:

from databricks.feature_engineering import FeatureEngineeringClient
from databricks.feature_engineering.entities import OnlineStoreConfig, TableTrigger

fe = FeatureEngineeringClient()

materialized = fe.materialize_features(
    features=[latest_device_state_1h],
    online_config=OnlineStoreConfig(
        catalog_name="main",
        schema_name="feature_store",
        table_name_prefix="latest_device_state_serving",
        online_store_name="device_state_store",
    ),
    trigger=TableTrigger(),
)

Pro offline trénink a dávkové skórování klient feature engineering vypočítává hodnotu v daném okamžiku přímo ze zdroje. Nenačítá offline materializaci pro tuto funkci.

Considerations

  • Platnost se prodlužuje pouze při spuštění triggeru. Hodnota online a doba její expirace se posunou vpřed, když commit zdrojové tabulky spustí obnovení materializace. Samotný plynutí času nevyvolá obnovení. Pokud zdrojový kód přestane publikovat, poslední materializovaná hodnota zůstává v online obchodě až do pozdějšího commitu, který spustí obnovení.
  • Zarovnejte sloupec časových řad s časem publikace ve zdroji. Sloupec časových řad musí odrážet, kdy zdroj data zveřejnil. Jinak se online a offline hodnoty rozcházejí, protože online úložiště provádí spojení v čase triggeru, zatímco offline čtení dat provádí spojení v čase časové řady.
  • Nastavte délku okna na násobek frekvence publikace. Pokud trvání RollingWindow není násobkem publikačního intervalu zdroje, některé hodnoty jsou během offline tréninku považovány za expirované, i když jsou online stále viditelné.

Funkce na vyžádání a realizace

RequestSource hodnoty pocházejí z trénovacího DataFrame nebo požadavku na inferenci, takže není potřeba vytvořit zdrojovou tabulku. FeatureViewSource Vlastnosti aplikují A CustomUDF na hodnoty vyšších vlastností během výcviku nebo servisu. Neukládají předpočítaný výsledek. Materializace také není podporována pro funkce CustomUDF, které jsou založené na tabulce Delta.

Pro graf závislostí, jako jsou revenue_sum_7d a cost_sum_7d, které vstupují do funkce margin:

  • Pro offline školení zavolejte na create_training_set pomocí margin. Řeší nadřazené příznaky a počítá hodnoty k danému časovému okamžiku, přičemž využívá kompatibilní offline materializované výsledky, pokud jsou k dispozici.
  • Pro online prodej přeneste podporované příjmové a nákladové funkce do online obchodu. Koncový bod je vyhledá a pro každý požadavek vypočítá margin.
  • Předejte do materialize_features pouze podporované funkce upstreamu, nikoli do margin ani žádné funkce založené na požadavku. Materializace nematerializuje rekurzivně závislosti odvozené vlastnosti.

Graf, který používá pouze funkce založené na požadavcích, nepotřebuje online obchod. Vizte Trénování s funkcemi FeatureViewSource a Poskytování odvozených funkcí.

Povolení

Materializace vyžaduje oprávnění na funkci a na zdrojové a cílové zdroje. Pro úplné popisy privilegií Unity Catalog viz odkaz na Unity Catalog privileges.

  • Materializace funkce vyžaduje MANAGE. Volání materialize_features vytváří a spravuje podkladové Lakeflow pipeline a tabulky Unity Catalog, takže jde o manažerskou operaci. Abyste mohli přečíst definici funkce, která se materializuje, musíte mít u funkce MANAGE spolu s READ FEATURE.

  • Smazání materializované funkce je omezeno na její tvůrce. Pouze uživatel, který vytvořil materializovanou funkci, ji může smazat pomocí delete_materialized_feature. Toto omezení je nezávislé na oprávněních Unity Catalog: MANAGE na funkci nebo jejím rodičovském schématu neumožňuje jinému uživateli jej smazat.

  • Čtení zdrojových dat vyžaduje SELECT. Pro prvek, který používá zdrojový kód v Delta tabulce, musíte mít SELECT na zdrojové tabulce. Pro funkci, která používá zdroj typu Stream, musíte mít na ingestovací tabulce Streamu oprávnění SELECT.

    Pro další oprávnění požadovaná autentizační konfigurací Streamu viz Kafka autentizace.

  • Vytvoření cílových tabulek vyžaduje CREATE TABLE. U každého schématu zadaného pomocí OfflineStoreConfig nebo OnlineStoreConfig musíte mít CREATE TABLE. Offline i online destinace mohou být v různých schématech nebo katalozích a materializace vyžaduje oprávnění na každém cílovém místě.

  • K zavedení do internetového obchodu je potřeba CAN USE. Musíte mít CAN USE v instanci nebo projektu Lakebase, které používá online obchod. Informace o oprávněních Lakebase najdete v článku Udělit oprávnění projektů.

  • Výpis materializovaných funkcí vyžaduje READ FEATURE u nadřazené funkce. Abyste mohli použít list_materialized_features, musíte mít READ FEATURE u funkce, která byla materializována.

  • Čtení materializovaných dat vyžaduje SELECT. Musíte mít SELECT na každé offline nebo online výstupní tabulce, ke které přistupujete. READ FEATURE u nadřazené funkce neposkytuje přístup k těmto tabulkám.

Pro každý prostředek Unity Catalog použitý při materializaci také potřebujete USE CATALOG na jeho nadřazeném katalogu a USE SCHEMA na jeho nadřazeném schématu. Tento požadavek se vztahuje na funkci, každý zdroj nebo tabulku příjmu streamu a každý konfigurovaný cíl. READ FEATURE a MANAGE udělené pro schéma nebo katalog se vztahují na všechny stávající i budoucí objekty, které obsahují.

Datové struktury rozhraní API

OfflineStoreConfig

Konfigurace offline úložiště, kam budou zapsány materializované vlastnosti. Když je materialize_features zavolán, back-end úložiště funkcí vytvoří tabulky pomocí této předpony. Každé spuštění potrubí materializuje nejnovější hodnoty vlastností do tabulky podle harmonogramu materializace.

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 pomocí catalog.schema.table_name_prefix a streamuje je do Online Feature Store 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 zobrazení funkcí, které bylo materializováno, to znamená, že má předem určenou reprezentaci dostupnou v katalogu Unity. Pro offline tabulku a online tabulku existují samostatné materializované funkce. Uživatelé obvykle nebudou instancovat MaterializedFeature přímo.

Volání funkcí rozhraní API

materialize_features()

Materializuje seznam zobrazení funkcí do offline tabulky Delta nebo do online úložiště funkcí. Před voláním této funkce (například pomocí create_feature nebo register_feature) musí být funkce zaregistrovány v katalogu Unity. Místně vytvořené funkce, které nebyly zaregistrovány, nebudou fungovat.

FeatureEngineeringClient.materialize_features(
    *,                                                                     # Arguments are keyword-only
    features: List[Feature],                                               # List of Feature Views to materialize
    offline_config: Optional[OfflineStoreConfig] = None,                   # Offline store config (aggregation features only)
    online_config: Optional[OnlineStoreConfig] = None,                     # Online store config
    trigger: Union[CronSchedule, TableTrigger, StreamingMode],             # Materialization trigger
    tags: Optional[Dict[str, str]] = None,                                 # Custom tags for cost attribution
    budget_policy_id: Optional[str] = None,                                # Serverless usage policy for cost attribution
) -> List[MaterializedFeature]:

Metoda vrátí seznam materializovaných funkcí, které obsahují metadata o tom, kdy jsou hodnoty funkcí aktualizovány, a tabulky Katalogu Unity, kde jsou prvky 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ě.

Parametr trigger řídí při spuštění kanálu materializace:

  • CronSchedule: Běží podle plánu odvozeného z časování funkce nebo podle harmonogramu Quartz cron zadaného volajícím. Podporováno pro funkce hromadné agregace (AggregationFunction z DeltaTableSource).
  • TableTrigger: Spustí se, když upstreamová tabulka Delta obdrží potvrzení. Podporováno pro funkce ColumnSelection a agregační funkce (AggregationFunction) podporované pomocí DeltaTableSource. U funkcí agregace je frekvence spouštění pipeline omezena tak, aby běžela nejvýše jednou za polovinu granularity dané funkce (dobu posuvu u posuvného okna nebo délku okna u překlápěcího okna), přičemž horní limit je 1 hodina a pipeline se nikdy nespouští častěji než každých 5 minut. Například maximálně jednou za 30 minut při granularitě 1 hodiny, nebo maximálně jednou za hodinu při granularitě 2 hodiny a více. Interval se počítá od předchozího spuštění, takže commit, který dorazí po uplynutí intervalu, i tak neprodleně spustí běh.
  • StreamingMode: Spouští se jako kanál průběžného streamování. Vyžadováno pro funkce, které jsou podporovány funkcí StreamSource.

V jednom materialize_features volání nelze kombinovat funkce, které vyžadují různé typy triggerů. Místo toho proveďte samostatná volání.

Chcete-li přiřadit náklady na materializaci, předejte tags, budget_policy_id nebo obojí. Azure Databricks je aplikuje na úlohu nebo pipeline, které vytvoří, takže náklady s nimi spojené nesou vaši atribuci v systémové tabulce fakturovatelného využití. Obě se aplikují při vzniku, takže odlišné přiřazení existující materializace znamená vytvoření nové. budget_policy_id přijímá ID zásady využití serverless. Informace o tom, jak ji vytvořit a získat její ID, najdete v části Vytvoření zásady pro bezserverové využití. Informace o limitech tagů, zdrojích, na které se jednotlivé hodnoty vztahují, a o tom, jak se dotazovat na přiřazené náklady, najdete v tématu Správa nákladů ve Feature Store.

Materializace do offline úložiště

from databricks.feature_engineering import FeatureEngineeringClient
from databricks.feature_engineering.entities import (
    CronSchedule, OfflineStoreConfig,
)

fe = FeatureEngineeringClient()

materialized = fe.materialize_features(
    features=features,
    offline_config=OfflineStoreConfig(
        catalog_name="main",
        schema_name="feature_store",
        table_name_prefix="customer_features"
    ),
    trigger=CronSchedule(
        quartz_cron_expression="0 0 * * * ?",  # Hourly
        timezone_id="UTC",
    ),
)

Zpřístupnit v online obchodě

Note

Abyste mohli většinu agregačních funkcí zařadit do online obchodu, musíte také navštívit kamenný obchod. Obě offline_config a online_config jsou povinné. online_store_name musí odkazovat na existující online Feature Store. Pokyny k jeho vytvoření najdete v tématu Databricks Online Feature Stores.

ColumnSelection funkce nevyžadují OfflineStoreConfig. Viz materializace ColumnSelection.

Dávka Last se speciálním případem RollingWindow je také dostupná pouze online. Viz Materializace nejnovějších hodnot omezených čerstvostí.

from databricks.feature_engineering import FeatureEngineeringClient
from databricks.feature_engineering.entities import (
    CronSchedule, OfflineStoreConfig, OnlineStoreConfig,
)

fe = FeatureEngineeringClient()

materialized = fe.materialize_features(
    features=features,
    offline_config=OfflineStoreConfig(
        catalog_name="main",
        schema_name="feature_store",
        table_name_prefix="customer_features"
    ),
    online_config=OnlineStoreConfig(
        catalog_name="main",
        schema_name="feature_store",
        table_name_prefix="customer_features_serving",
        online_store_name="customer_features_store"
    ),
    trigger=CronSchedule(
        quartz_cron_expression="0 0 * * * ?",  # Hourly
        timezone_id="UTC",
    ),
)

Materializace funkcí streamování

Funkce streamování lze materializovat pouze do online obchodů; parametr offline_config není podporován. Offline materializace není podporována, protože streamovací funkce vyžadují pipeline v reálném čase, aby byla zajištěna aktuálnost kratší než jedna sekunda. V případě offline trénování nebo vyhodnocení klient přípravy funkcí znovu zkompiuje hodnoty funkcí na základě vyhodnocených datových bodů.

Funkce streamování se nedají kombinovat s dávkovými funkcemi ve stejném materialize_features volání.

from databricks.feature_engineering import FeatureEngineeringClient
from databricks.feature_engineering.entities import (
    OnlineStoreConfig, StreamingMode,
)

fe = FeatureEngineeringClient()

materialized = fe.materialize_features(
    features=[streaming_feature],
    online_config=OnlineStoreConfig(
        catalog_name="my_catalog",
        schema_name="my_schema",
        table_name_prefix="streaming_features_serving",
        online_store_name="feature_store_online"
    ),
    trigger=StreamingMode(),
)

list_materialized_features()

Vrátí materializace jednoho atributu identifikovaného jeho úplným názvem. feature_name je povinný a lze jej zadat pouze jako pojmenovaný argument. Chcete-li zkontrolovat materializace napříč mnoha funkcemi, nejprve vypište seznam funkcí v katalogu nebo ve schématu a poté na každé vrácené funkci zavolejte list_materialized_features.

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

FeatureEngineeringClient.list_materialized_features(
    *,                                      # Arguments are keyword-only
    feature_name: str,                      # Required: full name of the feature whose materializations to list
    max_results: int = 100,                 # Maximum number of materializations to return
) -> List[MaterializedFeature]:

delete_materialized_feature()

Před odstraněním materializované funkce odeberte nebo aktualizujte všechny modely nebo specifikace funkcí, které na tuto funkci odkazují.

Odstraní materializovanou vlastnost. Funkce, která se má předat, závisí na typu funkce:

  • Funkce agregace: Předání offline materializované funkce Pokud existuje online materializovaná funkce pro stejnou funkci, obě se odstraní. Pro dávkovou funkci pouze online s RollingWindow, předejte online materializovanou funkci Last.
  • ColumnSelection funkce: Předejte online materializovanou funkci. ColumnSelection vlastnosti jsou materializovány pouze v online obchodě (viz materializace ColumnSelection), takže neexistuje žádná propojená offline vlastnost.

V rámci materializace jsou funkce seskupené podle zdroje dat a časového intervalu agregace pro zajištění efektivity. ColumnSelection funkce nemají žádné okno agregace, takže jsou seskupené pouze podle zdroje dat. Kanál materializace, offline tabulka a online tabulka se neodstraní, dokud se neodstraní všechny seskupené vlastnosti. Když se odstraní poslední materializovaná funkce ve skupině, úložiště funkcí naplánuje přidružené prostředky pro automatické vyčištění procesem na pozadí. Viz Vyčištění prostředků na pozadí.

Pokud chcete vyčistit materializované funkce, podívejte se na tabulku přidruženou k materializované funkci. Před vyčištěním výpočetních prostředků a prostředků tabulky Delta je nutné odstranit každou funkci v tabulce (jednu na sloupec).

Použijte list_materialized_features() k získání argumentu materialized_feature.

FeatureEngineeringClient.delete_materialized_feature(
    materialized_feature: MaterializedFeature,  # Required: The materialized feature to delete
) -> None
from databricks.feature_engineering import FeatureEngineeringClient

fe = FeatureEngineeringClient()

feature_names = [
    "main.feature_store.amount_sum_sliding_7d_1d",
    "main.feature_store.amount_sum_sliding_30d_1d",
    "main.feature_store.transaction_count_sliding_7d_1d",
    "main.feature_store.latest_transaction_amount",
    "main.feature_store.latest_user_tier",
]

for name in feature_names:
    mfs = fe.list_materialized_features(feature_name=name)   # required, keyword-only
    offline = [mf for mf in mfs if not mf.is_online]
    for mf in (offline or mfs):
        fe.delete_materialized_feature(materialized_feature=mf)
    fe.delete_feature(full_name=name)

Čištění prostředků na pozadí

Když odstraníte materializovanou funkci, Databricks okamžitě odebere metadata funkce. Přidružená infrastruktura (tabulky, kanály a úlohy) se asynchronně vyčistí procesem na pozadí.

Vzhledem k tomu, že více materializovaných prvků může sdílet stejné tabulky a kanály zpracování, tyto sdílené prostředky se neodstraní, dokud nebude odstraněn každý materializovaný prvek, který na ně odkazuje. Když se odstraní poslední materializovaná funkce sdílející sadu tabulek, proces na pozadí automaticky odstraní následující prostředky:

  • Offline tabulky Delta obsahující materializovaná data funkcí
  • Online tabulky, pokud byly funkce materializovány do online obchodu
  • Kanál materializace
  • Orchestrační úloha

Tento proces na pozadí používá instanční objekt systému spravovaný službou Databricks k provedení těchto akcí čištění vaším jménem, včetně odstranění tabulek, kanálů a úloh ve vašem pracovním prostoru. Od vás není nutná žádná akce. Čištění je plně spravováno úložištěm funkcí.

Note

Mezi odstraněním poslední materializované funkce ve skupině a odebráním přidružených tabulek a dalších prostředků může dojít k krátké prodlevě.

Zobrazení stavu materializace

Chcete-li v uživatelském rozhraní Databricks zobrazit stav materializace svých Feature Views a ladit chyby materializace, přečtěte si Explore Feature Views in Unity Catalog.

Omezení

Funkce služby Batch

  • Kanály pro dávkovou materializaci běží jako bezserverové pipeline Lakeflow.
  • Funkce dávkového rolovacího okna nelze materializovat, kromě speciálního případu pouze online Last popsaného v Materialize freshness-bounded latest values. Pro offline trénink nebo dávkovou inferenci se prvky rolling window počítají ze zdrojových dat pro každé bodové vyhledávání.
  • ColumnSelection funkce lze implementovat pouze do online obchodů.
  • RequestSource, FeatureViewSource a CustomUDF prvky nelze materializovat. Viz Funkce na vyžádání a materializace.
  • Materializované funkce je možné odstranit pouze v pracovním prostoru, ve kterém byly vytvořeny.
  • Pouze uživatel, který vytvořil materializovanou funkci, ji může smazat, bez ohledu na oprávnění Unity Catalog na této funkci nebo její nadřazené schéma.
  • U materializovaných agregačních funkcí nelze online materializovanou funkci odstranit přímo. Odstraňte spárovanou offline materializovanou vlastnost a změna se rozšíří na obě strany.
  • U materializovaných agregačních funkcí vytvořených před 20. dubnem 2026 kanál materializace pokračuje v vytváření nových hodnot funkcí, dokud nebudou odstraněny všechny materializované funkce v kanálu, což aktivuje vyčištění prostředků. Chcete-li vytvořit aktualizovaný kanál, který podporuje odstranění jednotlivých funkcí, odstraňte a znovu zmaterializujte funkci.
  • U materializovaných ColumnSelection funkcí kanál materializace pokračuje ve vytváření nových hodnot funkcí, dokud nebudou odstraněny všechny materializované funkce v kanálu, což aktivuje vyčištění prostředků.

Funkce streamování

  • Funkce streamování je možné materializovat pouze do online obchodů. Offline materializace není nutná, protože funkce streamování v době trénování jsou navržené tak, aby byly přepočítané z historických událostí na datový bod, aby poskytovaly přesnost na úrovni milisekund.
  • Funkce streamování nelze kombinovat s dávkovými funkcemi v jednom materialize_features volání.
  • compute_features nepodporuje funkce streamování.
  • Pracovní prostor musí být v oblasti, která podporuje instance Lakebase.
  • Zprávy Kafka mohou používat JSON, Avro nebo Protobuf. Pro požadavky na schémata a omezení registru schémat viz registr schémat.
  • Pro funkce agregace streamování jsou podporovány pouze RollingWindow a SawtoothWindow. TumblingWindow a SlidingWindow měly by být použity s funkcemi batch. Viz Časová okna pro streamovací funkce.
  • Pro streamovací funkce jsou podporovány pouze agregační funkce StddevPop, FirstDistinct, Last, LastN, First, FirstN, Min, Max, LastDistinct, Sum, Avg a Count.
  • Funkce výběru sloupců ze streamovaných zdrojů nezpracují zprávy mimo pořadí. Zobrazí se nejnovější událost streamu Kafka, i když je hodnota sloupce timeseries starší než dříve přijatá událost.
  • Kanály streamování se restartují dvakrát týdně. Každé restartování může způsobit zpoždění zpracování a dobu spuštění až 1 minutu. S výjimkou restartování je aktuálnost p99 200 ms.
  • Backfill pro materializaci není podporován. Když se prvek materializuje, počítá se od tohoto okamžiku dál. Nově vytvořené agregace v internetovém obchodě jsou nepřesné, dokud neuplyne jejich časové okno.
  • Podporována je pouze služba Databricks Online Feature Store.
  • Kanály pro materializaci streamovaných dat fungují jako bezserverové kanály Lakeflow.