Skip to content

Commit

Permalink
Minimum and maximum values (outliers) anomaly detection.
Browse files Browse the repository at this point in the history
  • Loading branch information
piotrczarnas committed Jan 28, 2024
1 parent 4d5a80c commit 6b4077f
Show file tree
Hide file tree
Showing 51 changed files with 13,294 additions and 4,664 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@
* Custom SQL check for importing data quality results from third-party data quality libraries
* Small corrections in the documentation
* Pip startup script supports mirrors and retries when downloading the release package
* MIN and MAX anomalies checks
* Improvement in the performance of the notification panel
16 changes: 16 additions & 0 deletions distribution/python/dqops/client/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -586,6 +586,12 @@
ColumnInvalidUuidFormatFoundCheckSpec,
)
from .column_list_model import ColumnListModel
from .column_max_anomaly_differencing_check_spec import (
ColumnMaxAnomalyDifferencingCheckSpec,
)
from .column_max_anomaly_stationary_check_spec import (
ColumnMaxAnomalyStationaryCheckSpec,
)
from .column_max_in_range_check_spec import ColumnMaxInRangeCheckSpec
from .column_mean_anomaly_stationary_check_spec import (
ColumnMeanAnomalyStationaryCheckSpec,
Expand All @@ -603,6 +609,12 @@
from .column_median_change_30_days_check_spec import ColumnMedianChange30DaysCheckSpec
from .column_median_change_check_spec import ColumnMedianChangeCheckSpec
from .column_median_in_range_check_spec import ColumnMedianInRangeCheckSpec
from .column_min_anomaly_differencing_check_spec import (
ColumnMinAnomalyDifferencingCheckSpec,
)
from .column_min_anomaly_stationary_check_spec import (
ColumnMinAnomalyStationaryCheckSpec,
)
from .column_min_in_range_check_spec import ColumnMinInRangeCheckSpec
from .column_model import ColumnModel
from .column_monitoring_checks_root_spec import ColumnMonitoringChecksRootSpec
Expand Down Expand Up @@ -2089,6 +2101,8 @@
"ColumnInvalidLongitudeCountCheckSpec",
"ColumnInvalidUuidFormatFoundCheckSpec",
"ColumnListModel",
"ColumnMaxAnomalyDifferencingCheckSpec",
"ColumnMaxAnomalyStationaryCheckSpec",
"ColumnMaxInRangeCheckSpec",
"ColumnMeanAnomalyStationaryCheckSpec",
"ColumnMeanChange1DayCheckSpec",
Expand All @@ -2102,6 +2116,8 @@
"ColumnMedianChange7DaysCheckSpec",
"ColumnMedianChangeCheckSpec",
"ColumnMedianInRangeCheckSpec",
"ColumnMinAnomalyDifferencingCheckSpec",
"ColumnMinAnomalyStationaryCheckSpec",
"ColumnMinInRangeCheckSpec",
"ColumnModel",
"ColumnMonitoringChecksRootSpec",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
from ..models.column_anomaly_daily_monitoring_checks_spec_custom_checks import (
ColumnAnomalyDailyMonitoringChecksSpecCustomChecks,
)
from ..models.column_max_anomaly_differencing_check_spec import (
ColumnMaxAnomalyDifferencingCheckSpec,
)
from ..models.column_mean_anomaly_stationary_check_spec import (
ColumnMeanAnomalyStationaryCheckSpec,
)
Expand All @@ -35,6 +38,9 @@
ColumnMedianChange30DaysCheckSpec,
)
from ..models.column_median_change_check_spec import ColumnMedianChangeCheckSpec
from ..models.column_min_anomaly_differencing_check_spec import (
ColumnMinAnomalyDifferencingCheckSpec,
)
from ..models.column_sum_anomaly_differencing_check_spec import (
ColumnSumAnomalyDifferencingCheckSpec,
)
Expand All @@ -61,6 +67,8 @@ class ColumnAnomalyDailyMonitoringChecksSpec:
daily_sum_anomaly (Union[Unset, ColumnSumAnomalyDifferencingCheckSpec]):
daily_mean_anomaly (Union[Unset, ColumnMeanAnomalyStationaryCheckSpec]):
daily_median_anomaly (Union[Unset, ColumnMedianAnomalyStationaryCheckSpec]):
daily_min_anomaly (Union[Unset, ColumnMinAnomalyDifferencingCheckSpec]):
daily_max_anomaly (Union[Unset, ColumnMaxAnomalyDifferencingCheckSpec]):
daily_mean_change (Union[Unset, ColumnMeanChangeCheckSpec]):
daily_median_change (Union[Unset, ColumnMedianChangeCheckSpec]):
daily_sum_change (Union[Unset, ColumnSumChangeCheckSpec]):
Expand All @@ -81,6 +89,8 @@ class ColumnAnomalyDailyMonitoringChecksSpec:
daily_sum_anomaly: Union[Unset, "ColumnSumAnomalyDifferencingCheckSpec"] = UNSET
daily_mean_anomaly: Union[Unset, "ColumnMeanAnomalyStationaryCheckSpec"] = UNSET
daily_median_anomaly: Union[Unset, "ColumnMedianAnomalyStationaryCheckSpec"] = UNSET
daily_min_anomaly: Union[Unset, "ColumnMinAnomalyDifferencingCheckSpec"] = UNSET
daily_max_anomaly: Union[Unset, "ColumnMaxAnomalyDifferencingCheckSpec"] = UNSET
daily_mean_change: Union[Unset, "ColumnMeanChangeCheckSpec"] = UNSET
daily_median_change: Union[Unset, "ColumnMedianChangeCheckSpec"] = UNSET
daily_sum_change: Union[Unset, "ColumnSumChangeCheckSpec"] = UNSET
Expand Down Expand Up @@ -114,6 +124,14 @@ def to_dict(self) -> Dict[str, Any]:
if not isinstance(self.daily_median_anomaly, Unset):
daily_median_anomaly = self.daily_median_anomaly.to_dict()

daily_min_anomaly: Union[Unset, Dict[str, Any]] = UNSET
if not isinstance(self.daily_min_anomaly, Unset):
daily_min_anomaly = self.daily_min_anomaly.to_dict()

daily_max_anomaly: Union[Unset, Dict[str, Any]] = UNSET
if not isinstance(self.daily_max_anomaly, Unset):
daily_max_anomaly = self.daily_max_anomaly.to_dict()

daily_mean_change: Union[Unset, Dict[str, Any]] = UNSET
if not isinstance(self.daily_mean_change, Unset):
daily_mean_change = self.daily_mean_change.to_dict()
Expand Down Expand Up @@ -173,6 +191,10 @@ def to_dict(self) -> Dict[str, Any]:
field_dict["daily_mean_anomaly"] = daily_mean_anomaly
if daily_median_anomaly is not UNSET:
field_dict["daily_median_anomaly"] = daily_median_anomaly
if daily_min_anomaly is not UNSET:
field_dict["daily_min_anomaly"] = daily_min_anomaly
if daily_max_anomaly is not UNSET:
field_dict["daily_max_anomaly"] = daily_max_anomaly
if daily_mean_change is not UNSET:
field_dict["daily_mean_change"] = daily_mean_change
if daily_median_change is not UNSET:
Expand Down Expand Up @@ -205,6 +227,9 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
from ..models.column_anomaly_daily_monitoring_checks_spec_custom_checks import (
ColumnAnomalyDailyMonitoringChecksSpecCustomChecks,
)
from ..models.column_max_anomaly_differencing_check_spec import (
ColumnMaxAnomalyDifferencingCheckSpec,
)
from ..models.column_mean_anomaly_stationary_check_spec import (
ColumnMeanAnomalyStationaryCheckSpec,
)
Expand All @@ -231,6 +256,9 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
ColumnMedianChange30DaysCheckSpec,
)
from ..models.column_median_change_check_spec import ColumnMedianChangeCheckSpec
from ..models.column_min_anomaly_differencing_check_spec import (
ColumnMinAnomalyDifferencingCheckSpec,
)
from ..models.column_sum_anomaly_differencing_check_spec import (
ColumnSumAnomalyDifferencingCheckSpec,
)
Expand Down Expand Up @@ -284,6 +312,24 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
_daily_median_anomaly
)

_daily_min_anomaly = d.pop("daily_min_anomaly", UNSET)
daily_min_anomaly: Union[Unset, ColumnMinAnomalyDifferencingCheckSpec]
if isinstance(_daily_min_anomaly, Unset):
daily_min_anomaly = UNSET
else:
daily_min_anomaly = ColumnMinAnomalyDifferencingCheckSpec.from_dict(
_daily_min_anomaly
)

_daily_max_anomaly = d.pop("daily_max_anomaly", UNSET)
daily_max_anomaly: Union[Unset, ColumnMaxAnomalyDifferencingCheckSpec]
if isinstance(_daily_max_anomaly, Unset):
daily_max_anomaly = UNSET
else:
daily_max_anomaly = ColumnMaxAnomalyDifferencingCheckSpec.from_dict(
_daily_max_anomaly
)

_daily_mean_change = d.pop("daily_mean_change", UNSET)
daily_mean_change: Union[Unset, ColumnMeanChangeCheckSpec]
if isinstance(_daily_mean_change, Unset):
Expand Down Expand Up @@ -393,6 +439,8 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
daily_sum_anomaly=daily_sum_anomaly,
daily_mean_anomaly=daily_mean_anomaly,
daily_median_anomaly=daily_median_anomaly,
daily_min_anomaly=daily_min_anomaly,
daily_max_anomaly=daily_max_anomaly,
daily_mean_change=daily_mean_change,
daily_median_change=daily_median_change,
daily_sum_change=daily_sum_change,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
from ..models.column_anomaly_daily_partitioned_checks_spec_custom_checks import (
ColumnAnomalyDailyPartitionedChecksSpecCustomChecks,
)
from ..models.column_max_anomaly_stationary_check_spec import (
ColumnMaxAnomalyStationaryCheckSpec,
)
from ..models.column_mean_anomaly_stationary_check_spec import (
ColumnMeanAnomalyStationaryCheckSpec,
)
Expand All @@ -35,6 +38,9 @@
ColumnMedianChange30DaysCheckSpec,
)
from ..models.column_median_change_check_spec import ColumnMedianChangeCheckSpec
from ..models.column_min_anomaly_stationary_check_spec import (
ColumnMinAnomalyStationaryCheckSpec,
)
from ..models.column_sum_anomaly_stationary_partition_check_spec import (
ColumnSumAnomalyStationaryPartitionCheckSpec,
)
Expand All @@ -61,6 +67,8 @@ class ColumnAnomalyDailyPartitionedChecksSpec:
daily_partition_sum_anomaly (Union[Unset, ColumnSumAnomalyStationaryPartitionCheckSpec]):
daily_partition_mean_anomaly (Union[Unset, ColumnMeanAnomalyStationaryCheckSpec]):
daily_partition_median_anomaly (Union[Unset, ColumnMedianAnomalyStationaryCheckSpec]):
daily_partition_min_anomaly (Union[Unset, ColumnMinAnomalyStationaryCheckSpec]):
daily_partition_max_anomaly (Union[Unset, ColumnMaxAnomalyStationaryCheckSpec]):
daily_partition_mean_change (Union[Unset, ColumnMeanChangeCheckSpec]):
daily_partition_median_change (Union[Unset, ColumnMedianChangeCheckSpec]):
daily_partition_sum_change (Union[Unset, ColumnSumChangeCheckSpec]):
Expand All @@ -87,6 +95,12 @@ class ColumnAnomalyDailyPartitionedChecksSpec:
daily_partition_median_anomaly: Union[
Unset, "ColumnMedianAnomalyStationaryCheckSpec"
] = UNSET
daily_partition_min_anomaly: Union[
Unset, "ColumnMinAnomalyStationaryCheckSpec"
] = UNSET
daily_partition_max_anomaly: Union[
Unset, "ColumnMaxAnomalyStationaryCheckSpec"
] = UNSET
daily_partition_mean_change: Union[Unset, "ColumnMeanChangeCheckSpec"] = UNSET
daily_partition_median_change: Union[Unset, "ColumnMedianChangeCheckSpec"] = UNSET
daily_partition_sum_change: Union[Unset, "ColumnSumChangeCheckSpec"] = UNSET
Expand Down Expand Up @@ -138,6 +152,14 @@ def to_dict(self) -> Dict[str, Any]:
self.daily_partition_median_anomaly.to_dict()
)

daily_partition_min_anomaly: Union[Unset, Dict[str, Any]] = UNSET
if not isinstance(self.daily_partition_min_anomaly, Unset):
daily_partition_min_anomaly = self.daily_partition_min_anomaly.to_dict()

daily_partition_max_anomaly: Union[Unset, Dict[str, Any]] = UNSET
if not isinstance(self.daily_partition_max_anomaly, Unset):
daily_partition_max_anomaly = self.daily_partition_max_anomaly.to_dict()

daily_partition_mean_change: Union[Unset, Dict[str, Any]] = UNSET
if not isinstance(self.daily_partition_mean_change, Unset):
daily_partition_mean_change = self.daily_partition_mean_change.to_dict()
Expand Down Expand Up @@ -217,6 +239,10 @@ def to_dict(self) -> Dict[str, Any]:
field_dict[
"daily_partition_median_anomaly"
] = daily_partition_median_anomaly
if daily_partition_min_anomaly is not UNSET:
field_dict["daily_partition_min_anomaly"] = daily_partition_min_anomaly
if daily_partition_max_anomaly is not UNSET:
field_dict["daily_partition_max_anomaly"] = daily_partition_max_anomaly
if daily_partition_mean_change is not UNSET:
field_dict["daily_partition_mean_change"] = daily_partition_mean_change
if daily_partition_median_change is not UNSET:
Expand Down Expand Up @@ -267,6 +293,9 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
from ..models.column_anomaly_daily_partitioned_checks_spec_custom_checks import (
ColumnAnomalyDailyPartitionedChecksSpecCustomChecks,
)
from ..models.column_max_anomaly_stationary_check_spec import (
ColumnMaxAnomalyStationaryCheckSpec,
)
from ..models.column_mean_anomaly_stationary_check_spec import (
ColumnMeanAnomalyStationaryCheckSpec,
)
Expand All @@ -293,6 +322,9 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
ColumnMedianChange30DaysCheckSpec,
)
from ..models.column_median_change_check_spec import ColumnMedianChangeCheckSpec
from ..models.column_min_anomaly_stationary_check_spec import (
ColumnMinAnomalyStationaryCheckSpec,
)
from ..models.column_sum_anomaly_stationary_partition_check_spec import (
ColumnSumAnomalyStationaryPartitionCheckSpec,
)
Expand Down Expand Up @@ -356,6 +388,24 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
)
)

_daily_partition_min_anomaly = d.pop("daily_partition_min_anomaly", UNSET)
daily_partition_min_anomaly: Union[Unset, ColumnMinAnomalyStationaryCheckSpec]
if isinstance(_daily_partition_min_anomaly, Unset):
daily_partition_min_anomaly = UNSET
else:
daily_partition_min_anomaly = ColumnMinAnomalyStationaryCheckSpec.from_dict(
_daily_partition_min_anomaly
)

_daily_partition_max_anomaly = d.pop("daily_partition_max_anomaly", UNSET)
daily_partition_max_anomaly: Union[Unset, ColumnMaxAnomalyStationaryCheckSpec]
if isinstance(_daily_partition_max_anomaly, Unset):
daily_partition_max_anomaly = UNSET
else:
daily_partition_max_anomaly = ColumnMaxAnomalyStationaryCheckSpec.from_dict(
_daily_partition_max_anomaly
)

_daily_partition_mean_change = d.pop("daily_partition_mean_change", UNSET)
daily_partition_mean_change: Union[Unset, ColumnMeanChangeCheckSpec]
if isinstance(_daily_partition_mean_change, Unset):
Expand Down Expand Up @@ -507,6 +557,8 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
daily_partition_sum_anomaly=daily_partition_sum_anomaly,
daily_partition_mean_anomaly=daily_partition_mean_anomaly,
daily_partition_median_anomaly=daily_partition_median_anomaly,
daily_partition_min_anomaly=daily_partition_min_anomaly,
daily_partition_max_anomaly=daily_partition_max_anomaly,
daily_partition_mean_change=daily_partition_mean_change,
daily_partition_median_change=daily_partition_median_change,
daily_partition_sum_change=daily_partition_sum_change,
Expand Down
Loading

0 comments on commit 6b4077f

Please sign in to comment.