Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion. Arbetsyteadministratörer kan styra åtkomsten till den här funktionen från sidan Förhandsversioner . Se Hantera förhandsversioner av Azure Databricks.
När du har skapat definitionerna för funktionsvyn, som lagras i Unity Catalog, kan du skapa funktionsdata från källtabellen med hjälp av funktionsdefinitionerna. Den här processen kallas materialisering av dina funktioner. Azure Databricks skapar och hanterar Lakeflow-pipelines för att fylla i tabeller i Unity Catalog för modellträning och batchbedömning eller onlineservering.
Mer information om servering av Feature Views finns i Serve Feature Views.
För att ta bort materialiserade värden för valda entiteter, se Rensa feature-värden för entiteter.
Kravspecifikation
- Funktioner måste skapas som funktionsvyer och lagras i Unity Catalog.
- Versionskrav finns i Krav.
Materialiseringsstöd efter funktionstyp
Om och var en egenskap kan materialiseras beror på dess typ:
-
ColumnSelectionfunktioner kan förverkligas i onlinebutiker. Se ColumnSelection-materialisering. - Batch-
Lastfunktioner med enRollingWindowkan materialiseras i onlinelager. Se Materialize färskhetsbegränsade senaste värden. -
RequestSource,FeatureViewSource, ochCustomUDFegenskaper kan inte materialiseras. Se On-demand-funktioner och materialisering.
Funktioner som endast materialiseras i onlinebutiker är fortfarande användbara offline: create_training_set och compute_features beräknar sina tidpunktsvärden direkt från källan, så ingen offline-materialisering behövs.
ColumnSelection-materialisering
ColumnSelection funktioner väljer det senaste värdet för en enskild kolumn per entitetsnyckel utan aggregering. De kan bara realiseras i onlinebutiker. För offlineanvändningsfall (träning och batchinferens) ColumnSelection hämtas funktionerna direkt från källdata vid frågetillfället, så offlinematerialisering behövs inte.
Materialiseringsbeteende
- Pipelinen skriver den senaste raden per entitetsnyckel till onlinetabellen, utan aggregeringsfönster.
- Onlinematerialisering fyller onlinetabellen med det senaste värdet per entitetsnyckel.
Exempel
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-funktioner använder TableTrigger, som kör pipelinen när källtabeln Delta tar emot en ny commit. Nej offline_config behövs eftersom ColumnSelection funktioner läss direkt från källan för offlineanvändningsfall (träning och batchinferens).
Note
RequestSource funktioner kan inte materialiseras eftersom de representerar data som tillhandahålls av anroparen vid slutsatsdragningstid (eller extraheras från den märkta DataFrame vid träningstid). Det finns ingen källtabell att läsa från. Värdena finns bara i nyttolasten för begäran eller i dataramen för träning.
Materialisera senaste värden med färskhetsgräns
En batchaggregering Last med en RollingWindow ger en onlinefunktion en time-to-live (TTL): dess värde försvinner utanför onlinebutiken när inget källvärde faller inom fönstret. Detta är användbart när åldern på ett värde avgör om det är säkert att servera det. Till exempel kan ett enhetstillstånd från den senaste timmen serveras, medan ett äldre tillstånd upplöses till null istället för att förbli tillgängligt på obestämd tid.
A RollingWindow definierar en explicit varaktighet som ger funktionen TTL-liknande beteende. Till exempel, om källan publicerar värden dagligen och du vill behålla endast värden från de senaste sju dagarna, använd en RollingWindow med sju dagars varaktighet. Vid varje trigger gör materialiseringen en fullständig ersättning av onlinetabellen, så värden som faller utanför fönstret tas bort enligt ett förutsägbart schema. Detta ger samma resultat som en strömmande Last med en RollingWindow, men kostar mindre eftersom den inte kör beräkningar kontinuerligt.
Detta publiceringsmönster liknar en funktionstabell med en TTL som publiceras i snapshot-läge. Om du underhåller en uppsättning funktionstabeller och vill använda dem tillsammans med andra funktionsvyer kan du anpassa dem till Feature Views-författarramverket. Använd en batch Last med en RollingWindow och en TableTrigger.
Denna kombination har ett speciellt materialiseringsläge endast online med följande krav:
- Källan måste vara en
DeltaTableSource. - Aggregeringsfunktionen måste vara
Last, och dess fönster måste vara enRollingWindow. - Materialiseringen måste tillhandahålla en
OnlineStoreConfig, utelämnaOfflineStoreConfigoch användaTableTrigger.
I följande exempel latest_device_state_1h är en registrerad funktion som uppfyller dessa krav:
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(),
)
För offline-träning och batchpoängsättning beräknar feature engineering-klienten punkt-i-tid-värdet direkt från källkoden. Den läser inte en offline-materialisering för denna funktion.
Considerations
- Utgången flyttas bara fram av en utlösare. Onlinevärdet och dess utgångstid flyttas fram när en commit i en källtabell utlöser en uppdatering av materialiseringen. Att tiden går i sig utlöser ingen uppdatering. Om källan slutar publicera stannar det sista materialiserade värdet kvar i onlinebutiken tills en senare commit triggar en uppdatering.
- Justera tidsseriekolumnen med källans publiceringstid. Tidsseriekolumnen måste återspegla när källan publicerade datan. Annars skiljer sig online- och offlinevärdena, eftersom onlinebutiken ansluter vid triggertidpunkten medan offline-läsningar ansluter vid tidsserietiden.
- Ställ in fönsterlängden till en multipel av publiceringsfrekvensen. Om varaktigheten
RollingWindowinte är en multipel av källpubliceringsfrekvensen behandlas vissa värden som utgångna under offline-träning medan de fortfarande är synliga online.
Funktioner på begäran och materialisering
RequestSource värdena kommer från träningsdataframes eller inferensförfrågan, så det finns ingen källtabell att materialisera.
FeatureViewSource funktioner tillämpar ett CustomUDF på värden för uppströmsfunktioner vid träning eller servering. De lagrar inte ett förberäknat resultat. Materialisering stöds inte heller för CustomUDF funktioner som stöds av en Delta-tabell.
För en beroendegraf som revenue_sum_7d och cost_sum_7d matar en margin funktion:
- För offlineutbildning, anropa
create_training_setmedmargin. Den löser upp uppströmsfunktionerna och beräknar tidpunktsvärden, med hjälp av kompatibla offline-materialiseringar när de är tillgängliga. - För onlinetjänster, materialisera de stödda intäkterna och kostnadsfunktionerna i en nätbutik. Endpointen slår upp dem och beräknar
marginför varje förfrågan. - Skicka endast de upstream-funktioner som stöds till
materialize_features, intemargineller några förfrågningsbaserade funktioner. Materialisering materialiserar inte rekursivt beroenden för en härledd egenskap.
En graf som endast använder funktioner som baseras på förfrågningar behöver inte något onlinelager. Se Träna med funktioner från FeatureViewSource och Servera härledda funktioner.
behörigheter
Materialisering kräver privilegier på funktionen samt på käll- och destinationsresurserna. För fullständiga Unity Catalog-privilegiebeskrivningar, se referensen för Unity-katalogens privilegier.
Materialisering av en funktion kräver
MANAGE. Att anropamaterialize_featuresskapar och hanterar de underliggande Lakeflow-pipelines och Unity Catalog-tabellerna, så det är en administrativ åtgärd. Du måste haMANAGEpå funktionen, tillsammans medREAD FEATUREför att läsa funktionsdefinitionen som materialiseras.Att ta bort en materialiserad funktion är begränsad till dess skapare. Endast användaren som skapade en materialiserad funktion kan ta bort den med
delete_materialized_feature. Denna begränsning är oberoende av Unity Catalog-privilegier:MANAGEpå funktionen eller dess föräldraschema tillåter inte en annan användare att ta bort den.Att läsa källdata kräver
SELECT. För en funktion som använder en Delta-tabellkälla måste du haSELECTpå källtabellen. För en funktion som använder en Stream-källa måste du haSELECTpå Streamens intagningstabell.För andra behörigheter som krävs av en ströms autentiseringskonfiguration, se Kafka-autentisering.
Att skapa destinationstabeller kräver
CREATE TABLE. Du måste haCREATE TABLEpå varje schema specificerat avOfflineStoreConfigellerOnlineStoreConfig. Offline- och onlinedestinationer kan finnas i olika scheman eller kataloger, och materialisering kräver privilegier på varje destination.Att publicera i en nätbutik kräver
CAN USE. Du måste haCAN USEpå Lakebase-instansen eller i projektet som används av onlinebutiken. För information om Lakebase-tillstånd, se Grant project permissions.Att lista materialiserade funktioner kräver
READ FEATUREpå föräldrafunktionen. För att användalist_materialized_features, måste du haREAD FEATUREpå den funktion som materialiserades.Läsning av materialiserade data kräver
SELECT. Du måste haSELECTpå varje offline- eller online-utdatatabell som du får tillgång till.READ FEATUREpå moderfunktionen ger inte åtkomst till dessa tabeller.
För varje Unity Catalog-resurs som ingår i materialiseringen behöver du också USE CATALOG för dess överordnade katalog och USE SCHEMA för dess överordnade schema. Detta krav gäller för funktionen, varje käll- eller strömintagningstabell och varje konfigurerad destination.
READ FEATURE och MANAGE som beviljas för ett schema eller en katalog gäller alla nuvarande och framtida objekt som det innehåller.
API-datastrukturer
OfflineStoreConfig
Konfiguration för offline-lagret där materialiserade funktioner skrivs in. När materialize_features anropas skapar funktionsarkivets serverdel tabeller med det här prefixet. Varje pipelinekörning materialiserar de senaste egenskapsvärdena i tabellen enligt schema för materialisering.
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 onlinebutiken, som lagrar funktioner som används av modellservern. Materialisering skapar Delta-tabeller med catalog.schema.table_name_prefix, och strömmar tabellerna till Online Feature Store med samma namn.
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
Representerar en funktionsvy som har materialiserats, d.v.s. en förberäknad representation som är tillgänglig i Unity Catalog. Det finns separata materialiserade funktioner för offlinetabellen och onlinetabellen. Vanligtvis instansierar användarna inte en MaterializedFeature direkt.
API-funktionsanrop
materialize_features()
Materialiserar en lista över funktionsvyer i antingen en deltatabell offline eller till en onlinefunktionsbutik. Egenskaper måste registreras i Unity Catalog innan den här funktionen anropas (till exempel med create_feature eller register_feature). Lokalt konstruerade funktioner som inte har registrerats fungerar inte.
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]:
Metoden returnerar en lista över materialiserade funktioner som innehåller metadata om när funktionsvärden uppdateras och Unity Catalog-tabellerna där funktionerna materialiseras.
Om både en OnlineStoreConfig och en OfflineStoreConfig tillhandahålls returneras två materialiserade funktioner per tillhandahållen funktion, en för varje typ av butik.
Parametern trigger styr när materialiseringspipelinen körs:
-
CronSchedule: Körs enligt ett schema som härleds från funktionens tidsinställning eller enligt ett Quartz-cronschema som tillhandahålls av anroparen. Stöds för batchaggregeringsfunktioner (AggregationFunctionfrånDeltaTableSource). -
TableTrigger: Körs när den uppströms Delta-tabellen tar emot en commit. Stöd förColumnSelectionfunktioner och aggregeringsfunktioner (AggregationFunction) som stöds av enDeltaTableSource. För aggregationsfunktioner stryps pipelinen till att köras högst en gång per halva detaljnivån (slide-tiden för ett glidande fönster eller fönsterlängden för ett tumbling-fönster), med en gräns på 1 timme och aldrig oftare än var femte minut. Till exempel högst en gång var 30:e minut för en detaljnivå på 1 timme, eller högst en gång i timmen för en granularitet på 2 timmar eller mer. Intervallet mäts från den föregående körningen, så en incheckning som kommer in efter att intervallet har löpt ut utlöser ändå snabbt en körning. -
StreamingMode: Körs som en pipeline för kontinuerlig direktuppspelning. Krävs för funktioner som backas upp av enStreamSource.
Du kan inte blanda funktioner som kräver olika utlösartyper i ett enda materialize_features anrop. Utfärda separata anrop i stället.
För att attribuera kostnaden för en materialisering anger du tags, budget_policy_id eller båda. Azure Databricks tillämpar dem på det jobb eller den pipeline som det skapar, så att dess användning får med din attribueringsinformation i systemtabellen för debiterbar användning. Båda tillämpas vid skapandet, så att tillskriva en befintlig materialisering på olika sätt innebär att skapa en ny.
budget_policy_id tar ID:t för en serverless användningspolicy. För att skapa en och få dess ID, se Skapa en serverlös användningspolicy. För tagggränser, vilka resurser varje värde når och hur man frågar efter den attributerade kostnaden, se Feature Store kostnadshantering.
Materialisera till offlinebutik
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",
),
)
Materialisera till onlinebutik
Note
För att materialisera de flesta aggregeringsfunktioner till en onlinebutik måste du också materialisera till en offlinebutik. Både offline_config och online_config krävs.
online_store_name Måste referera till en befintlig onlinefunktionsbutik. Anvisningar om hur du skapar en finns i Databricks Online Feature Stores.
ColumnSelection funktionaliteter kräver inte en OfflineStoreConfig. Se ColumnSelection-materialisering.
Gruppen Last med RollingWindow specialfallet är också endast tillgänglig online. Se Materialize färskhetsbegränsade senaste värden.
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",
),
)
Materialisera strömningsfunktioner
Direktuppspelningsfunktioner kan bara materialiseras till onlinebutiker. parametern offline_config stöds inte. Offline-materialisering stöds inte eftersom streamingfunktioner kräver en realtidspipeline för att säkerställa uppdatering inom mindre än en sekund. För offlineträning eller utvärdering beräknar funktionsteknikerklienten om funktionsvärdena baserat på varje utvärderad datapunkt.
Direktuppspelningsfunktioner kan inte blandas med batchfunktioner i samma materialize_features anrop.
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()
Returnerar materialiseringarna för en enskild funktion som identifieras med dess fullständiga namn.
feature_name är obligatorisk och kan endast anges som nyckelordsargument. Om du vill granska materialiseringarna i många funktioner anger du först funktionerna i en katalog eller ett schema och anropar list_materialized_features sedan varje funktion som returneras.
Som standard returneras högst 100 materialiseringar. Du kan ändra den här gränsen med hjälp av parametern 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()
Innan du tar bort en materialiserad funktion tar du bort eller uppdaterar modeller eller funktionsspecifikationer som refererar till funktionen.
Tar bort en materialiserad funktion. Vilken funktion som ska skickas beror på funktionstypen:
-
Sammansättningsfunktioner: Skicka den materialiserade offlinefunktionen. Om det finns en materialiserad onlinefunktion för samma funktion tas båda bort. För en batchfeature
Lastsom endast är online med enRollingWindow, ange det online-materialiserade featuret. -
ColumnSelectionfunktioner: Överför den materialiserade funktionen online.ColumnSelectionfunktioner materialiseras endast i onlinebutiken (se ColumnSelection-materialisering), så det finns ingen motsvarande offlinefunktion.
Som en del av materialiseringen grupperas funktionerna efter datakälla och aggregeringsfönster för effektivitet.
ColumnSelection funktioner har inget aggregeringsfönster, så de grupperas endast efter datakälla. Materialiseringspipelinen, offlinetabellen och onlinetabellen tas inte bort förrän alla grupperade funktioner har tagits bort. När den senaste materialiserade funktionen i en grupp tas bort schemalägger funktionsarkivet de associerade resurserna för automatisk rensning av en bakgrundsprocess. Se Rensning av bakgrundsresurser.
Om du vill rensa materialiserade funktioner kan du titta på tabellen som är associerad med en materialiserad funktion. Varje funktion i tabellen (en per kolumn) måste tas bort innan beräknings- och Delta-tabellresurser rensas.
Använd list_materialized_features() för att hämta materialized_feature argumentet.
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)
Rensning av bakgrundsresurser
När du tar bort en materialiserad funktion tar Databricks bort funktionsmetadata omedelbart. Den tillhörande infrastrukturen (tabeller, pipelines och jobb) rensas asynkront av en bakgrundsprocess.
Eftersom flera materialiserade funktioner kan dela samma tabeller och pipelines tas inte dessa delade resurser bort förrän alla materialiserade funktioner som refererar till dem har tagits bort. När den senaste materialiserade funktionen som delar en uppsättning tabeller tas bort tar bakgrundsprocessen automatiskt bort följande resurser:
- Delta-offlinetabellerna som innehåller materialiserade funktionsdata
- Onlinetabellerna, om funktionerna materialiserades till en onlinebutik
- Materialiseringspipelinen
- Orkestreringsjobbet
Den här bakgrundsprocessen använder ett systemtjänsthuvudnamn som hanteras av Databricks för att utföra dessa rensningsåtgärder åt dig, bland annat genom att ta bort tabeller, pipelines och jobb i arbetsytan. Ingen åtgärd krävs från din sida. Rensningen hanteras fullständigt av feature store.
Note
Det kan uppstå en kort fördröjning mellan borttagningen av den senaste materialiserade funktionen i en grupp och borttagningen av de associerade tabellerna och andra resurser.
Visa materialiseringsstatus
För att se materialiseringsstatusen för dina Feature Views i Databricks UI och felsöka materialiseringsfel, se Utforska Feature Views i Unity-katalogen.
Begränsningar
Batch-funktioner
- Pipelines för materialisering i batch körs som serverlösa Lakeflow-pipelines.
- Funktioner för rullande batchfönster kan inte materialiseras, förutom i det särskilda fallet som endast gäller online och som beskrivs i Materialisera senaste värden med friskhetsgräns
Last. För offline-träning eller batchinferens beräknas funktioner baserade på glidande fönster från källdata för varje uppslagning vid en viss tidpunkt. -
ColumnSelectionfunktioner kan endast göras tillgängliga för onlinebutiker. -
RequestSource,FeatureViewSource, ochCustomUDFegenskaper kan inte materialiseras. Se On-demand-funktioner och materialisering. - Materialiserade funktioner kan bara tas bort på arbetsytan där de skapades.
- Endast användaren som skapade en materialiserad funktion kan ta bort den, oavsett Unity Catalog-rättigheter för funktionen eller dess föräldraschema.
- För materialiserade aggregeringsfunktioner kan den materialiserade onlinefunktionen inte tas bort direkt. Ta bort den kopplade offlinematerialiserade funktionen och ändringen sprids till båda.
- För materialiserade aggregeringsfunktioner som skapades före den 20 april 2026 fortsätter materialiseringspipelinen att producera nya funktionsvärden tills alla materialiserade funktioner i pipelinen har tagits bort, vilket utlöser resursrensning. Om du vill skapa en uppdaterad pipeline som stöder borttagning per funktion tar du bort och materialiserar funktionen igen.
- För materialiserade
ColumnSelectionfunktioner fortsätter materialiseringspipelinen att producera nya funktionsvärden tills alla materialiserade funktioner i pipelinen har tagits bort, vilket utlöser resursrensning.
Direktuppspelningsfunktioner
- Direktuppspelningsfunktioner kan bara materialiseras till onlinebutiker. Offlinematerialisering behövs inte eftersom strömningsfunktioner vid träningstillfället är utformade för att omberäknas från historiska händelser per datapunkt för att ge noggrannhet på millisekundersnivå.
- Strömningsfunktioner kan inte blandas med batchfunktioner i ett enda
materialize_featuresanrop. -
compute_featuresstöder inte direktuppspelningsfunktioner. - Arbetsytan måste finnas i en region som stöder Lakebase-instanser.
- Endast JSON-serialiserade Kafka-meddelanden stöds. Meddelandescheman måste anges direkt i JSON-schemaformat. Schemaregister (Confluent, Glue) stöds inte formellt under förhandsversionen, men om du anger schemat direkt kan pipelines läsa från ämnen som styrs av ett schemaregister.
- Endast
RollingWindowstöds för strömningsaggregeringsfunktioner.TumblingWindowochSlidingWindowbör användas med batchfunktioner. - Endast
Count,Avg,Sum,StddevPop,Max,Min,First,LastNFirstDistinctLastFirstN, ochLastDistinctaggregeringsfunktioner stöds för strömningsfunktioner. - Kolumnvalsfunktioner från strömmande källor hanterar inte meddelanden som inte är i ordning. Den senaste händelsen på Kafka-strömmen visas, även om kolumnvärdet för tidsserier är tidigare än en tidigare mottagen händelse.
- Streamningspipelines startas om två gånger i veckan. Varje omstart kan orsaka bearbetningsfördröjningar och starttider på upp till 1 minut. Förutom omstarter är p99-färskheten 200 ms.
- Funktionsbakfyllnad för materialisering stöds inte. När en funktion materialiseras beräknas den från den punkten framåt. Nyligen skapade aggregeringar i webbutiken är inte korrekta förrän deras tidsfönster har passerat.
- Endast Databricks Online Feature Store stöds.
- Pipelines för strömmande materialisering körs som serverlösa Lakeflow-pipelines.
- Endast arbetsytor på Enterprise-nivå.