@@ -21,20 +21,40 @@ def create_offline_store_retrieval_job(
2121 context:
2222 start_time:
2323 end_time:
24-
2524 Returns:
2625
2726 """
2827 offline_store = context .offline_store
29- # 📥 Reuse Feast's robust query resolver
30- retrieval_job = offline_store .pull_all_from_table_or_query (
31- config = context .repo_config ,
32- data_source = data_source ,
33- join_key_columns = column_info .join_keys ,
34- feature_name_columns = column_info .feature_cols ,
35- timestamp_field = column_info .ts_col ,
36- created_timestamp_column = column_info .created_ts_col ,
37- start_date = start_time ,
38- end_date = end_time ,
39- )
28+
29+ pull_latest = context .repo_config .materialization_config .pull_latest_features
30+
31+ if pull_latest :
32+ if not start_time or not end_time :
33+ raise ValueError (
34+ "start_time and end_time must be provided when pull_latest_features is True"
35+ )
36+
37+ retrieval_job = offline_store .pull_latest_from_table_or_query (
38+ config = context .repo_config ,
39+ data_source = data_source ,
40+ join_key_columns = column_info .join_keys ,
41+ feature_name_columns = column_info .feature_cols ,
42+ timestamp_field = column_info .ts_col ,
43+ created_timestamp_column = column_info .created_ts_col ,
44+ start_date = start_time ,
45+ end_date = end_time ,
46+ )
47+ else :
48+ # 📥 Reuse Feast's robust query resolver
49+ retrieval_job = offline_store .pull_all_from_table_or_query (
50+ config = context .repo_config ,
51+ data_source = data_source ,
52+ join_key_columns = column_info .join_keys ,
53+ feature_name_columns = column_info .feature_cols ,
54+ timestamp_field = column_info .ts_col ,
55+ created_timestamp_column = column_info .created_ts_col ,
56+ start_date = start_time ,
57+ end_date = end_time ,
58+ )
59+
4060 return retrieval_job
0 commit comments