Skip to content

Commit 50ed272

Browse files
committed
improve incremental on analytics partitions
improve incremental on analytics partitions
1 parent 98e48d4 commit 50ed272

2 files changed

Lines changed: 46 additions & 21 deletions

File tree

macros/dateFilters.sql

Lines changed: 44 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,58 @@
1-
{%- macro analyticsTestDateFilter(fieldName, extend = 0) -%}
2-
{{ ccDateFilterFor(fieldName, forceIncremental = True, extend = extend) }}
3-
{%- endmacro %}
4-
5-
{%- macro analyticsTestTableSuffixFilter(extend =0) -%}
6-
{%- set startEndTSTuple = overbase_firebase.analyticsStartEndTimestampsTuple(forceIncremental = True, extend=extend + 1) -%} {# extended by one day because TABLE_SUFFIX is not always UTC #}
7-
REPLACE(_TABLE_SUFFIX, 'intraday_', '') BETWEEN FORMAT_DATE('%Y%m%d', {{ startEndTSTuple[0] }}) AND FORMAT_DATE('%Y%m%d', {{ startEndTSTuple[1] }})
8-
{%- endmacro -%}
9-
10-
{%- macro analyticsDateFilterFor(dateField,extend = 0) -%}
11-
{%- set startEndTSTuple = overbase_firebase.analyticsStartEndTimestampsTuple(extend = extend) -%}
12-
{{ dateField }} BETWEEN DATE({{ startEndTSTuple[0] }}) AND DATE({{ startEndTSTuple[1] }})
1+
{%- macro analyticsDateFilterFor(dateField, extend = 0) -%}
2+
{%- if sqlmesh_incremental is defined -%}
3+
{{ dateField }} BETWEEN '{{ start_ds }}' AND '{{ end_ds }}'
4+
{%- else -%}
5+
{%- set startEndTSTuple = overbase_firebase.analyticsStartEndTimestampsTuple(extend = extend) -%}
6+
{{ dateField }} BETWEEN DATE({{ startEndTSTuple[0] }}) AND DATE({{ startEndTSTuple[1] }})
7+
{%- endif -%}
138
{%- endmacro -%}
149

1510
{%- macro crashlyticsDateFilterFor(dateField, extend = 0) -%}
16-
{%- set startEndTSTuple = overbase_firebase.crashlyticsStartEndTimestampsTuple(extend=extend) -%}
17-
{{ dateField }} BETWEEN DATE({{ startEndTSTuple[0] }}) AND DATE({{ startEndTSTuple[1] }})
11+
{%- if sqlmesh_incremental is defined -%}
12+
{{ dateField }} BETWEEN '{{ start_ds }}' AND '{{ end_ds }}'
13+
{%- else -%}
14+
{%- set startEndTSTuple = overbase_firebase.crashlyticsStartEndTimestampsTuple(extend=extend) -%}
15+
{{ dateField }} BETWEEN DATE({{ startEndTSTuple[0] }}) AND DATE({{ startEndTSTuple[1] }})
16+
{%- endif -%}
1817
{%- endmacro -%}
1918

2019
{%- macro analyticsTSFilterFor(tsField, extend = 0) -%}
21-
{%- set startEndTSTuple = overbase_firebase.analyticsStartEndTimestampsTuple(extend=extend) -%}
22-
{{ tsField }} BETWEEN {{ startEndTSTuple[0] }} AND {{ startEndTSTuple[1] }}
20+
{%- if sqlmesh_incremental is defined -%}
21+
{{ tsField }} BETWEEN '{{ start_ds }}' AND '{{ end_ds }}'
22+
{%- else -%}
23+
{%- set startEndTSTuple = overbase_firebase.analyticsStartEndTimestampsTuple(extend=extend) -%}
24+
{{ tsField }} BETWEEN {{ startEndTSTuple[0] }} AND {{ startEndTSTuple[1] }}
25+
{%- endif -%}
2326
{%- endmacro -%}
2427

2528
{%- macro crashlyticsTSFilterFor(tsField, extend = 0) -%}
26-
{%- set startEndTSTuple = overbase_firebase.crashlyticsStartEndTimestampsTuple(extend=extend) -%}
27-
{{ tsField }} BETWEEN {{ startEndTSTuple[0] }} AND {{ startEndTSTuple[1] }}
29+
{%- if sqlmesh_incremental is defined -%}
30+
{{ tsField }} BETWEEN '{{ start_ds }}' AND '{{ end_ds }}'
31+
{%- else -%}
32+
{%- set startEndTSTuple = overbase_firebase.crashlyticsStartEndTimestampsTuple(extend=extend) -%}
33+
{{ tsField }} BETWEEN {{ startEndTSTuple[0] }} AND {{ startEndTSTuple[1] }}
34+
{%- endif -%}
35+
{%- endmacro -%}
36+
37+
{%- macro analyticsTableSuffixFilter(extend = 0) -%}
38+
{%- if sqlmesh_incremental is defined -%}
39+
REPLACE(_TABLE_SUFFIX, 'intraday_', '')
40+
BETWEEN FORMAT_DATE('%Y%m%d', '{{ start_ds }}' -1)
41+
AND FORMAT_DATE('%Y%m%d', '{{ end_ds }}')
42+
{%- else -%}
43+
{%- set startEndTSTuple = overbase_firebase.analyticsStartEndTimestampsTuple(extend=extend + 1) -%}
44+
REPLACE(_TABLE_SUFFIX, 'intraday_', '')
45+
BETWEEN FORMAT_DATE('%Y%m%d', {{ startEndTSTuple[0] }})
46+
AND FORMAT_DATE('%Y%m%d', {{ startEndTSTuple[1] }})
47+
{%- endif -%}
48+
{%- endmacro -%}
49+
50+
{%- macro analyticsTestDateFilter(fieldName, extend = 0) -%}
51+
{{ overbase_firebase.analyticsDateFilterFor(fieldName, extend=extend) }}
2852
{%- endmacro -%}
2953

30-
{%- macro analyticsTableSuffixFilter(extend =0) -%}
31-
{%- set startEndTSTuple = overbase_firebase.analyticsStartEndTimestampsTuple(extend=extend + 1) -%} {# extended by one day because TABLE_SUFFIX is not always UTC #}
32-
REPLACE(_TABLE_SUFFIX, 'intraday_', '') BETWEEN FORMAT_DATE('%Y%m%d', {{ startEndTSTuple[0] }}) AND FORMAT_DATE('%Y%m%d', {{ startEndTSTuple[1] }})
54+
{%- macro analyticsTestTableSuffixFilter(extend = 0) -%}
55+
{{ overbase_firebase.analyticsTableSuffixFilter(extend=extend) }}
3356
{%- endmacro -%}
3457

3558
{%- macro analyticsStartEndTimestampsTuple(forceIncremental = False, extend = 0) -%}

models/analytics/fb_analytics_events_raw.sql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ FROM
8888
*
8989
FROM {{ source('firebase_analytics__fallback', 'events') }}
9090
WHERE {{ overbase_firebase.analyticsTableSuffixFilter() }}
91+
AND {{ overbase_firebase.analyticsDateFilterFor('DATE(TIMESTAMP_MICROS(event_timestamp))') }}
9192
{%- else -%}
9293
{%- set ns = namespace(first=true) -%}
9394
{%- for p in projects -%}
@@ -112,6 +113,7 @@ FROM
112113
*
113114
FROM {{ source('firebase_analytics__' ~ pid ~ '__' ~ ds, 'events') }}
114115
WHERE {{ overbase_firebase.analyticsTableSuffixFilter() }}
116+
AND {{ overbase_firebase.analyticsDateFilterFor('DATE(TIMESTAMP_MICROS(event_timestamp))') }}
115117
{%- endif -%}
116118
{%- endfor -%}
117119
{%- endfor -%}

0 commit comments

Comments
 (0)