發布在線功能存儲特性

本文描述了如何發布功能為實時在線特色商店。

磚特性存儲支持這些在線商店:

在線商店提供

發布

功能查找遺留MLflow模型服務

功能查找服務模型

亞馬遜DynamoDB(功能存儲客戶端v0.3.8及以上)

X

X

X

亞馬遜極光(MySQL-compatible)

X

X

Amazon RDS MySQL

X

X

請注意

DynamoDB在線商店使用不同的模式比離線商店。具體來說,在網上商店,主鍵被存儲為一個組合鍵的列_feature_store_internal__primary_keys

確保功能存儲可以訪問DynamoDB在線商店,你必須創建表使用的在線商店publish_table ()publish_table ()驗證該模式的在線商店並創建所需的列。如果你試著寫一個表中沒有創建的在線商店publish_table (),模式可能不兼容,寫命令將失敗。

發布batch-computed特性在線商店

您可以創建和安排一個磚工作,定期發布更新功能。這個工作還可以包括計算的代碼更新功能,或者您可以創建和運行單獨的工作計算和發布功能更新。

SQL商店,下麵的代碼假定一個在線數據庫命名“recommender_system”已經存在於在線存儲和離線存儲的名稱匹配。如果沒有名為“customer_features”的表在數據庫中,這段代碼創建一個。它還假設每天特性計算和存儲分區的列_dt

下麵的代碼假設創建的秘密訪問在線商店。

如果您使用的是DynamoDB,磚建議您提供編寫驗證通過集群實例配置文件附加到磚。實例配置文件隻能用於發布功能;查找特性值,您必須使用磚的秘密。

DynamoDB支持需要v0.3.8和上麵。

進口datetimedatabricks.feature_store.online_store_spec進口AmazonDynamoDBSpec#不通過“write_secret_prefix”如果你打算使用實例配置文件連接到集群。online_store=AmazonDynamoDBSpec(地區=“<地區>”,read_secret_prefix=“< read_scope > / <前綴>”,write_secret_prefix=“< write_scope > / <前綴>”)fspublish_table(的名字=“recommender_system.customer_features”,online_store=online_store,filter_condition=f“_dt = '{str(datetime日期今天())}’”,模式=“合並”)
進口datetimedatabricks.feature_store.online_store_spec進口AmazonRdsMySqlSpeconline_store=AmazonRdsMySqlSpec(主機名=“<主機名>”,港口=<口>的,read_secret_prefix=“< read_scope > / <前綴>”,write_secret_prefix=“< write_scope > / <前綴>”)fspublish_table(的名字=“recommender_system.customer_features”,online_store=online_store,filter_condition=f“_dt = '{str(datetime日期今天())}’”,模式=“合並”)

在線商店發布流媒體功能

連續流特性在線商店,集流= True

fspublish_table(的名字=“recommender_system.customer_features”,online_store=online_store,流媒體=真正的)

發布在線商店選擇特性

隻有選擇功能發布到在線商店,使用特性參數來指定特性名稱(s)發布。主鍵和時間戳鍵總是發表。如果你不指定特性參數或如果沒有價值,從離線功能表發表所有功能。

fspublish_table(的名字=“recommender_system.customer_features”,online_store=online_store,特性=(“total_purchases_30d”])

發布功能表到一個特定的數據庫

在線商店規範,指定數據庫名稱(database_name)和表名(table_name)。如果你不指定這些參數,使用離線數據庫名稱和功能表名。database_name必須已經存在於網上商店。

online_store=AmazonRdsMySqlSpec(主機名=“<主機名>”,港口=<口>的,database_name=' < database_name > ',table_name=' < table_name > ',read_secret_prefix=“< read_scope > / <前綴>”,write_secret_prefix=“< write_scope > / <前綴>”)

覆蓋現有的在線功能表或特定行

使用模式=“覆蓋”publish_table調用。網絡表是完全被離線表中的數據覆蓋。

請注意

亞馬遜DynamoDB不支持覆蓋模式。

fspublish_table(的名字=“recommender_system.customer_features”,online_store=online_store,模式=“覆蓋”)

覆蓋隻有某些行,使用filter_condition論點:

fspublish_table(的名字=“recommender_system.customer_features”,online_store=online_store,filter_condition=f“_dt = '{str(datetime日期今天())}’”,模式=“合並”)