From e53dad4ee79cf65c52a0ebd3f5d4a96fce046ed6 Mon Sep 17 00:00:00 2001 From: drethereum <71602799+drethereum@users.noreply.github.com> Date: Tue, 3 Jan 2023 14:07:33 -0700 Subject: [PATCH] AN-2580/unique-key-tx-test (#35) * changed unique key in logs and traces and added new test to logs * remove user file * added dbt-env to gitignore for SSO functionality --- .gitignore | 3 ++- macros/tests/tx_block_count.sql | 14 ++++++++++++++ models/silver/silver__logs.sql | 5 +++-- models/silver/silver__logs.yml | 4 ++++ models/silver/silver__traces.sql | 5 +++-- 5 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 macros/tests/tx_block_count.sql diff --git a/.gitignore b/.gitignore index d2045f4..d99e9bd 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,5 @@ logs/ .history/ **/.DS_Store .vscode/ -.env \ No newline at end of file +.env +dbt-env/ \ No newline at end of file diff --git a/macros/tests/tx_block_count.sql b/macros/tests/tx_block_count.sql new file mode 100644 index 0000000..fac6ce1 --- /dev/null +++ b/macros/tests/tx_block_count.sql @@ -0,0 +1,14 @@ +{% test tx_block_count( + model, + column_name +) %} + +SELECT + {{ column_name }}, + COUNT(DISTINCT block_number) AS num_blocks +FROM + {{ model }} +GROUP BY {{ column_name }} +HAVING num_blocks > 1 + +{% endtest %} \ No newline at end of file diff --git a/models/silver/silver__logs.sql b/models/silver/silver__logs.sql index 0742e50..a252c2b 100644 --- a/models/silver/silver__logs.sql +++ b/models/silver/silver__logs.sql @@ -1,7 +1,8 @@ {{ config( materialized = 'incremental', - unique_key = "_log_id", - cluster_by = ['_inserted_timestamp::DATE'] + unique_key = 'tx_hash', + cluster_by = ['_inserted_timestamp::DATE'], + incremental_strategy = 'delete+insert' ) }} WITH base_txs AS ( diff --git a/models/silver/silver__logs.yml b/models/silver/silver__logs.yml index 7507428..3809356 100644 --- a/models/silver/silver__logs.yml +++ b/models/silver/silver__logs.yml @@ -32,6 +32,10 @@ models: - not_null - dbt_expectations.expect_column_values_to_match_regex: regex: 0[xX][0-9a-fA-F]+ + - tx_block_count: + config: + severity: error + error_if: "!=0" - name: EVENT_INDEX tests: - not_null diff --git a/models/silver/silver__traces.sql b/models/silver/silver__traces.sql index f2f0df0..68dd550 100644 --- a/models/silver/silver__traces.sql +++ b/models/silver/silver__traces.sql @@ -1,7 +1,8 @@ {{ config( materialized = 'incremental', - unique_key = '_call_id', - cluster_by = ['_inserted_timestamp::DATE'] + unique_key = 'tx_hash', + cluster_by = ['_inserted_timestamp::DATE'], + incremental_strategy = 'delete+insert' ) }} WITH new_blocks AS (