使用具有時間點支持的時間序列特性表

通過時間序列特征表,Databricks feature Store支持需要時間點正確性的時間序列和基於事件的用例。您可以指定一個特定的列作為特征表的時間戳鍵,並在不同的時間戳中存儲特定主鍵值的曆史特征值,每個主鍵值在單獨的行中。為了檢索特定時間的最新特征值,以訓練或對模型進行評分,Databricks feature Store支持對時間序列特征表進行時間點查找。

請注意

時間點查找功能有時被稱為“時間旅行”。Databricks Feature Store中的時間點功能與三角洲湖時間旅行

時間點查找有助於避免數據泄漏問題,當模型在實時推斷期間不可用的特征值上進行訓練時,可能會出現數據泄漏問題。數據泄漏會導致訓練和實時推理之間模型性能的顯著差異。使用時間序列特征表,您可以確保模型使用基於您指定的時間戳的最新特征進行訓練。

如果您的特征值隨著時間而變化,例如時間序列數據、基於事件的數據或時間聚合的數據,請考慮使用時間序列特征表。

需求

特性存儲客戶端v0.3.7及更高版本。

在Databricks feature Store中創建一個時間序列特征表

要創建時間序列特性表,DataFrame或模式必須包含指定為時間戳鍵的列。

fsFeatureStoreClient()# user_features_df數據幀包含以下列:# - user_id# - ts# - purchases_30d . ## - is_free_trial_activefscreate_table的名字“ads_team.user_features”“user_id”timestamp_keys“t”features_dfuser_features_df

時間序列特征表必須有一個時間戳鍵,不能有任何分區列。時間戳鍵列必須為TimestampTypeDateType也不能是主鍵。

Databricks建議時間序列特征表不超過兩個主鍵列,以確保性能寫入和查找。

更新時間序列特征表

當將特征寫入時間序列特征表時,你的DataFrame必須為特征表中的所有特征提供值,這與常規的特征表不同。此約束降低了時間序列特征表中跨時間戳的特征值的稀疏性。

fsFeatureStoreClient()DataFrame包含以下列:# - user_id# - ts# - purchases_30d . ## - is_free_trial_activefswrite_table“ads_team.user_features”daily_users_batch_df模式“合並”

支持流式寫入時間序列特征表。

創建一個帶有時間序列特征表的訓練集

若要對時間序列特征表中的特征值執行時間點查找,必須指定timestamp_lookup_key在功能的FeatureLookup,它指示包含時間戳的DataFrame列的名稱,要根據該列查找時間序列特征。Databricks Feature Store檢索DataFrame的時間戳之前的最新特征值timestamp_lookup_key列,並且其主鍵與DataFrame中的值匹配lookup_key列,或如果不存在這樣的特性值。

feature_lookupsFeatureLookuptable_name“ads_team.user_features”feature_names“purchases_30d”“is_free_trial_active”),lookup_key“u_id”timestamp_lookup_key“ad_impression_ts”),FeatureLookuptable_name“ads_team.ad_features”feature_names“sports_relevance”“food_relevance”),lookup_key“ad_id”# raw_clickstream數據幀包含以下列:# - u_id# - ad_id# - ad_印象派training_setfscreate_training_setraw_clickstreamfeature_lookupsfeature_lookupsexclude_columns“u_id”“ad_id”“ad_impression_ts”),標簽“did_click”training_dftraining_setload_df()

任何FeatureLookup在時間序列特征表上必須是一個時間點查找,因此它必須指定timestamp_lookup_key列用於你的數據框架。時間點查找不會跳過存儲在時間序列特征表中的特征值。

用時間序列特征表對模型進行評分

當您對使用時間序列特征表中的特征訓練的模型進行評分時,Databricks feature Store使用在訓練期間與模型打包的元數據進行時間點查找來檢索適當的特征。提供給的數據幀FeatureStoreClient.score_batch必須包含具有相同名稱和的時間戳列數據類型隨著timestamp_lookup_keyFeatureLookup提供給FeatureStoreClient.create_training_set

將時間序列功能發布到在線商店

你可以使用FeatureStoreClient.publish_table將時間序列特征表發布到在線商店。Databricks Feature Store提供了將時間序列數據的快照或窗口發布到在線商店的功能,具體取決於OnlineStoreSpec這就創建了網上商店。該表顯示了每種發布模式的詳細信息。

網上商店供應商

快照發布模式

窗口發布模式

Amazon DynamoDB (v0.3.8及以上版本)

X

X

Amazon Aurora (mysql兼容)

X

Amazon RDS MySQL

X

發布時間序列快照

這將發布特征表中每個主鍵的最新特征值。在線商店支持主鍵查找,但不支持時間點查找。

對於不支持time to live的在線商店,Databricks Feature Store隻支持快照發布模式。對於支持time to live的在線商店,默認的發布模式是快照,除非time to live (ttl)在OnlineStoreSpec在創造的時候。

發布時間序列窗口

這將把特征表中每個主鍵的所有特征值發布到在線存儲中,並自動刪除過期記錄。如果記錄的時間戳(以UTC為單位)超過了過去指定的存續期,則認為該記錄已過期。有關生存時間的詳細信息,請參閱特定於雲的文檔。

在線商店支持主鍵查找,並自動檢索帶有最新時間戳的特性值。

若要使用此發布模式,必須提供生存時間值(ttl)在OnlineStoreSpec當您創建在線商店時。的ttl設置後不能更改。對象的所有後續發布調用都繼承ttl類中顯式定義OnlineStoreSpec

例如筆記本電腦

筆記本時間序列特征表示例

在新標簽頁打開筆記本