Skip to content

Commit 4232f0e

Browse files
implement selecting subset of tables (#77)
1 parent 611c3d3 commit 4232f0e

17 files changed

Lines changed: 147 additions & 124 deletions

dbt_project.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ vars:
1717
re_data:time_window_end: '{{ run_started_at.strftime("%Y-%m-%d 00:00:00") }}'
1818
re_data:time_window_start: '{{ (run_started_at - modules.datetime.timedelta(1)).strftime("%Y-%m-%d 00:00:00") }}'
1919
re_data:anomaly_detection_look_back_days: 30
20+
re_data:select: null
2021

2122
re_data:alerting_z_score: 3
2223

integration_tests/dbt_project.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,13 @@ vars:
2323
threshold: 0.6
2424
re_data:max_columns_in_query: 1
2525

26+
re_data:select:
27+
- buy_events
28+
- sample_table
29+
- sample_without_time_filter
30+
- sample_with_anomaly
31+
- re_data_source_test_table
32+
2633
re_data:metrics_base:
2734
table:
2835
- row_count

macros/meta/get_monitored.sql

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,27 @@
55
{% do both.extend(graph.sources.values()) %}
66
{% set owners_config = re_data.get_owners_config() %}
77

8+
{% set select_var = var('re_data:select') %}
9+
{% set select_all = true %}
10+
11+
{% set selected_nodes = none %}
12+
{% if select_var is not none %}
13+
{% set select_all = false %}
14+
{% set selected_nodes = dict() %}
15+
{% for el in select_var %}
16+
{% do selected_nodes.update({el: True}) %}
17+
{% endfor %}
18+
{% endif %}
19+
820
{% for el in both %}
921
{% if el.resource_type in ['model', 'seed', 'source'] %}
1022
{% if el.config.get('re_data_monitored') %}
23+
{% if select_all %}
24+
{% set selected = true %}
25+
{% else %}
26+
{% set selected = selected_nodes.get(el.name, false) %}
27+
{% endif %}
28+
1129
{% do monitored.append({
1230
'name': re_data.name_in_db(el.identifier or el.alias or el.name),
1331
'schema': re_data.name_in_db(el.schema),
@@ -17,6 +35,7 @@
1735
'columns': re_data.columns_in_db(el.config.get('re_data_columns', [])),
1836
'anomaly_detector': el.config.get('re_data_anomaly_detector', var('re_data:anomaly_detector', {})),
1937
'owners': re_data.prepare_model_owners(el.config.get('re_data_owners', []), owners_config),
38+
'selected': selected
2039
})
2140
%}
2241
{% endif %}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{% macro get_tables() %}
22
select *
3-
from {{ ref('re_data_monitored') }}
3+
from {{ ref('re_data_selected') }}
44
order by name, schema, database, time_filter
55
{% endmacro %}
66

77
{% macro get_schemas() %}
88
select distinct schema, database
9-
from {{ ref('re_data_monitored') }}
9+
from {{ ref('re_data_selected') }}
1010
{% endmacro %}

macros/metrics/base/internal_model_template.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
{% macro re_data_last_base_metrics_thread(num) %}
1616
{% set part_name = 're_data_last_base_metrics_part' ~ num %}
17-
{{ re_data.generate_depends(['re_data_monitored', 're_data_columns', 're_data_run_started_at', part_name]) }}
17+
{{ re_data.generate_depends(['re_data_selected', 're_data_monitored', 're_data_columns', 're_data_run_started_at', part_name]) }}
1818

1919
{{
2020
config(

macros/post_hook/re_data_monitored.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
{% do re_data.insert_list_to_table(
44
this,
55
monitored,
6-
['name', 'schema', 'database', 'time_filter', 'metrics', 'columns', 'anomaly_detector', 'owners']
6+
['name', 'schema', 'database', 'time_filter', 'metrics', 'columns', 'anomaly_detector', 'owners', 'selected']
77
) %}
88

99
{{ return('') }}

macros/public/store/export_alerts.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
columns as {{ re_data.quote_column('columns') }},
2828
anomaly_detector as {{ re_data.quote_column('anomaly_detector') }},
2929
owners as {{ re_data.quote_column('owners') }}
30-
from {{ ref('re_data_monitored') }}
30+
from {{ ref('re_data_selected') }}
3131
{% endset %}
3232
{% set query_result = run_query(monitored_query) %}
3333
{% set monitored_file_path = monitored_path or 'target/re_data/monitored.json' %}

macros/samples/internal_model_template.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77

88
{% macro re_data_last_table_samples() %}
9-
{{ re_data.generate_depends(['re_data_monitored', 're_data_columns', 're_data_run_started_at', 're_data_last_table_samples_part']) }}
9+
{{ re_data.generate_depends(['re_data_selected', 're_data_monitored', 're_data_columns', 're_data_run_started_at', 're_data_last_table_samples_part']) }}
1010

1111
{{
1212
config(

models/alerts/re_data_anomalies.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ select
2929
{{ re_data.generate_metric_value_text('z.metric', 'z.last_value') }} as last_value_text
3030
from
3131
{{ ref('re_data_z_score')}} z
32-
left join {{ ref('re_data_monitored') }} m
32+
left join {{ ref('re_data_selected') }} m
3333
on {{ split_and_return_nth_value('table_name', '.', 1) }} = m.database
3434
and {{ split_and_return_nth_value('table_name', '.', 2) }} = m.schema
3535
and {{ split_and_return_nth_value('table_name', '.', 3) }} = m.name

models/alerts/re_data_schema_changes.sql

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
-- depends_on: {{ ref('re_data_run_started_at') }}
1010
-- depends_on: {{ ref('re_data_columns_over_time') }}
1111
-- depends_on: {{ ref('re_data_monitored') }}
12+
-- depends_on: {{ ref('re_data_selected') }}
1213

1314
{% if execute and not re_data.in_compile() %}
1415
{% set last_data_points %}
@@ -54,7 +55,7 @@
5455
select * from {{ ref('re_data_columns_over_time')}}
5556
where detected_time = '{{ most_recent_time }}'
5657
and table_name in (
57-
select {{ full_table_name('name', 'schema', 'database') }} from {{ ref('re_data_monitored')}}
58+
select {{ full_table_name('name', 'schema', 'database') }} from {{ ref('re_data_selected')}}
5859
)
5960
),
6061

@@ -63,7 +64,7 @@
6364
select * from {{ ref('re_data_columns_over_time')}}
6465
where detected_time = '{{ prev_most_recent}}'
6566
and table_name in (
66-
select {{ full_table_name('name', 'schema', 'database') }} from {{ ref('re_data_monitored')}}
67+
select {{ full_table_name('name', 'schema', 'database') }} from {{ ref('re_data_selected')}}
6768
)
6869
),
6970

0 commit comments

Comments
 (0)