Skip to content

Commit

Permalink
Fix initial dbt compile error (Close #69)
Browse files Browse the repository at this point in the history
  • Loading branch information
georgewoodhead committed Feb 8, 2023
1 parent 5204001 commit 63d5209
Show file tree
Hide file tree
Showing 4 changed files with 116 additions and 59 deletions.
45 changes: 30 additions & 15 deletions macros/incremental_hooks/get_incremental_manifest_status.sql
Expand Up @@ -6,26 +6,41 @@

{% endif %}

{% set last_success_query %}
select min(last_success) as min_last_success,
max(last_success) as max_last_success,
coalesce(count(*), 0) as models
from {{ incremental_manifest_table }}
where model in ({{ snowplow_utils.print_list(models_in_run) }})
{% endset %}
{% set target_relation = adapter.get_relation(
database=incremental_manifest_table.database,
schema=incremental_manifest_table.schema,
identifier=incremental_manifest_table.name) %}

{% set results = run_query(last_success_query) %}
{% if target_relation is not none %}

{% if execute %}
{% set last_success_query %}
select min(last_success) as min_last_success,
max(last_success) as max_last_success,
coalesce(count(*), 0) as models
from {{ incremental_manifest_table }}
where model in ({{ snowplow_utils.print_list(models_in_run) }})
{% endset %}

{% set min_last_success = results.columns[0].values()[0] %}
{% set max_last_success = results.columns[1].values()[0] %}
{% set models_matched_from_manifest = results.columns[2].values()[0] %}
{% set has_matched_all_models = true if models_matched_from_manifest == models_in_run|length else false %}
{% set results = run_query(last_success_query) %}

{% endif %}
{% if execute %}

{% set min_last_success = results.columns[0].values()[0] %}
{% set max_last_success = results.columns[1].values()[0] %}
{% set models_matched_from_manifest = results.columns[2].values()[0] %}
{% set has_matched_all_models = true if models_matched_from_manifest == models_in_run|length else false %}

{% endif %}

{{ return([min_last_success, max_last_success, models_matched_from_manifest, has_matched_all_models]) }}

{{ return([min_last_success, max_last_success, models_matched_from_manifest, has_matched_all_models]) }}
{% else %}

{% do exceptions.warn("Snowplow Warning: " ~ incremental_manifest_table ~ " does not exist. This is expected if you are compiling a fresh installation of the dbt-snowplow-* packages.") %}

{{ return(['', '', '', '']) }}

{% endif %}

{%- endmacro %}

Expand Down
38 changes: 24 additions & 14 deletions macros/incremental_hooks/get_session_lookback_limit.sql
@@ -1,26 +1,36 @@
{% macro get_session_lookback_limit(lower_limit) %}

{% if not execute %}
{{ return('')}}
{% endif %}

{% set limit_query %}
select
{{ snowplow_utils.timestamp_add(
'day',
-var("snowplow__session_lookback_days", 365),
lower_limit) }} as session_lookback_limit
{% if lower_limit == '' %}

{% endset %}
{% do exceptions.warn("Snowplow Warning: Macro get_session_lookback_limit lower_limit argument == ''. This is expected if you are compiling a fresh installation of the dbt-snowplow-* packages.") %}

{% set results = run_query(limit_query) %}

{% if execute %}
{{ return('')}}

{% set session_lookback_limit = snowplow_utils.cast_to_tstamp(results.columns[0].values()[0]) %}
{% else %}

{{ return(session_lookback_limit) }}
{% set limit_query %}
select
{{ snowplow_utils.timestamp_add(
'day',
-var("snowplow__session_lookback_days", 365),
lower_limit) }} as session_lookback_limit

{% endif %}
{% endset %}

{% set results = run_query(limit_query) %}

{% if execute %}

{% set session_lookback_limit = snowplow_utils.cast_to_tstamp(results.columns[0].values()[0]) %}

{{ return(session_lookback_limit) }}

{% endif %}

{% endif %}

{% endmacro %}
50 changes: 33 additions & 17 deletions macros/incremental_hooks/return_base_new_event_limits.sql
Expand Up @@ -3,27 +3,43 @@
{% if not execute %}
{{ return(['','',''])}}
{% endif %}

{% set limit_query %}
select
lower_limit,
upper_limit,
{{ snowplow_utils.timestamp_add('day',
-var("snowplow__max_session_days", 3),
'lower_limit') }} as session_start_limit

from {{ base_events_this_run }}
{% endset %}
{% set target_relation = adapter.get_relation(
database=base_events_this_run.database,
schema=base_events_this_run.schema,
identifier=base_events_this_run.name) %}

{% set results = run_query(limit_query) %}

{% if execute %}
{% if target_relation is not none %}

{% set lower_limit = snowplow_utils.cast_to_tstamp(results.columns[0].values()[0]) %}
{% set upper_limit = snowplow_utils.cast_to_tstamp(results.columns[1].values()[0]) %}
{% set session_start_limit = snowplow_utils.cast_to_tstamp(results.columns[2].values()[0]) %}
{% set limit_query %}
select
lower_limit,
upper_limit,
{{ snowplow_utils.timestamp_add('day',
-var("snowplow__max_session_days", 3),
'lower_limit') }} as session_start_limit

{{ return([lower_limit, upper_limit, session_start_limit]) }}
from {{ base_events_this_run }}
{% endset %}

{% set results = run_query(limit_query) %}

{% if execute %}

{% set lower_limit = snowplow_utils.cast_to_tstamp(results.columns[0].values()[0]) %}
{% set upper_limit = snowplow_utils.cast_to_tstamp(results.columns[1].values()[0]) %}
{% set session_start_limit = snowplow_utils.cast_to_tstamp(results.columns[2].values()[0]) %}

{{ return([lower_limit, upper_limit, session_start_limit]) }}

{% endif %}

{% else %}

{% do exceptions.warn("Snowplow Warning: " ~ base_events_this_run ~ " does not exist. This is expected if you are compiling a fresh installation of the dbt-snowplow-* packages.") %}

{{ return(['','','']) }}

{% endif %}

{%- endmacro %}
42 changes: 29 additions & 13 deletions macros/utils/return_limits_from_model.sql
Expand Up @@ -3,22 +3,38 @@
{% if not execute %}
{{ return(['','']) }}
{% endif %}

{% set limit_query %}
select
min({{lower_limit_col}}) as lower_limit,
max({{upper_limit_col}}) as upper_limit
from {{ model }}
{% endset %}

{% set results = run_query(limit_query) %}

{% if execute %}
{% set target_relation = adapter.get_relation(
database=model.database,
schema=model.schema,
identifier=model.name) %}

{% set lower_limit = snowplow_utils.cast_to_tstamp(results.columns[0].values()[0]) %}
{% set upper_limit = snowplow_utils.cast_to_tstamp(results.columns[1].values()[0]) %}
{% if target_relation is not none %}

{{ return([lower_limit, upper_limit]) }}
{% set limit_query %}
select
min({{lower_limit_col}}) as lower_limit,
max({{upper_limit_col}}) as upper_limit
from {{ model }}
{% endset %}

{% set results = run_query(limit_query) %}

{% if execute %}

{% set lower_limit = snowplow_utils.cast_to_tstamp(results.columns[0].values()[0]) %}
{% set upper_limit = snowplow_utils.cast_to_tstamp(results.columns[1].values()[0]) %}

{{ return([lower_limit, upper_limit]) }}

{% endif %}

{% else %}

{% do exceptions.warn("Snowplow Warning: " ~ model ~ " does not exist. This is expected if you are compiling a fresh installation of the dbt-snowplow-* packages.") %}

{{ return(['','']) }}

{% endif %}

{%- endmacro %}

0 comments on commit 63d5209

Please sign in to comment.