Szolgáltatások közzététele online áruházban
Ez a cikk azt ismerteti, hogyan tehet közzé funkciókat egy online áruházban valós idejű kiszolgálás céljából.
A Databricks Feature Store az alábbi online áruházakat támogatja:
Online áruház szolgáltató | Közzététel funkciófejlesztéssel a Unity Catalogban | Közzététel munkaterületi funkciótárolóval | Funkciókeresés az örökölt MLflow-modell kiszolgálásában | Funkciókeresés a modellkiszolgálóban |
---|---|---|---|---|
Azure Cosmos DB [1] | X | X (Feature Store-ügyfél 0.5.0-s vagy újabb verzió) | X | X |
Azure MySQL (egykiszolgálós) | X | X | ||
Azure SQL Server-kiszolgáló | X |
Cosmos DB kompatibilitási megjegyzések
Ez a szakasz néhány fontos dolgot tartalmaz, amelyeket szem előtt kell tartani a Databricks Feature Store Cosmos DB-vel való használatakor.
Unity Catalog-kompatibilis munkaterületek
A Databricks Runtime 12.2 LTS ML-ben és az alábbi verziókban a Cosmos DB online áruház szolgáltatója nem kompatibilis a Unity catalog-kompatibilis munkaterületekkel. A Unity Catalog és a hivatalos Cosmos DB Spark-összekötő is módosítja a Spark-katalógusokat. Ha a 12.2 LTS ML-t futtató fürtön lévő Unity-katalógus-kompatibilis munkaterületről tesz közzé funkciókat a Cosmos DB-ben, írási ütközés okozhatja, hogy a Szolgáltatástár közzététele sikertelen lesz a Cosmos DB-ben.
Ha a Cosmos DB-t unitykatalógus-kompatibilis munkaterületen szeretné használni, a Databricks Runtime 13.0 ML vagy újabb verzióját futtató fürtöt, vagy a Databricks Runtime 11.3 LTS ML-t vagy annál újabb databricks runtime-t futtató fürtöt kell használnia a korlátlan vagy megosztott számítási fürtszabályzattal.
Spark-összekötő
Az Azure Cosmos DB használatához a fiókot a Core (SQL) API-val kell létrehozni, a hálózati kapcsolati módszert pedig minden hálózatra kell állítani. Az SQL API-hoz megfelelő Azure Cosmos DB Spark 3 OLTP-összekötőt telepíteni kell a fürtre. A Databricks azt javasolja, hogy telepítse a Spark 3.2 legújabb összekötő-verzióját, amíg ki nem adják a Spark 3.3-hoz készült összekötőt.
Ne hozzon létre manuálisan adatbázist vagy tárolót – használja publish_table()
A Cosmos DB online áruház más sémát használ, mint az offline áruház. Az online áruházban az elsődleges kulcsok kombinált kulcsként vannak tárolva az oszlopban _feature_store_internal__primary_keys
.
Ahhoz, hogy a Feature Store hozzáférhessen a Cosmos DB online áruházhoz, létre kell hoznia a táblát az online áruházban a használatával publish_table()
. Ne hozzon létre manuálisan adatbázist vagy tárolót a Cosmos DB-ben. publish_table()
automatikusan elvégzi.
Kötegelt számítású szolgáltatások közzététele online áruházban
Létrehozhat és ütemezhet Databricks-feladatokat a frissített funkciók rendszeres közzétételéhez. Ez a feladat tartalmazza a frissített funkciók kiszámításához szükséges kódot is, vagy létrehozhat és futtathat külön feladatokat a funkciófrissítések kiszámításához és közzétételéhez.
AZ SQL-tárolók esetében a következő kód feltételezi, hogy egy "recommender_system" nevű online adatbázis már létezik az online áruházban, és megegyezik az offline áruház nevével. Ha az adatbázisban nincs "customer_features" nevű tábla, ez a kód létrehoz egyet. Azt is feltételezi, hogy a szolgáltatások minden nap ki vannak számítva, és particionált oszlopként _dt
vannak tárolva.
Az alábbi kód feltételezi, hogy titkos kulcsokat hozott létre az online áruház eléréséhez.
Cosmos DB
A Cosmos DB-támogatás a Szolgáltatásfejlesztés minden verziójában elérhető a Unity Catalog-ügyfélben, valamint a Feature Store-ügyfél 0.5.0-s és újabb verzióiban.
import datetime
from databricks.feature_engineering.online_store_spec import AzureCosmosDBSpec
# or databricks.feature_store.online_store_spec for Workspace Feature Store
online_store = AzureCosmosDBSpec(
account_uri='<account-uri>',
read_secret_prefix='<read-scope>/<prefix>',
write_secret_prefix='<write-scope>/<prefix>'
)
fe.publish_table( # or fs.publish_table for Workspace Feature Store
name='ml.recommender_system.customer_features',
online_store=online_store,
filter_condition=f"_dt = '{str(datetime.date.today())}'",
mode='merge'
)
SQL-tárolók
import datetime
from databricks.feature_engineering.online_store_spec import AzureMySqlSpec
# or databricks.feature_store.online_store_spec for Workspace Feature Store
online_store = AzureMySqlSpec(
hostname='<hostname>',
port='<port>',
read_secret_prefix='<read-scope>/<prefix>',
write_secret_prefix='<write-scope>/<prefix>'
)
fs.publish_table(
name='recommender_system.customer_features',
online_store=online_store,
filter_condition=f"_dt = '{str(datetime.date.today())}'",
mode='merge'
)
Streamelési funkciók közzététele online áruházban
Ha folyamatosan szeretné streamelni a funkciókat az online áruházba, állítsa be a .streaming=True
fe.publish_table( # or fs.publish_table for Workspace Feature Store
name='ml.recommender_system.customer_features',
online_store=online_store,
streaming=True
)
Kijelölt funkciók közzététele online áruházban
Ha csak a kijelölt szolgáltatásokat szeretné közzétenni az online áruházban, az features
argumentum használatával adja meg a közzétenni kívánt szolgáltatás(ok) nevét. Az elsődleges kulcsok és az időbélyeg-kulcsok mindig közzé lesznek téve. Ha nem adja meg az features
argumentumot, vagy ha az érték Nincs, a rendszer közzéteszi az offline funkciótáblában szereplő összes funkciót.
Feljegyzés
A teljes offline táblának érvényes funkciótáblának kell lennie akkor is, ha csak a szolgáltatások egy részét teszi közzé egy online áruházban. Ha az offline tábla nem támogatott adattípusokat tartalmaz, nem tehet közzé az adott tábla funkcióinak egy részét egy online áruházban.
fe.publish_table( # or fs.publish_table for Workspace Feature Store
name='ml.recommender_system.customer_features',
online_store=online_store,
features=["total_purchases_30d"]
)
Funkciótábla közzététele egy adott adatbázisban
Az online áruház specifikációjában adja meg az adatbázis nevét (database_name
) és a tábla nevét (table_name
). Ha nem adja meg ezeket a paramétereket, a rendszer az offline adatbázis nevét és a szolgáltatástábla nevét használja. database_name
már léteznie kell az online áruházban.
online_store = AzureMySqlSpec(
hostname='<hostname>',
port='<port>',
database_name='<database-name>',
table_name='<table-name>',
read_secret_prefix='<read-scope>/<prefix>',
write_secret_prefix='<write-scope>/<prefix>'
)
Meglévő online szolgáltatástábla vagy adott sorok felülírása
Használja mode='overwrite'
a hívásban publish_table
. Az online táblázatot teljesen felülírják az offline tábla adatai.
Feljegyzés
Az Azure Cosmos DB nem támogatja a felülírási módot.
fs.publish_table(
name='recommender_system.customer_features',
online_store=online_store,
mode='overwrite'
)
Ha csak bizonyos sorokat szeretne felülírni, használja a következő argumentumot filter_condition
:
fs.publish_table(
name='recommender_system.customer_features',
online_store=online_store,
filter_condition=f"_dt = '{str(datetime.date.today())}'",
mode='merge'
)
Közzétett tábla törlése egy online áruházból
A Feature Store 0.12.0-s vagy újabb drop_online_table
verziójú ügyfélalkalmazásával törölheti a közzétett táblázatokat egy online áruházból. Amikor töröl egy közzétett táblát drop_online_table
, a rendszer törli a táblát az online áruház szolgáltatójától, és az online áruház metaadatai el lesznek távolítva a Databricksből.
fe.drop_online_table( # or fs.drop_online_table for Workspace Feature Store
name='recommender_system.customer_features',
online_store = online_store
)
Feljegyzés
drop_online_table
törli a közzétett táblát az online áruházból. Nem törli a Databricks szolgáltatástábláját.- Mielőtt töröl egy közzétett táblát, győződjön meg arról, hogy a tábla nem használható a Modellkiszolgáló szolgáltatás kereséséhez, és nincs más alsóbb rétegbeli függősége. A törlés visszavonhatatlan, és a függőségek meghiúsulását okozhatja.
- A függőségek ellenőrzéséhez érdemes lehet elforgatni a törölni kívánt közzétett tábla kulcsait egy nappal a végrehajtás
drop_online_table
előtt.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: