From f178303863ea1398e7b4756b91fe5fcd44effb6e Mon Sep 17 00:00:00 2001 From: Eric Laurello Date: Fri, 1 Mar 2024 12:53:56 -0500 Subject: [PATCH] stats inc logic --- ...ilver_stats__core_metrics_block_hourly.sql | 28 ++++++++++++++----- .../silver_stats__core_metrics_hourly.sql | 28 ++++++++++++++----- 2 files changed, 42 insertions(+), 14 deletions(-) diff --git a/models/silver/stats/silver_stats__core_metrics_block_hourly.sql b/models/silver/stats/silver_stats__core_metrics_block_hourly.sql index 0f448ca..ce80947 100644 --- a/models/silver/stats/silver_stats__core_metrics_block_hourly.sql +++ b/models/silver/stats/silver_stats__core_metrics_block_hourly.sql @@ -5,7 +5,26 @@ cluster_by = ['block_timestamp_hour::DATE'], tags = ['noncore'] ) }} +/* run incremental timestamp value first then use it as a static value */ +{% if execute %} +{% if is_incremental() %} +{% set query %} + +SELECT + MIN(DATE_TRUNC('hour', block_timestamp)) block_timestamp_hour +FROM + {{ ref('silver__blocks') }} +WHERE + _inserted_timestamp >= ( + SELECT + MAX(_inserted_timestamp) + FROM + {{ this }} + ) {% endset %} + {% set min_block_timestamp_hour = run_query(query).columns [0].values() [0] %} +{% endif %} +{% endif %} SELECT DATE_TRUNC( 'hour', @@ -31,13 +50,8 @@ WHERE {% if is_incremental() %} AND DATE_TRUNC( 'hour', - _inserted_timestamp -) >= ( - SELECT - MAX(DATE_TRUNC('hour', _inserted_timestamp)) - INTERVAL '12 hours' - FROM - {{ this }} -) + block_timestamp +) >= '{{ min_block_timestamp_hour }}' {% endif %} GROUP BY 1 diff --git a/models/silver/stats/silver_stats__core_metrics_hourly.sql b/models/silver/stats/silver_stats__core_metrics_hourly.sql index 585d32c..3db7da9 100644 --- a/models/silver/stats/silver_stats__core_metrics_hourly.sql +++ b/models/silver/stats/silver_stats__core_metrics_hourly.sql @@ -5,7 +5,26 @@ cluster_by = ['block_timestamp_hour::DATE'], tags = ['noncore'] ) }} +/* run incremental timestamp value first then use it as a static value */ +{% if execute %} +{% if is_incremental() %} +{% set query %} + +SELECT + MIN(DATE_TRUNC('hour', block_timestamp)) block_timestamp_hour +FROM + {{ ref('silver__transactions_final') }} +WHERE + _inserted_timestamp >= ( + SELECT + MAX(_inserted_timestamp) + FROM + {{ this }} + ) {% endset %} + {% set min_block_timestamp_hour = run_query(query).columns [0].values() [0] %} +{% endif %} +{% endif %} SELECT DATE_TRUNC( 'hour', @@ -58,13 +77,8 @@ WHERE {% if is_incremental() %} AND DATE_TRUNC( 'hour', - _inserted_timestamp -) >= ( - SELECT - MAX(DATE_TRUNC('hour', _inserted_timestamp)) - INTERVAL '12 hours' - FROM - {{ this }} -) + block_timestamp +) >= '{{ min_block_timestamp_hour }}' {% endif %} GROUP BY 1