Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Databricks Online Feature Stores zijn een krachtige, schaalbare oplossing voor het leveren van functiegegevens aan onlinetoepassingen en realtime machine learning-modellen. Met behulp van Databricks Lakebase bieden online functiewinkels toegang met lage latentie tot featuregegevens op grote schaal, terwijl de consistentie met uw offline functietabellen behouden blijft.
De belangrijkste gebruiksvoorbeelden voor onlinefunctiearchieven zijn:
- Functies leveren aan realtime-toepassingen zoals aanbevelingssystemen, fraudedetectie en personalisatie-engines met behulp van functie-service-eindpunten.
- Automatische kenmerkopzoeking voor realtime inference in modelserver-eindpunten.
Note
Online functionaliteitswinkels ondersteunen alleen ingerichte Lakebase-instanties. Zie Geprovisioneerde instanties van Lakebase voor regiobeschikbaarheid en capaciteitsopties.
Requirements
Databricks Online Feature Stores vereist Databricks Runtime 16.4 LTS ML of hoger. U kunt ook serverloze berekeningen gebruiken.
Als u Databricks Online Feature Stores wilt gebruiken, moet u eerst het pakket installeren. De volgende regels code moeten worden uitgevoerd telkens wanneer een notebook wordt uitgevoerd:
%pip install databricks-feature-engineering>=0.13.0
dbutils.library.restartPython()
Een online winkel maken
Note
De create_online_store API biedt alleen ondersteuning voor het maken van met Lakebase ingerichte database-exemplaren.
Wanneer u een online winkel maakt, richt u een maximaal beschikbare beheerde infrastructuur in voor realtime-functies. De create_online_store API maakt een Lakebase-exemplaar aan met een ingestelde capaciteit. Om kosten te beheren, verwijder webwinkels wanneer ze niet worden gebruikt voor ontwikkeling en testen.
Om een nieuwe online feature store te maken, volg deze stappen:
from databricks.feature_engineering import FeatureEngineeringClient
# Initialize the client
fe = FeatureEngineeringClient()
# Create an online store with specified capacity
fe.create_online_store(
name="my-online-store",
capacity="CU_2" # Valid options: "CU_1", "CU_2", "CU_4", "CU_8"
)
De capaciteitsopties komen overeen met verschillende ingerichte exemplaarprestatielagen: 'CU_1', 'CU_2', 'CU_4' en 'CU_8'. Elke capaciteitseenheid wijst ongeveer 16 GB RAM toe aan het ingerichte database-exemplaar, samen met alle bijbehorende CPU- en lokale SSD-resources. Door omhoog te schalen worden deze resources lineair verhoogd. Zie Exemplaarcapaciteit beheren voor meer informatie over met Lakebase ingerichte exemplaren.
Online winkels beheren
De volgende code laat zien hoe u online winkels ophaalt en bijwerkt:
# List all accessible online stores
stores = fe.list_online_stores()
for store in stores:
print(f"Store: {store.name}, State: {store.state}, Capacity: {store.capacity}")
# Get information about an existing online store
store = fe.get_online_store(name="my-online-store")
if store:
print(f"Store: {store.name}, State: {store.state}, Capacity: {store.capacity}")
# Update the capacity of an online store
updated_store = fe.update_online_store(
name="my-online-store",
capacity="CU_4" # Upgrade to higher capacity
)
Note
Alleen ingerichte exemplaren van Lakebase worden ondersteund in alle online winkel-API's. Gebruik de create_online_store API om de juiste online winkel te configureren.
Leesreplica's toevoegen aan een online winkel
Wanneer u een webwinkel maakt of bijwerkt, kunt u leesreplica's toevoegen aan deze door de read_replica_count parameter op te geven. Leesverkeer wordt automatisch verdeeld over leesreplica's, waardoor de latentie wordt verminderd en de prestaties en schaalbaarheid voor workloads met hoge gelijktijdigheid worden verbeterd.
Een kenmerktabel publiceren op een online winkel
Note
De publish_table API biedt alleen ondersteuning voor publicatiefunctionaliteit voor Provisioned Lakebase database-exemplaren.
Nadat uw online winkel de status BESCHIKBAAR heeft, kunt u functietabellen publiceren om ze beschikbaar te maken voor toegang met lage latentie. De publish_table API synchroniseert gegevens uit uw offline functie naar de online opslag die is gemaakt met behulp van create_online_store API. Bekijk de onderstaande tabel om ervoor te zorgen dat uw offlinebrontabel correct is gemaakt voor de realtime use case.
| Gebruiksituatie | De offlinefunctietabel maken met deze methode |
|---|---|
| Alleen de meest recente functiewaarden voor elke entiteits-id zijn beschikbaar in de online winkel voor realtime toepassingen. Meerdere rijen met dezelfde primaire-sleutelwaarde, maar er kunnen verschillende tijdreekssleutelwaarden bestaan in de offlinegegevensbron en worden ontdubbeld in de publicatiepijplijn. Dit geval wordt het meest gebruikt voor onlinemodellen of functies die eindpunten leveren. |
Tabel maken met tijdreeksaanduiding |
| De meest recente en alle vorige tijdreeksfunctiewaarden uit de offlinetabel zijn beschikbaar in de online winkel voor toegang door realtime toepassingen. Alle rijen uit de brontabel (offline) worden gepubliceerd zonder ontdubbeling. Dit wordt niet vaak gebruikt, maar kan vereist zijn wanneer eindpunten queryfuncties op entiteits-id en exacte datum/tijdstempel voor gegevensverificatie of back-testing nodig zijn. |
Tabel maken zonder tijdreeksaanduiding |
Vereisten voor het publiceren naar online winkels
Alle functietabellen (met of zonder tijdreeks) moeten voldoen aan deze vereisten voordat ze worden gepubliceerd:
- Primaire-sleutelbeperking: vereist voor het publiceren van online winkels
- Niet-nulle primaire sleutels: kolommen met primaire sleutels kunnen geen NULL-waarden bevatten
-
Wijzigingsgegevensfeed ingeschakeld: vereist voor de
CONTINUOUSenTRIGGEREDpublicatiemodi. Zie Wijzigingenfeed inschakelen voor informatie over het inschakelen van de Delta Table Change Data Feed en publicatiemodi voor een discussie over publicatiemodi.
-- Enable CDF if not already enabled
ALTER TABLE catalog.schema.your_feature_table
SET TBLPROPERTIES ('delta.enableChangeDataFeed' = 'true');
-- Ensure primary key columns are not nullable
ALTER TABLE catalog.schema.your_feature_table
ALTER COLUMN user_id SET NOT NULL;
Een functietabel publiceren
Een functietabel publiceren naar een online winkel:
from databricks.ml_features.entities.online_store import DatabricksOnlineStore
# Get the online store instance
online_store = fe.get_online_store(name="my-online-store")
# Publish the feature table to the online store
fe.publish_table(
online_store=online_store,
source_table_name="catalog_name.schema_name.feature_table_name",
online_table_name="catalog_name.schema_name.online_feature_table_name",
# `publish_mode` argument is optional and defaults to "TRIGGERED" mode if not specified
)
De publish_table bewerking doet het volgende:
- Maak een tabel in de online winkel als deze niet bestaat.
- Synchroniseer de functiegegevens uit de offlinefunctietabel naar de online winkel.
- Stel de benodigde infrastructuur in voor het synchroniseren van de online winkel met de offlinetabel.
Publicatiemodi
De publish_mode parameter voor Databricks Online Feature Store waarmee wordt bepaald hoe en wanneer de onlinetabel wordt bijgewerkt met wijzigingen uit de offlinefunctietabel. Zie De synchronisatiemodi die worden uitgelegd voor volledige informatie over de ondersteunde modi, samengevat hieronder:
| Wijze | Description |
|---|---|
TRIGGERED |
Default. Hiermee werkt u de onlinetabel stapsgewijs bij met wijzigingen uit de offlinetabel met behulp van de API of volgens een schema. Opties voor het periodiek activeren van de gegevenssynchronisatie:
Voor deze modus moet Change Data Feed zijn ingeschakeld in de offline-tabel. Zie Vereisten voor het publiceren naar online winkels. |
CONTINUOUS |
De onlinetabel is ingesteld met een streamingpijplijn om de onlinewinkel onmiddellijk bij te werken zodra er nieuwe gegevens naar de offline-functietabel worden geschreven. |
SNAPSHOT |
Voert een eenmalige synchronisatie uit waarmee alle gegevens uit de brontabel naar de online winkel worden gekopieerd. Deze modus is efficiënt wanneer er veel updates zijn voor bestaande rijen tussen twee synchronisatiebewerkingen. |
De publish_mode parameter vervangt de streaming parameter vanaf v0.13.0.1 en eerdere versies. Voor achterwaartse compatibiliteit geldt dat als streaming=True wordt doorgegeven, dit gelijkstaat aan het instellen van publish_mode="CONTINUOUS".
Een onlinetabel verwijderen
Als u een onlinetabel wilt verwijderen, gebruikt u de Databricks SDK:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
w.feature_store.delete_online_table(online_table_name="catalog_name.schema_name.online_feature_table_name")
Important
Dit is de enige aanbevolen methode voor het verwijderen van een onlinetabel. Hiermee verwijdert u de tabel uit zowel Unity Catalog als de database. Andere methoden, zoals de Databricks SQL-opdracht DROP TABLE of de Python SDK-opdracht om een gesynchroniseerde tabel te verwijderen, verwijderen de tabel niet uit de onderliggende databaseopslag.
Onlinefuncties verkennen en er query's op uitvoeren
Nadat de status van de gepubliceerde tabel is weergegeven als 'BESCHIKBAAR', kunt u de functiegegevens op verschillende manieren verkennen en er query's op uitvoeren:
Unity Catalog-gebruikersinterface: navigeer naar de onlinetabel in Unity Catalog om voorbeeldgegevens weer te geven en het schema rechtstreeks in de gebruikersinterface te verkennen. Dit biedt een handige manier om uw functiegegevens te inspecteren en te controleren of het publicatieproces is voltooid.
SQL Editor: Voor geavanceerdere query's en gegevensverkenning kunt u de SQL-editor gebruiken om PostgreSQL-query's uit te voeren op uw online functietabellen. Hiermee kunt u complexe query's, joins en analyses uitvoeren op uw functiegegevens. Zie Access a database instance from the SQL editor voor gedetailleerde instructies over het gebruik van de SQL-editor met online winkels.
Onlinefuncties gebruiken in realtime-toepassingen
Als u functies wilt leveren aan realtime toepassingen en services, maakt u een functie die het eindpunt bedient. Zie Eindpunten voor functiebediening.
Modellen die worden getraind met behulp van kenmerken van Databricks houden automatisch de herkomst bij naar de kenmerken waarop ze zijn getraind. Wanneer deze modellen zijn geïmplementeerd als eindpunten, gebruiken deze modellen Unity Catalog om de juiste functies in online winkels te vinden. Zie Functies gebruiken in onlinewerkstromen voor meer informatie.
Een online winkel verwijderen
Ga als volgt te werk om een online winkel te verwijderen:
fe.delete_online_store(name="my-online-store")
Note
Het verwijderen van een online gepubliceerde tabel kan leiden tot onverwachte fouten in downstreamafhankelijkheden. Voordat u een tabel verwijdert, moet u ervoor zorgen dat de onlinefuncties ervan niet meer worden gebruikt door het leveren van modellen of functies die eindpunten leveren.
Best practices voor kostenoptimalisatie
- Online winkels hergebruiken: U kunt meerdere functietabellen publiceren naar één online winkel. Voor ontwikkelings-, test- en trainingsscenario's raden we u aan om één online winkel te delen in meerdere projecten of gebruikers in plaats van afzonderlijke winkels te maken.
- Juiste capaciteit: begin met CU_1 voor testen en schaal alleen op wanneer de prestatievereisten dit eisen.
- Verwijder online winkels die niet in gebruik zijn: Online winkels brengen voortdurend kosten met zich mee. Verwijder online winkels die niet meer nodig zijn.
Limitations
- Het opgeven van een specifieke onlinetabel wordt niet ondersteund. Wanneer een kenmerktabel wordt gepubliceerd naar meerdere onlinetabellen, lossen modellen- en kenmerkenleverings-eindpunten altijd op naar de oudste onlinetabel op basis van de tijdstempel bij het aanmaken.
- Het maximale aantal leesreplica's voor een Databricks online feature store is 2. Neem contact op met uw Databricks-accountteam om de limiet te verhogen.
- De volgende parameters worden niet ondersteund bij het publiceren naar een online Databricks feature store:
filter_condition,checkpoint_location,mode,triggerenfeatures. - Alleen functietabellen in Unity Catalog worden ondersteund.
- De enige ondersteunde publicatiemodus is 'samenvoegen'.
- Schalen naar nul wordt niet ondersteund voor online winkels.
Voorbeeld van notebook
In het volgende notebook kunt u zien hoe u een Databricks Online Feature Store kunt instellen en toegang kunt krijgen tot Databricks Lakebase.
Online kenmerkenopslag met Lakebase-notebook
Aanvullende bronnen
- Meer informatie over Feature Engineering in Databricks.
- Verken gegevensbeheer en herkomst in Unity Catalog.
- Meer informatie over lakebase-architectuur en -mogelijkheden.