إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توضح هذه المقالة كيفية نشر الميزات إلى متجر عبر الإنترنت لتقديمها في الوقت الفعلي.
يدعم Databricks Feature Store هذه المتاجر عبر الإنترنت:
| موفر المتجر عبر الإنترنت | النشر باستخدام هندسة الميزات في كتالوج Unity | النشر باستخدام مخزن ميزات مساحة العمل | البحث عن الميزة في خدمة نموذج MLflow القديم | البحث عن الميزة في خدمة النموذج |
|---|---|---|---|---|
| Azure Cosmos DB [1] | س | X (عميل 'متجر الميزات' v0.5.0 وما فوق) | X | X |
| Azure MySQL (خادم واحد) | X | X | ||
| Azure SQL Server | س |
ملاحظات توافق Cosmos DB
يتضمن هذا القسم بعض الأشياء المهمة التي يجب مراعاتها عند استخدام Databricks Feature Store مع Cosmos DB.
مساحات العمل الممكنة على كتالوج Unity
في Databricks Runtime 12.2 LTS ML وما يليه، لا يتوافق موفر متجر Cosmos DB عبر الإنترنت مع مساحات العمل الممكنة على كتالوج Unity. يقوم كل من كتالوج Unity وموصل Cosmos DB Spark الرسمي بتعديل كتالوجات Spark. عند نشر الميزات إلى Cosmos DB من مساحة عمل ممكنة لكتالوج Unity على مجموعة تعمل على Databricks Runtime 12.2 LTS ML أو أدناه، قد يكون هناك تعارض في الكتابة يؤدي إلى فشل نشر مخزن الميزات إلى Cosmos DB.
لاستخدام Cosmos DB في مساحة عمل ممكنة لكتالوج Unity، يجب استخدام نظام مجموعة يقوم بتشغيل Databricks Runtime 13.0 ML أو أعلى، أو نظام مجموعة يقوم بتشغيل Databricks Runtime 11.3 LTS ML أو أعلى مع نهج نظام المجموعة غير مقيد أو حساب مشترك.
موصل Spark
لاستخدام Azure Cosmos DB، يجب إنشاء الحساب باستخدام Core (SQL) API ويجب تعيين أسلوب اتصال الشبكة إلى جميع الشبكات. يجب تثبيت موصل Azure Cosmos DB Spark 3 OLTP المناسب لواجهة برمجة تطبيقات SQL على نظام المجموعة. توصي Databricks بتثبيت أحدث إصدار موصل ل Spark 3.2 حتى يتم إصدار موصل ل Spark 3.3.
لا تقم بإنشاء قاعدة بيانات أو حاوية يدويا - استخدم publish_table()
يستخدم مخزن Cosmos DB عبر الإنترنت مخططا مختلفا عن المخزن غير المتصل. على وجه التحديد، في المتجر عبر الإنترنت، يتم تخزين المفاتيح الأساسية كمفتاح مدمج في العمود _feature_store_internal__primary_keys.
للتأكد من أن 'متجر الميزات' يمكنه الوصول إلى متجر Cosmos DB عبر الإنترنت، يجب إنشاء الجدول في المتجر عبر الإنترنت باستخدام publish_table(). لا تقم بإنشاء قاعدة بيانات أو حاوية يدويا داخل Cosmos DB. publish_table() يقوم بذلك تلقائيا.
نشر الميزات المحسوبة على دفعات إلى متجر عبر الإنترنت
يمكنك إنشاء وظيفة Databricks وجدولتها لنشر الميزات المحدثة بانتظام. يمكن أن تتضمن هذه المهمة أيضا التعليمات البرمجية لحساب الميزات المحدثة، أو يمكنك إنشاء مهام منفصلة وتشغيلها لحساب تحديثات الميزات ونشرها.
بالنسبة لمخازن SQL، تفترض التعليمات البرمجية التالية أن قاعدة بيانات عبر الإنترنت تسمى "recommender_system" موجودة بالفعل في المتجر عبر الإنترنت وتتطابق مع اسم المتجر غير المتصل. إذا لم يكن هناك جدول يسمى "customer_features" في قاعدة البيانات، فإن هذه التعليمة البرمجية تنشئ جدولا. كما يفترض أن الميزات يتم حسابها كل يوم وتخزينها ك عمود _dtمقسم .
تفترض التعليمات البرمجية التالية أنك قمت بإنشاء أسرار للوصول إلى هذا المتجر عبر الإنترنت.
Cosmos DB
يتوفر دعم Cosmos DB في جميع إصدارات هندسة الميزات في عميل كتالوج Unity، وعميل مخزن الميزات v0.5.0 وما فوق.
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
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'
)
نشر ميزات الدفق إلى متجر عبر الإنترنت
لدفق الميزات باستمرار إلى المتجر عبر الإنترنت، قم بتعيين 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
)
نشر الميزات المحددة إلى متجر عبر الإنترنت
لنشر الميزات المحددة فقط في المتجر عبر الإنترنت، استخدم الوسيطة features لتحديد اسم (أسماء) الميزة للنشر. يتم دائما نشر المفاتيح الأساسية ومفاتيح الطابع الزمني. إذا لم تحدد الوسيطة features أو إذا كانت القيمة بلا، يتم نشر جميع الميزات من جدول الميزات غير المتصل.
إشعار
يجب أن يكون الجدول غير المتصل بالكامل جدول ميزات صالحا حتى إذا كنت تقوم بنشر مجموعة فرعية فقط من الميزات إلى متجر عبر الإنترنت. إذا كان الجدول غير متصل يحتوي على أنواع بيانات غير معتمدة، فلا يمكنك نشر مجموعة فرعية من الميزات من هذا الجدول إلى متجر عبر الإنترنت.
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"]
)
نشر جدول ميزات إلى قاعدة بيانات معينة
في مواصفات المتجر عبر الإنترنت، حدد اسم قاعدة البيانات (database_name) واسم الجدول (table_name). إذا لم تحدد هذه المعلمات، يتم استخدام اسم قاعدة البيانات دون اتصال واسم جدول الميزات. database_name يجب أن يكون موجودا بالفعل في المتجر عبر الإنترنت.
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>'
)
الكتابة فوق جدول ميزات موجود عبر الإنترنت أو صفوف معينة
استخدم mode='overwrite' في publish_table المكالمة. تتم الكتابة فوق الجدول عبر الإنترنت بالكامل بواسطة البيانات الموجودة في الجدول غير المتصل.
إشعار
لا يدعم Azure Cosmos DB وضع الكتابة فوق.
fs.publish_table(
name='recommender_system.customer_features',
online_store=online_store,
mode='overwrite'
)
للكتابة فوق صفوف معينة فقط، استخدم الوسيطة filter_condition :
fs.publish_table(
name='recommender_system.customer_features',
online_store=online_store,
filter_condition=f"_dt = '{str(datetime.date.today())}'",
mode='merge'
)
حذف جدول منشور من متجر عبر الإنترنت
باستخدام عميل 'متجر الميزات' الإصدار 0.12.0 وما فوق، يمكنك استخدام drop_online_table لحذف جدول منشور من متجر عبر الإنترنت. عند حذف جدول منشور باستخدام drop_online_table، يتم حذف الجدول من موفر المتجر عبر الإنترنت ويتم إزالة بيانات تعريف المتجر عبر الإنترنت من Databricks.
fe.drop_online_table( # or fs.drop_online_table for Workspace Feature Store
name='recommender_system.customer_features',
online_store = online_store
)
إشعار
drop_online_tableحذف الجدول المنشور من المتجر عبر الإنترنت. لا يحذف جدول الميزات في Databricks.- قبل حذف جدول منشور، يجب التأكد من عدم استخدام الجدول للبحث عن ميزة خدمة النموذج وليس له تبعيات انتقال البيانات من الخادم الأخرى. الحذف لا رجعة فيه وقد يتسبب في فشل التبعيات.
- للتحقق من وجود أي تبعيات، ضع في اعتبارك تدوير مفاتيح الجدول المنشور الذي تخطط لحذفه ليوم واحد قبل تنفيذ
drop_online_table.