Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Sklepy cech online Databricks to wysoce wydajne, skalowalne rozwiązanie do dostarczania danych cech aplikacjom online i modelom uczenia maszynowego w czasie rzeczywistym. Obsługiwane przez Databricks Lakebase internetowe magazyny funkcji zapewniają szybki dostęp do danych funkcji na dużą skalę przy jednoczesnym zachowaniu spójności z tabelami funkcji trybu offline.
Główne przypadki użycia sklepów funkcji online obejmują:
- Udostępnianie funkcji aplikacjom w czasie rzeczywistym, takich jak systemy rekomendacji, wykrywanie oszustw i silniki personalizacji przy użyciu punktów końcowych obsługujących funkcje.
- Automatyczne wyszukiwanie funkcji na potrzeby wnioskowania w czasie rzeczywistym w modelu obsługującym punkty końcowe.
Nowe sklepy funkcji online są teraz tworzone jako projekty skalowania automatycznego w usłudze Lakebase. Aby uzyskać szczegółowe informacje i różnice, zobacz Łączenie bazy danych Lakebase w przypadku skalowania automatycznego.
Requirements
Magazyny funkcji online usługi Databricks wymagają środowiska Databricks Runtime 16. 4 LTS ML lub nowszego. Możesz również używać bezserwerowych obliczeń.
Aby korzystać ze sklepów funkcji online usługi Databricks, należy najpierw zainstalować pakiet. Po każdym uruchomieniu notesu należy wykonać następujące wiersze kodu:
%pip install databricks-feature-engineering>=0.13.0
dbutils.library.restartPython()
Tworzenie sklepu online
Podczas tworzenia sklepu online aprowizujesz infrastrukturę zarządzaną o wysokiej dostępności na potrzeby obsługi funkcji w czasie rzeczywistym. API create_online_store tworzy instancję autoskalowania Lakebase. Aby uzyskać szczegółowe informacje o skalowaniu automatycznym w usłudze Lakebase, zobacz Lakebase Postgres.
Aby zarządzać kosztami, usuń sklepy online , gdy nie są używane na potrzeby programowania i testowania.
Aby utworzyć nowy sklep funkcji online:
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", # maximum of 63 bytes
capacity="CU_2" # Valid options: "CU_1", "CU_2", "CU_4", "CU_8"
)
Ustawienie capacity określa, ile mocy obliczeniowej może używać sklep online. Jego wartością jest jednostka obliczeniowa Lakebase (CU). Aby poznać dostępne rozmiary obliczeniowe i to, co zawiera CU, zobacz Dostępne rozmiary obliczeniowe.
Aby uzyskać informacje na temat uprawnień dla wystąpień skalowania automatycznego w usłudze Lakebase, zobacz Udzielanie uprawnień projektu.
Szyfrowanie przy użyciu kluczy zarządzanych przez klienta
Magazyny funkcji online obsługują szyfrowanie danych przechowywanych przy użyciu klucza zarządzanego przez klienta (CMK) dzięki bazowej obsłudze zapewnianej przez Lakebase Autoscaling. Nie jest wymagana konfiguracja Lakebase ani Feature Store; CMK jest stosowany automatycznie w odpowiednich obszarach roboczych.
Klucz CMK jest stosowany automatycznie, gdy spełnione są wszystkie poniższe warunki:
- Obszar roboczy ma skonfigurowany klucz zarządzany przez klienta dla usług zarządzanych. Zobacz Klucze zarządzane przez klienta dla usługi Lakebase.
- Magazyn cech online opiera się na projekcie automatycznego skalowania Lakebase. Wszystkie internetowe magazyny funkcji utworzone za pomocą
fe.create_online_storepo 23 marca 2026 r. korzystają z Lakebase Autoscaling. - Projekt zaplecza Lakebase został utworzony po udostępnieniu obsługi CMK w Twoim regionie. Projekty Lakebase utworzone przed tym momentem nie są szyfrowane za pomocą klucza zarządzanego przez klienta (CMK), nawet jeśli taki klucz zostanie później włączony w obszarze roboczym.
Projekt Lakebase, stanowiący zaplecze dla internetowego magazynu funkcji, ma tę samą nazwę co sklep internetowy. Aby ją znaleźć, kliknij Przełącznik aplikacji w prawym górnym rogu obszaru roboczego, aby otworzyć aplikację Lakebase i zlokalizować projekt o tej nazwie. Aby potwierdzić, że magazyn danych jest zaszyfrowany przy użyciu Twojego klucza CMK, sprawdź kartę stanu Customer-managed keys w tym projekcie. Zobacz Sprawdzanie stanu szyfrowania.
Zarządzanie sklepami online
Poniższy kod przedstawia sposób pobierania sklepów online:
# 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}")
Jeśli utworzono sklep online przy użyciu fe.create_online_store, możesz go zaktualizować przy użyciu fe.update_online_store.
# Update the capacity of an online store
# Note: this does not work for an Autoscaling instance that was created using the projects API or the UI
updated_store = fe.update_online_store(
name="my-online-store",
capacity="CU_4" # Upgrade to higher capacity
)
Dodaj repliki do odczytu do sklepu internetowego
Przy tworzeniu lub aktualizowaniu internetowego magazynu funkcji można dodawać repliki do odczytu do magazynu online, określając parametr read_replica_count. Ruch związany z odczytem jest automatycznie dystrybuowany między replikami odczytu, zmniejszając opóźnienia i zwiększając wydajność oraz skalowalność obciążeń o wysokiej współbieżności.
Nie można dodać replik do odczytu do projektu skalowania automatycznego usługi Lakebase utworzonego przy użyciu interfejsu API lub interfejsu użytkownika.
Publikowanie tabeli funkcji w sklepie online
Gdy sklep online znajduje się w stanie AVAILABLE, możesz opublikować tabele funkcji, aby udostępnić je do uzyskania dostępu o niskich opóźnieniach. Interfejs publish_table API synchronizuje dane z tabeli funkcji offline z magazynem online utworzonym przy użyciu create_online_store interfejsu API. Zapoznaj się z poniższą tabelą, aby upewnić się, że źródłowa tabela offline została utworzona poprawnie dla przypadku użycia w czasie rzeczywistym.
| Przypadek użycia | Utwórz tabelę funkcji offline przy użyciu tej metody |
|---|---|
| Tylko najnowsze wartości funkcji dla każdego identyfikatora jednostki są dostępne w sklepie online dla aplikacji czasu rzeczywistego. Wiele wierszy o tej samej wartości klucza podstawowego z różnymi wartościami klucza szeregów czasowych może występować w offline'owym źródle danych i zostanie zdeduplikowane w potoku publikowania. Ten przypadek jest najczęściej używany w przypadku modelu online lub funkcji obsługującej punkty końcowe. |
Tworzenie tabeli z oznaczeniem szeregów czasowych |
| Najnowsze i wszystkie poprzednie wartości funkcji szeregów czasowych z tabeli offline są dostępne w sklepie online w celu uzyskania dostępu przez aplikacje czasu rzeczywistego. Wszystkie wiersze z tabeli źródłowej (offline) są publikowane bez deduplikacji. Stosuj to tylko wtedy, gdy punkt końcowy musi pobrać konkretną historyczną wartość cechy na podstawie identyfikatora jednostki oraz dokładnej daty/czasu — na przykład, aby zweryfikować lub przetestować przewidywania względem dokładnych wartości cech obsługiwanych w przeszłości. Jest to wyszukiwanie dokładnego dopasowania dla klucza podstawowego typu string, a nie zapytanie według stanu na dany moment ani zapytanie o zakres czasowy. Aby użyć kolumny DATE lub TIMESTAMP jako zwykłego klucza odnośnika (bez semantyki szeregów czasowych), zmień typ kolumny na STRING. |
Tworzenie tabeli bez oznaczenia szeregów czasowych |
Wymagania wstępne dotyczące publikowania w sklepach online
Wszystkie tabele funkcji (z szeregami czasowymi lub bez nich) muszą spełniać następujące wymagania przed opublikowaniem:
- Ograniczenie klucza podstawowego: wymagane do publikowania w sklepie online
- Klucze podstawowe bez wartości null: kolumny klucza podstawowego nie mogą zawierać wartości NULL
-
Włączony zestaw danych zmian: wymagany dla trybów
CONTINUOUSi publikowaniaTRIGGERED. Informacje o tym, jak włączyć strumień danych o zmianach dla tabel Delta, można znaleźć w artykule Use change data feed, a omówienie trybów publikowania — w artykule Publish modes.
-- 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;
Publikowanie tabeli funkcji
Aby opublikować tabelę funkcji w sklepie online:
from databricks.ml_features.entities.online_store import DatabricksOnlineStore
# Get the online store instance
# For Lakebase Autoscaling projects creating using the Lakebase API or UI,
# `name` is the last part of the resouce name: projects/{online_store_name}
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",
# for online_table_name, the catalog name, schema name, and table name each are limited to a maximum of 63 bytes
online_table_name="catalog_name.schema_name.online_feature_table_name",
# `publish_mode` argument is optional and defaults to "TRIGGERED" mode if not specified
)
Operacja publish_table wykonuje następujące czynności:
- Utwórz tabelę w sklepie online, jeśli nie istnieje.
- Zsynchronizuj dane funkcji z tabeli funkcji offline do sklepu online.
- Skonfiguruj niezbędną infrastrukturę do utrzymywania synchronizacji sklepu internetowego z tabelą offline.
publish_table zawsze używa domyślnej gałęzi projektu autoskalowania Lakebase.
Tryby publikowania
Parametr publish_mode określa, jak i kiedy tabela online jest aktualizowana wraz ze zmianami z tabeli funkcji trybu offline.
Zobacz Tryby synchronizacji , aby uzyskać pełne informacje o obsługiwanych trybach.
Obsługiwane tryby zostały podsumowane poniżej:
| Mode | Description |
|---|---|
TRIGGERED |
Default. Aktualizuje stopniowo tabelę online, wprowadzając zmiany z tabeli offline przy użyciu interfejsu API lub zgodnie z harmonogramem. Opcje wyzwalania synchronizacji danych okresowo:
Ten tryb wymaga włączenia funkcji Change Data Feed w tabeli offline. Zobacz Wymagania wstępne dotyczące publikowania w sklepach online. |
CONTINUOUS |
Tabela online jest skonfigurowana przy użyciu potoku przesyłania strumieniowego, aby natychmiast zaktualizować sklep online, gdy do tabeli funkcji offline zostaną zapisane nowe dane. |
SNAPSHOT |
Wykonuje jednorazową synchronizację, która kopiuje wszystkie dane z tabeli źródłowej do sklepu internetowego. Ten tryb jest wydajny, gdy istnieje duża liczba aktualizacji istniejących wierszy między dwiema operacjami synchronizacji. |
Parametr publish_mode zastępuje parametr streaming począwszy od wersji 0.13.0.1 i wcześniejszych. Dla zgodności wstecznej, jeśli streaming=True jest przekazane, jest to równoważne ustawieniu publish_mode="CONTINUOUS".
Usuwanie tabeli online
Aby usunąć tabelę online, użyj zestawu SDK usługi Databricks:
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
Jest to jedyna zalecana metoda usuwania tabeli online. Usuwa tabelę zarówno z katalogu Unity, jak i z bazy danych. Inne metody, takie jak polecenie Databricks SQL DROP TABLE lub polecenie SDK języka Python w celu usunięcia zsynchronizowanej tabeli, nie usuwają tabeli z bazowego magazynu bazy danych.
Eksplorowanie i wykonywanie zapytań o funkcje online
Gdy stan opublikowanej tabeli będzie wyświetlany jako "DOSTĘPNY", możesz eksplorować i wykonywać zapytania dotyczące danych funkcji na kilka sposobów:
Interfejs użytkownika Unity Catalog: Przejdź do tabeli online w Unity Catalog, aby wyświetlić przykładowe dane i eksplorować schemat bezpośrednio w interfejsie użytkownika. Zapewnia to wygodny sposób sprawdzania danych funkcji i sprawdzania, czy proces publikowania zakończył się pomyślnie.
Edytor SQL: Aby uzyskać bardziej zaawansowane zapytania i eksplorację danych, możesz użyć edytora SQL do uruchamiania zapytań PostgreSQL względem tabel funkcji online. Umożliwia to wykonywanie złożonych zapytań, sprzężeń i analiz danych funkcji. Aby uzyskać szczegółowe instrukcje dotyczące używania edytora SQL ze sklepami online, zobacz Query from Lakebase SQL Editor (Wykonywanie zapytań z poziomu edytora SQL Lakebase).
Korzystanie z funkcji online w aplikacjach czasu rzeczywistego
Aby udostępniać funkcje aplikacjom i usługom w czasie rzeczywistym, utwórz punkt końcowy obsługujący funkcję. Zobacz Funkcje obsługujące punkty końcowe.
Modele, które są trenowane przy użyciu funkcji z usługi Databricks, automatycznie śledzą pochodzenie funkcji, na których były trenowane. Kiedy te modele są wdrażane jako punkty końcowe, używają Unity Catalog do znajdowania odpowiednich cech w sklepie funkcji online. Aby uzyskać szczegółowe informacje, zobacz Używanie funkcji w przepływach pracy online.
Usuwanie sklepu online
Aby usunąć sklep online:
fe.delete_online_store(name="my-online-store")
Note
Usunięcie opublikowanej tabeli online może prowadzić do nieoczekiwanych błędów w zależnościach podrzędnych. Przed usunięciem tabeli należy upewnić się, że jej funkcje online nie są już używane przez obsługę modelu lub obsługę funkcji punktów końcowych.
Najlepsze rozwiązania dotyczące optymalizacji kosztów
- Wykorzystanie sklepów online: możesz opublikować wiele tabel cech w jednym sklepie online. W przypadku scenariuszy programowania, testowania i trenowania zalecamy udostępnianie jednego sklepu online w wielu projektach lub użytkownikach zamiast tworzenia oddzielnych sklepów.
- Odpowiednio dobrana pojemność: Zacznij od CU_2 na potrzeby testów i skaluj w górę lub w dół wyłącznie na podstawie wydajności i kosztów.
- Usuwanie sklepów online, które nie są używane: sklepy online stale generują koszty. Usuń sklepy online , które nie są już potrzebne.
Limitations
- Nazwa katalogu tabeli online musi odpowiadać nazwie bazy danych. Udostępnianie funkcji online wymaga, aby nazwa katalogu Unity Catalog tabeli online była taka sama jak nazwa bazowej bazy danych Lakebase (Postgres); jeśli są różne, wdrożenie punktu końcowego udostępniania modelu kończy się niepowodzeniem. Publikowanie lub materializacja za pomocą API inżynierii cech (
publish_table,materialize_features) domyślnie tworzy dopasowany katalog. Niedopasowanie występuje tylko wtedy, gdy kierujesz żądanie do katalogu zarejestrowanego dla bazy danych o innej nazwie — na przykład katalogu zagranicznego lub zarządzanego katalogu online utworzonego przy użyciu niestandardowej nazwy bazy danych — co nie jest obsługiwane w przypadku obsługi cech online. - Określanie określonej tabeli online nie jest obsługiwane. Gdy tabela funkcji jest publikowana w wielu tabelach online, obsługa modelu i funkcja obsługujące punkty końcowe zawsze są rozpoznawane jako najstarsza tabela online na podstawie znacznika czasu tworzenia.
- Magazyn funkcji online obsługuje maksymalnie 3 repliki do odczytu (łącznie 4 wystąpienia obliczeniowe, w tym podstawowe). Repliki odczytu odciążają ruch odczytu z serwera głównego i zapewniają wysoką dostępność, przejmując działanie w razie jego awarii.
- Następujące parametry nie są obsługiwane podczas publikowania w magazynie funkcji online usługi Databricks:
filter_condition,checkpoint_location,mode,triggerifeatures. - Obsługiwane są tylko tabele atrybutów w Unity Catalog.
- Skalowanie do zera bazy danych Lakebase nie jest obsługiwane.
- Punkty końcowe obsługujące funkcje i obsługa modeli, które wyszukują funkcje z wielu magazynów funkcji online, nadal działają, jeśli już istnieją, ale nie można utworzyć nowych punktów końcowych, takich jak ten w wystąpieniach skalowania automatycznego w usłudze Lakebase.
- Wystąpienia skalowania automatycznego utworzone przy użyciu interfejsu API projektów lub interfejsu użytkownika nie używają następujących pól:
creator,read_replica_counticapacity. - Nie można zaktualizować wystąpienia skalowania automatycznego, które zostało utworzone przy użyciu interfejsu API projektów lub interfejsu użytkownika.
- Klucze zarządzane przez klienta mają zastosowanie tylko do sklepów funkcji online utworzonych po udostępnieniu klucza zarządzanego przez klienta w regionie. Zobacz Szyfrowanie przy użyciu kluczy zarządzanych przez klienta.
Rozwiązywanie problemów
Komunikat o błędzie: Skipping publishing to online table '...' because the feature sync pipeline is already running.
Ten błąd występuje, jeśli wiele notesów lub zadań próbuje opublikować w tabeli online w tym samym czasie. Tylko jedna operacja synchronizacji jest dozwolona dla tabeli online w danym momencie, aby zapobiec konfliktom danych.
Usługa Databricks zaleca tworzenie przepływów pracy do użycia jednego polecenia publish_table, na przykład pojedynczego zadania na końcu procesu. Jeśli w ten sposób nie można koordynować przepływów pracy, get_status() poczekaj, aż inne polecenia publikowania zakończą synchronizację przed wyzwoleniem nowej publikacji.
Przykładowy notatnik
W poniższym notesie przedstawiono przykład konfigurowania usługi Databricks Online Feature Store i uzyskiwania do nie dostępu przy użyciu usługi Databricks Lakebase.
Sklep funkcji online z notesem lakebase
Dodatkowe zasoby
- Dowiedz się więcej o inżynierii funkcji w usłudze Databricks.
- Eksplorowanie zarządzania danymi i rodowodu danych w Unity Catalog.
- Omówienie architektury i możliwości usługi Lakebase .