Skip to content

Commit 9c596ac

Browse files
author
Michael Myaskovsky
committed
fixed a few more
1 parent 7afcf1b commit 9c596ac

File tree

6 files changed

+39
-55
lines changed

6 files changed

+39
-55
lines changed

macros/edr/data_monitoring/monitors/column_numeric_monitors.sql

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,21 @@
3131
{%- endmacro %}
3232

3333
{% macro clickhouse__standard_deviation(column_name) -%}
34-
stddevPop(cast({{ column_name }} as {{ elementary.edr_type_float() }}))
34+
stddevSamp(cast({{ column_name }} as {{ elementary.edr_type_float() }}))
3535
{%- endmacro %}
3636

3737
{% macro variance(column_name) -%}
38+
{{ return(adapter.dispatch('variance', 'elementary')(column_name)) }}
39+
{%- endmacro %}
40+
41+
{% macro default__variance(column_name) -%}
3842
variance(cast({{ column_name }} as {{ elementary.edr_type_float() }}))
3943
{%- endmacro %}
4044

45+
{% macro clickhouse__variance(column_name) -%}
46+
varSamp(cast({{ column_name }} as {{ elementary.edr_type_float() }}))
47+
{%- endmacro %}
48+
4149
{% macro sum(column_name) -%}
4250
sum(cast({{ column_name }} as {{ elementary.edr_type_float() }}))
4351
{%- endmacro %}

macros/edr/tests/test_utils/get_anomaly_query.sql

Lines changed: 9 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -60,37 +60,24 @@ case when
6060
from anomaly_scores
6161
),
6262

63-
{{ elementary.get_final_results_query(test_configuration) }}
64-
65-
select * from final_results
66-
where {{ test_configuration.exclude_final_results }}
67-
{%- endset -%}
68-
{{- return(anomaly_query) -}}
69-
{% endmacro %}
70-
71-
{% macro get_final_results_query(test_configuration) %}
72-
{{ return(adapter.dispatch('get_final_results_query', 'elementary')(test_configuration)) }}
73-
{% endmacro %}
74-
75-
{% macro default__get_final_results_query(test_configuration) %}
76-
final_results as (
63+
final_results as (
7764
select
7865
metric_value as value,
7966
training_avg as average,
8067
{# when there is an anomaly we would want to use the last value of the metric (lag), otherwise visually the expectations would look out of bounds #}
8168
case
8269
when is_anomalous = TRUE and '{{ test_configuration.anomaly_direction }}' = 'spike' then
83-
lag(metric_value) over (partition by full_table_name, column_name, metric_name, dimension, dimension_value, bucket_seasonality order by bucket_end)
70+
{{ elementary.lag('metric_value') }} over (partition by full_table_name, column_name, metric_name, dimension, dimension_value, bucket_seasonality order by bucket_end)
8471
when is_anomalous = TRUE and '{{ test_configuration.anomaly_direction }}' != 'spike' then
85-
lag(min_metric_value) over (partition by full_table_name, column_name, metric_name, dimension, dimension_value, bucket_seasonality order by bucket_end)
72+
{{ elementary.lag('min_metric_value') }} over (partition by full_table_name, column_name, metric_name, dimension, dimension_value, bucket_seasonality order by bucket_end)
8673
when '{{ test_configuration.anomaly_direction }}' = 'spike' then metric_value
8774
else min_metric_value
8875
end as min_value,
8976
case
9077
when is_anomalous = TRUE and '{{ test_configuration.anomaly_direction }}' = 'drop' then
91-
lag(metric_value) over (partition by full_table_name, column_name, metric_name, dimension, dimension_value, bucket_seasonality order by bucket_end)
78+
{{ elementary.lag('metric_value') }} over (partition by full_table_name, column_name, metric_name, dimension, dimension_value, bucket_seasonality order by bucket_end)
9279
when is_anomalous = TRUE and '{{ test_configuration.anomaly_direction }}' != 'drop' then
93-
lag(max_metric_value) over (partition by full_table_name, column_name, metric_name, dimension, dimension_value, bucket_seasonality order by bucket_end)
80+
{{ elementary.lag('max_metric_value') }} over (partition by full_table_name, column_name, metric_name, dimension, dimension_value, bucket_seasonality order by bucket_end)
9481
when '{{ test_configuration.anomaly_direction }}' = 'drop' then metric_value
9582
else max_metric_value
9683
end as max_value,
@@ -100,36 +87,11 @@ case when
10087
from anomaly_scores_with_is_anomalous
10188
order by bucket_end, dimension_value
10289
)
103-
{% endmacro %}
10490

105-
{% macro clickhouse__get_final_results_query(test_configuration) %}
106-
final_results as (
107-
select
108-
metric_value as value,
109-
training_avg as average,
110-
{# when there is an anomaly we would want to use the last value of the metric (lag), otherwise visually the expectations would look out of bounds #}
111-
case
112-
when is_anomalous = TRUE and '{{ test_configuration.anomaly_direction }}' = 'spike' then
113-
lagInFrame(metric_value, 1) over (partition by full_table_name, column_name, metric_name, dimension, dimension_value, bucket_seasonality order by bucket_end)
114-
when is_anomalous = TRUE and '{{ test_configuration.anomaly_direction }}' != 'spike' then
115-
lagInFrame(min_metric_value, 1) over (partition by full_table_name, column_name, metric_name, dimension, dimension_value, bucket_seasonality order by bucket_end)
116-
when '{{ test_configuration.anomaly_direction }}' = 'spike' then metric_value
117-
else min_metric_value
118-
end as min_value,
119-
case
120-
when is_anomalous = TRUE and '{{ test_configuration.anomaly_direction }}' = 'drop' then
121-
lagInFrame(metric_value, 1) over (partition by full_table_name, column_name, metric_name, dimension, dimension_value, bucket_seasonality order by bucket_end)
122-
when is_anomalous = TRUE and '{{ test_configuration.anomaly_direction }}' != 'drop' then
123-
lagInFrame(max_metric_value, 1) over (partition by full_table_name, column_name, metric_name, dimension, dimension_value, bucket_seasonality order by bucket_end)
124-
when '{{ test_configuration.anomaly_direction }}' = 'drop' then metric_value
125-
else max_metric_value
126-
end as max_value,
127-
bucket_start as start_time,
128-
bucket_end as end_time,
129-
*
130-
from anomaly_scores_with_is_anomalous
131-
order by bucket_end, dimension_value
132-
)
91+
select * from final_results
92+
where {{ test_configuration.exclude_final_results }}
93+
{%- endset -%}
94+
{{- return(anomaly_query) -}}
13395
{% endmacro %}
13496

13597
{%- macro set_directional_anomaly(anomaly_direction, anomaly_score, sensitivity) -%}

macros/utils/data_types/cast_column.sql

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,9 @@
2323

2424
{%- macro clickhouse__edr_cast_as_timestamp(timestamp_field) -%}
2525
coalesce(
26-
toDateTime64(
27-
left(splitByChar('+', toString({{ timestamp_field }}))[1], 23),
28-
3
29-
),
30-
toDateTime64('1970-01-01 00:00:00', 3)
26+
toDateTime(
27+
left(splitByChar('+', toString({{ timestamp_field }}))[1], 19)),
28+
toDateTime('1970-01-01 00:00:00')
3129
)
3230
{%- endmacro -%}
3331

macros/utils/data_types/data_type.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
{% endmacro %}
3939

4040
{% macro clickhouse__edr_type_string() %}
41-
{% do return("varchar(4096)") %}
41+
{% do return("String") %}
4242
{% endmacro %}
4343

4444
{% macro snowflake__edr_type_string() %}

macros/utils/data_types/data_type_list.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@
135135
{% macro clickhouse__data_type_list(data_type) %}
136136
{% set string_list = ['String', 'FixedString', 'LowCardinality(String)'] | list %}
137137
{% set numeric_list = ['Int8', 'Int16', 'Int32', 'Int64', 'UInt8', 'UInt16', 'UInt32', 'UInt64', 'Float32', 'Float64', 'Decimal', 'Decimal32', 'Decimal64', 'Decimal128'] | list %}
138-
{% set timestamp_list = ['DateTime', 'DateTime64', 'Date', 'Date32'] | list %}
138+
{% set timestamp_list = ['DateTime', 'Date', 'Date32'] | list %}
139139
{% set boolean_list = ["UInt8","Bool"] | list %}
140140

141141
{%- if data_type == 'string' %}

macros/utils/data_types/null_as.sql

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,27 @@
11
{%- macro null_int() -%}
2+
{{ return(adapter.dispatch('null_int', 'elementary')()) }}
3+
{%- endmacro -%}
4+
5+
{%- macro default__null_int() -%}
26
cast(null as {{ elementary.edr_type_int() }})
37
{%- endmacro -%}
48

9+
{%- macro clickhouse__null_int() -%}
10+
cast(null as Nullable({{ elementary.edr_type_int() }}))
11+
{%- endmacro -%}
12+
513
{%- macro null_timestamp() -%}
14+
{{ return(adapter.dispatch('null_timestamp', 'elementary')()) }}
15+
{%- endmacro -%}
16+
17+
{%- macro default__null_timestamp() -%}
618
cast(null as {{ elementary.edr_type_timestamp() }})
719
{%- endmacro -%}
820

21+
{%- macro clickhouse__null_timestamp() -%}
22+
cast(null as Nullable({{ elementary.edr_type_timestamp() }}))
23+
{%- endmacro -%}
24+
925
{%- macro null_float() -%}
1026
cast(null as {{ elementary.edr_type_float() }})
1127
{%- endmacro -%}

0 commit comments

Comments
 (0)