|
5 | 5 | import time |
6 | 6 | import traceback |
7 | 7 | from contextlib import asynccontextmanager |
| 8 | +from datetime import datetime |
8 | 9 | from importlib import resources as importlib_resources |
9 | 10 | from typing import Any, Dict, List, Optional, Union |
10 | 11 |
|
@@ -76,6 +77,7 @@ class MaterializeRequest(BaseModel): |
76 | 77 | start_ts: str |
77 | 78 | end_ts: str |
78 | 79 | feature_views: Optional[List[str]] = None |
| 80 | + disable_event_timestamp: bool = False |
79 | 81 |
|
80 | 82 |
|
81 | 83 | class MaterializeIncrementalRequest(BaseModel): |
@@ -432,10 +434,21 @@ def materialize(request: MaterializeRequest) -> None: |
432 | 434 | resource=_get_feast_object(feature_view, True), |
433 | 435 | actions=[AuthzedAction.WRITE_ONLINE], |
434 | 436 | ) |
| 437 | + |
| 438 | + if request.disable_event_timestamp: |
| 439 | + # Query all available data and use current datetime as event timestamp |
| 440 | + now = datetime.now() |
| 441 | + start_date = datetime(1970, 1, 1) # Beginning of time to capture all historical data |
| 442 | + end_date = now |
| 443 | + else: |
| 444 | + start_date = utils.make_tzaware(parser.parse(request.start_ts)) |
| 445 | + end_date = utils.make_tzaware(parser.parse(request.end_ts)) |
| 446 | + |
435 | 447 | store.materialize( |
436 | | - utils.make_tzaware(parser.parse(request.start_ts)), |
437 | | - utils.make_tzaware(parser.parse(request.end_ts)), |
| 448 | + start_date, |
| 449 | + end_date, |
438 | 450 | request.feature_views, |
| 451 | + disable_event_timestamp=request.disable_event_timestamp, |
439 | 452 | ) |
440 | 453 |
|
441 | 454 | @app.post("/materialize-incremental", dependencies=[Depends(inject_user_details)]) |
|
0 commit comments