Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Fontos
Ez a funkció nyilvános előzetes verzióban van. A munkaterület rendszergazdái az Előnézetek lapon szabályozhatják a funkcióhoz való hozzáférést. Lásd: Az Azure Databricks előzetes verziójának kezelése.
Miután létrehozta a Unity Katalógusban tárolt funkciónézet-definíciókat, a szolgáltatásdefiníciók használatával szolgáltatásadatokat állíthat elő a forrástáblából. Ezt a folyamatot a funkciók materializálásának nevezzük. Az Azure Databricks Lakeflow-folyamatokat hoz létre és kezel a Unity Catalogban lévő táblák feltöltéséhez modellbetanításhoz, kötegelt pontozáshoz vagy online kiszolgáláshoz.
A szolgáltatásnézetek kiszolgálásáról további információt a Szolgáltatásnézetek kiszolgálása című témakörben talál.
Requirements
- A funkciókat szolgáltatásnézetként kell létrehozni, és a Unity Katalógusban kell tárolni.
- A verziókövetelményekről a Követelmények című témakörben olvashat.
-
ColumnSelectionszolgáltatásokat lehet materializálni az online áruházakban. Lásd : ColumnSelection materialization. -
RequestSourcea funkciók nem materializálhatók, mert a következtetési időpontban megadott adatokat jelölik.
Permissions
A materializálás kapcsolatban áll a funkción beállított MANAGE és READ FEATURE Unity Catalog-jogosultságokkal. A jogosultságok teljes leírását lásd itt: READ FEATURE.
- Egy funkció materializálásához szükség van
MANAGErá. A(z)materialize_featuresvagydelete_materialized_featuremeghívása létrehozza és kezeli a mögöttes Lakeflow-adatfolyamokat és Unity Catalog-táblákat, ezért ez felügyeleti műveletnek minősül. A funkcióhozMANAGEjogosultsággal kell rendelkeznie, valamintREAD FEATUREjogosultsággal a materializált funkciódefiníció olvasásához. - A materializált adatok olvasásához szükséges
READ FEATURE.READ FEATUREa funkció hozzáférést biztosít a háttérként szolgáló offline és online táblákhoz, így a materializált adatokat felhasználhatja a modell betanításához és kiszolgálásához.list_materialized_featuresszintén igényli a(z)READ FEATURE-t.
Mint minden Unity Catalog-objektum esetében, a szülőkatalóguson is szüksége van a USE CATALOG jogosultságra, a szülősémán pedig a USE SCHEMA jogosultságra.
READ FEATURE és MANAGE a sémán vagy katalóguson megadott összes jelenlegi és jövőbeli funkcióra érvényes.
API-adatstruktúrák
OfflineStoreConfig
Az offline áruház konfigurációja, ahol a materializált funkciók meg lesznek írva. Amikor materialize_features meghívják, a szolgáltatástár háttérrendszere ezzel az előtaggal hoz létre táblákat. Minden folyamatfuttatás a materializálási ütemezésnek megfelelően materializálja a legújabb funkcióértékeket a táblában.
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
Az online áruház konfigurációja, amely a modellkiszolgáló által használt funkciókat tárolja. A materializálás létrehozza a Delta-táblákat catalog.schema.table_name_prefix-val/vel, és ugyanazon névvel streameli őket az Online jellemzőtárolóba.
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
Olyan funkciónézetet jelöl, amely materializált, azaz előre lefordított megjelenítéssel rendelkezik, amely elérhető a Unity Katalógusban. Az offline és az online táblához külön materializált funkciók tartoznak. A felhasználók általában nem hoznak létre közvetlenül példányt MaterializedFeature.
API-függvényhívások
materialize_features()
A funkciónézetek listáját offline Delta-táblába vagy online szolgáltatástárba helyezi. A funkciókat regisztrálni kell a Unity Katalógusban a függvény meghívása előtt (például create_feature vagy register_feature használatával). A helyileg létrehozott, nem regisztrált funkciók nem fognak működni.
FeatureEngineeringClient.materialize_features(
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
) -> List[MaterializedFeature]:
A metódus visszaadja a materializált funkciók listáját, amelyek metaadatokat tartalmaznak arról, hogy mikor frissülnek a funkcióértékek, és a Unity-katalógus táblázatai, amelyekben a funkciók materializálva vannak.
Ha mind egy OnlineStoreConfig , mind egy OfflineStoreConfig meg van adva, akkor a rendszer két materializált funkciót ad vissza a megadott funkciók szerint, egyet az egyes tárolótípusokhoz.
A trigger paraméter szabályozza a materializálási folyamat futását:
-
CronSchedule: Rögzített ütemezés szerint fut. Támogatott a batch aggregációs funkciókhoz (AggregationFunctionfromDeltaTableSource). -
TableTrigger: Akkor fut, amikor a felsőbb rétegbeli Delta-tábla véglegesítést kap. Támogatott funkciókColumnSelectionés aggregációs funkciók (AggregationFunction) támogatásával, amelyet egyDeltaTableSource. Az aggregációs funkciók esetén a csővezetéket korlátozva futják, legfeljebb egyszer fut a funkció ablakhosszának felében. Például legfeljebb 30 percenként egyszer egy 1 órás időablakon, de soha többször mint 5 percente. -
StreamingMode: Folyamatos streamelési folyamatként fut. A(z)StreamSourceáltal támogatott funkciókhoz szükséges.
Nem kombinálhatja azokat a funkciókat, amelyek különböző eseményindító-típusokat igényelnek egyetlen materialize_features hívásban. Ehelyett bocsássanak ki külön hívásokat.
Anyagiasítás egy offline boltban
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",
),
)
Átültetés egy online áruházra
Megjegyzés:
Az aggregációs funkciók online áruházakban való materializálásához offline áruházat is létre kell hoznia. Mindkettőre offline_configonline_config szükség van. A online_store_name programnak egy meglévő online szolgáltatástárolóra kell hivatkoznia. A létrehozással kapcsolatos utasításokért tekintse meg a Databricks Online szolgáltatástárolóit.
ColumnSelection funkciókhoz nincs szükség a OfflineStoreConfig-ra. Lásd : ColumnSelection materialization.
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",
),
)
Streamelési funkciók materializálása
A streamelési funkciók csak online áruházakban valósulhatnak meg; a offline_config paraméter nem támogatott. Az offline materializálás nem támogatott, mert a streamelési funkciók valós idejű folyamatot igényelnek a másodperc alatti frissesség biztosításához. Offline betanítás vagy kiértékelés esetén a szolgáltatásmérnöki ügyfél minden kiértékelt adatpont alapján újrafordítja a szolgáltatásértékeket.
A streamelési funkciók nem keverhetők egy materialize_features hívás kötegfunkcióival.
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()
Egyetlen funkció materializációit adja vissza, amelyet a teljes neve azonosít.
feature_name kötelező, és csak kulcsszóként adható meg. A számos funkció materializációinak áttekintéséhez először sorolja fel a katalógus vagy séma funkcióit, majd hívja meg list_materialized_features az egyes visszaadott funkciókat.
Alapértelmezés szerint a rendszer legfeljebb 100 materializációt ad vissza. Ezt a korlátot a paraméterrel módosíthatja 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()
A materializált funkciók törlése előtt távolítsa el vagy frissítse a szolgáltatásra hivatkozó modelleket vagy szolgáltatás-specifikációkat.
Materializált funkció törlése. Az átadni kívánt funkció a szolgáltatás típusától függ:
- Összesítési funkciók: Adja át az offline materializált funkciót. Ha ugyanahhoz a funkcióhoz online materializált funkció tartozik, mindkettő törlődik.
-
ColumnSelectionfunkciók: Adja át az online materializált funkciót.ColumnSelectiona funkciók csak az online áruházban vannak materializálva (lásd : ColumnSelection materialization), így nincs párosított offline funkció.
A materializálás részeként a funkciók adatforrás és összesítési ablak szerint vannak csoportosítva a hatékonyság érdekében.
ColumnSelection a funkcióknak nincs összesítési ablakuk, ezért csak adatforrások szerint vannak csoportosítva. A materializálási folyamat, az offline tábla és az online tábla mindaddig nem törlődik, amíg az összes csoportosított funkció nem törlődik. A csoport utolsó materializált funkciójának törlésekor a funkciótároló egy háttérfolyamattal ütemezi a társított erőforrásokat az automatikus törléshez. Lásd: Háttérerőforrás-karbantartás.
A materializált funkciók eltávolításához tekintse meg a materializált funkcióhoz társított táblát. A számítás és a Delta tábla erőforrásainak megtisztítása előtt törölni kell a tábla minden funkcióját (oszloponként egyet).
Az argumentum lekérésére list_materialized_features() használható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)
OszlopKiválasztás anyagiasítás
ColumnSelection a funkciók az entitáskulcsonkénti egyetlen oszlop legújabb értékét választják ki összesítés nélkül. Ezeket csak online áruházakban lehet materializálni. Offline használati esetek (betanítás és kötegelt következtetés) ColumnSelection esetén a funkciók lekérdezéskor közvetlenül a forrásadatokból lesznek lekérve, így nincs szükség offline materializálásra.
Materializálási viselkedés
- A folyamat entitáskulcsonként a legutóbbi sort írja az online táblába összesítési ablak nélkül.
- Az online materializálás feltölti az online táblát az entitáskulcsonkénti aktuális legújabb értékkel.
Example
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 funkciói a TableTrigger használatával futtatják a folyamatot, amikor a forrás Delta-tábla új commitot kap. Nem offline_config szükséges, mert ColumnSelection funkciók közvetlenül a forrásból olvasnak offline esetekhez (betanítás és kötegelt következtetés).
Megjegyzés:
RequestSource a jellemzők nem képezhetők, mert a hívó által a következtetési időpontban megadott adatokat jelölik (vagy a betanításkor kinyerik a címkézett DataFrame-ből). Nincs forrástábla, amelyből olvasni lehet. Az értékek csak a kérés törzsében vagy a betanításhoz használt DataFrame-ben találhatók meg.
Háttérerőforrás-karbantartás
Egy materializált funkció törlésekor a Databricks azonnal eltávolítja a szolgáltatás metaadatait. A társított infrastruktúra (táblák, adatfolyamok és feladatok) eltávolítása aszinkron módon, egy háttérfolyamat által történik.
Mivel több materializált funkció is megoszthatja ugyanazokat a táblákat és folyamatokat, ezek a megosztott erőforrások mindaddig nem lesznek eltávolítva, amíg az rájuk hivatkozó összes materializált funkciót nem törölték. Amikor az utolsó materializált funkciómegosztás egy táblakészletet töröl, a háttérfolyamat automatikusan törli a következő erőforrásokat:
- A materializált szolgáltatásadatokat tartalmazó offline Delta-táblák
- Az online táblák, ha a funkciók egy online áruházban valósultak meg
- A materializálási folyamat
- Az orchesztrációs feladat
Ez a háttérfolyamat egy Databricks által felügyelt rendszerszolgáltatás-tag használatával hajtja végre ezeket a törlési műveleteket az Ön nevében, beleértve a táblák, folyamatok és feladatok törlését a munkaterületen. Nincs szükség semmilyen intézkedésre az Ön részéről. A tisztítás kezelését teljes mértékben a feature store végzi.
Megjegyzés:
Előfordulhat, hogy a csoport utolsó materializált funkciójának törlése és a kapcsolódó táblák és egyéb erőforrások eltávolítása között rövid késleltetés áll fenn.
Materializálás állapotának megtekintése
A Feature View-k materializálási állapotának megtekintéséhez a Databricks felhasználói felületén, beleértve a materializálási hibák hibakeresését is, lásd: Feature View-k felfedezése a Unity Catalogban.
Korlátozások
Batch-funkciók
- A batch materializálási folyamatok kiszolgáló nélküli Lakeflow-folyamatokként futnak.
- A kötegelt gördülőablak-funkciók nem valósulhatnak meg. Az időzítés pontos megbízhatósága miatt az offline betanítás vagy a kötegelt következtetés gördülő ablak funkciói azonnal létrejönnek minden adatponthoz.
-
ColumnSelectionszolgáltatások csak online áruházakban valósulhatnak meg. -
RequestSourcefunkciókat nem lehet materializálni. - A materializált funkciók csak abban a munkaterületen törölhetők, amelyben létrehozták őket.
- A materializált összesítési funkciók esetében az online materializált funkció nem törölhető közvetlenül. Törölje a párosított offline materializált jellemzőt, és a módosítás mindkettőre érvényes lesz.
- A 2026. április 20. előtt létrehozott materializált aggregációs funkciók esetében a materializálási folyamat mindaddig új funkcióértékeket hoz létre, amíg a folyamat összes materializált szolgáltatását el nem törlik, ami az erőforrás-törlést váltja ki. Ha olyan frissített folyamatot szeretne létrehozni, amely támogatja a funkciónkénti törlést, törölje és hozza létre újra a funkciót.
- A materializált
ColumnSelectionszolgáltatások esetében a materializálási folyamat mindaddig új funkcióértékeket hoz létre, amíg a folyamat összes materializált szolgáltatása el nem törlődik, ami az erőforrás-törlést váltja ki.
Streamelési funkciók
- A streamelési funkciók csak online áruházakban valósulhatnak meg. Nincs szükség offline materializálásra, mert a tanításkor használt streamingjellemzőket úgy alakították ki, hogy az egyes adatpontokhoz tartozó historikus eseményekből újra lehessen őket számítani, ezredmásodperces pontosság biztosítása mellett.
- A streamelési funkciók nem keverhetők egy hívás kötegfunkcióival
materialize_features. -
compute_featuresnem támogatja a streamelési funkciókat. - A munkaterületnek olyan régióban kell lennie, ahol támogatott a Lakebase-példányok használata.
- Csak JSON-szerializált Kafka-üzenetek támogatottak. Az üzenetsémákat közvetlenül JSON-séma formátumban kell megadni. A sémaregisztrációs adatbázisok (Confluent, Glue) formálisan nem támogatottak az előzetes verzióban, de ha közvetlenül adja meg a sémát, a folyamatok a sémaregisztrációs adatbázis által szabályozott témakörökből olvashatnak.
- A streamelési aggregációs funkciókhoz csak a(z)
RollingWindowtámogatott. A(z)TumblingWindowésSlidingWindowelemeket a kötegelt funkciókhoz kell használni. - A streamelési funkciók csak
Count,Avg,Sum,StddevPop,Max,MinésLastösszesítő függvényeket támogatnak. - A streamelési forrásokból származó oszlopkijelölési funkciók nem kezelik a rendelésen kívüli üzeneteket. A Kafka-stream legújabb eseménye akkor is megjelenik, ha az időbélyegek oszlopának értéke korábbi, mint egy korábban kapott esemény.
- A streamelési folyamatok hetente kétszer újraindulnak. Minden újraindítás akár 1 perces feldolgozási késéseket és indítási időket is okozhat. Az újraindítások kivételével a p99 frissesség 200 ms.
- A funkciók utólagos feltöltése materializálás esetén nem támogatott. Ha egy funkció materializálva van, attól a ponttól számít előre. Az online áruházban újonnan létrehozott összesítések pontatlanok, amíg el nem telt az időkeretük.
- Csak a Databricks Online feature Store támogatott.
- Csak a saját felhőalapú objektumtárolóban létrehozott Standard Katalógusok támogatottak a Unity Katalógusban. Az alapértelmezett tárolóban létrehozott katalógusok nem használhatók.
- A streaming materializációs folyamatok szerver nélküli Lakeflow-folyamatokként futnak.
- Csak vállalati szintű munkaterületek.