데이터 품질 변칙 감지하기

데이터 메트릭 함수(DMF)에서의 값 반환은 유용한 정보를 제공하지만, 데이터 품질 문제를 나타내는지 여부를 알기 어려울 수 있습니다. 허용 가능한 값이 무엇인지 알고 있지만, 가능한 모든 데이터 품질 문제를 식별하기에 충분한 수동 규칙을 정의하기 어려울 수 있는 경우 :doc:`기대치</user-guide/data-quality-expectations>`를 정의할 수 있습니다.

해결책으로, Snowflake는 DMF에서 반환된 값에서 변칙을 감지할 수 있는 알고리즘을 제공합니다. Snowflake는 과거 데이터로 이 알고리즘을 학습시킨 다음 예측 범위보다 높거나 낮은 반환 값을 자동으로 식별합니다.

다음 시스템 DMFs에 대해 변칙 감지를 활성화할 수 있습니다.

  • ROW_COUNT — 테이블의 데이터 볼륨에서 변칙을 식별하려면 사용합니다.

  • FRESHNESS — 테이블이 업데이트되는 빈도에서 변칙을 식별하려면 사용합니다.

다음 예에서는 ROW_COUNT DMF 및 테이블 t1 간의 연결에 대한 변칙 감지를 활성화하는 방법을 보여줍니다.

ALTER TABLE t1
  ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.ROW_COUNT ON ()
    ANOMALY_DETECTION = TRUE;
Copy

Snowflake는 알고리즘을 학습시킨 다음 테이블 ``t1``의 볼륨에서 변칙을 자동으로 식별하기 시작합니다.

학습 기간 정보

변칙 감지를 활성화하면 Snowflake는 과거 데이터를 기반으로 변칙 감지 알고리즘을 학습시킵니다. 학습 기간은 DMF가 실행되는 빈도에 따라 달라집니다.

  • 자주 실행되는 DMFs의 경우, Snowflake는 2주 이상의 DMF 데이터를 사용하여 변칙 감지를 시작합니다. 이 2주의 기간은 주간 계절성을 설정하는 데 필수적입니다. 더 오래 실행된 DMF의 경우 Snowflake는 최대 60일의 데이터를 기반으로 알고리즘을 학습시킵니다. 학습 기간이 길어지면 월간 계절성이 설정되고 정확도가 높아집니다. Snowflake는 높은 신뢰도로 변칙을 감지하기 위해 60일간의 데이터를 기반으로 알고리즘을 학습시키는 것을 권장합니다.

  • 드물게 실행되거나 트리거 기반 일정에 따라 실행되는 DMFs의 경우, Snowflake에는 알고리즘을 학습시키기 위한 데이터 요소가 2개 이상 있어야 합니다. 예를 들어, DMF가 매달 실행되면 Snowflake는 2개월을 되돌아보고 알고리즘을 학습시킵니다.

DATA_METRIC_FUNCTION_REFERENCES 함수를 실행하여 Snowflake가 아직 학습 기간에 있는지 여부를 확인할 수 있습니다. 변칙 감지가 활성화되었지만 알고리즘이 여전히 학습 중인 경우 출력의 anomaly_detection_status 열에 TRAINING_IN_PROGRESS 값이 포함됩니다.

변칙 감지 활성화

DMF 연결에 대한 변칙 감지는 DMF를 오브젝트와 처음 연결할 때 활성화하거나 나중에 활성화할 수 있습니다.

예: DMF를 연결할 때 변칙 감지 활성화하기

FRESHNESS DMF를 v1 뷰와 연결할 때 변칙 감지를 활성화하려면 다음 명령을 실행합니다.

ALTER VIEW v1
  ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.FRESHNESS ON (c_timestamp)
    ANOMALY_DETECTION = TRUE;
Copy
예: 기존 연결에 대한 변칙 감지 활성화

ROW_COUNT DMF 및 테이블 t1 간의 기존 연결에 대한 변칙 감지를 활성화하려면 다음 명령을 실행합니다.

ALTER TABLE t1
  MODIFY DATA METRIC FUNCTION SNOWFLAKE.CORE.ROW_COUNT ON ()
    SET ANOMALY_DETECTION = TRUE;
Copy

변칙 감지의 민감도 수준 조정

변칙 감지를 활성화한 후 계정에서 발생하는 :ref:`변칙의 수를 추적<label-data_quality_anomalies_identify>`할 수 있습니다. 변칙의 수가 너무 적거나 너무 많은 경우 변칙 감지 알고리즘의 민감도 수준을 조정할 수 있습니다.

  • 가양성(즉, 변칙으로 잘못 식별된 값)이 너무 많은 경우 민감도를 LOW로 변경하여 변칙을 더 적게 찾을 수 있습니다.

  • 가음성(즉, 변칙으로 식별되지 않았지만 실제로 있는 값)이 너무 많은 경우 민감도를 HIGH로 변경하여 변칙을 더 많이 찾을 수 있습니다.

기본 민감도 수준은 MEDIUM입니다.

예를 들어, DMF의 민감도를 높이기 위해 테이블 ``t1``의 볼륨에서 변칙을 찾으려면 다음 명령을 실행합니다.

ALTER TABLE t1
  MODIFY DATA METRIC FUNCTION SNOWFLAKE.CORE.ROW_COUNT ON ()
    SET SENSITIVITY = 'HIGH';
Copy

변칙 감지 비활성화

DMF 연결에 대한 변칙 감지는 오브젝트를 수정하는 ALTER 문을 사용하여 언제든지 비활성화할 수 있습니다.

예를 들어, ROW_COUNT DMF 및 테이블 t1 간의 연결에 대한 변칙 감지를 비활성화하려면 다음 명령을 실행합니다.

ALTER TABLE t1
  MODIFY DATA METRIC FUNCTION SNOWFLAKE.CORE.ROW_COUNT ON ()
    SET ANOMALY_DETECTION = FALSE;
Copy

변칙 식별하기

다음을 사용하여 변칙을 식별할 수 있습니다.

SNOWFLAKE.LOCAL.DATA_QUALITY_MONITORING_RESULTS_RAW

데이터 품질 결과는 전용 이벤트 테이블 SNOWFLAKE.LOCAL.DATA_QUALITY_MONITORING_RESULTS_RAW에 기록됩니다.

DMF 연결에 대해 변칙 감지가 활성화된 경우 Snowflake가 DMF의 결과를 계산할 때마다 테이블에 두 개의 행이 추가됩니다. 첫 번째 행에서는 DMF가 연결된 오브젝트, DMF 자체, 데이터 품질 검사 결과에 대한 정보를 기록합니다. 두 번째 행에는 변칙 감지와 관련된 정보가 기록됩니다.

record_attribute 열의 snow.data_metric.record_type 필드는 행이 변칙 감지에 해당하는지 여부를 나타냅니다. 이 필드에는 다음의 두 가지 가능한 값이 있습니다.

  • ANOMALY_DETECTION_STATUS - 행이 변칙 감지에 해당함을 나타냅니다.

  • EVALUATION_RESULT - 행이 DMF의 평가에 해당함을 나타냅니다.

변칙이 있는지 여부 식별하기

이벤트 테이블의 행이 변칙 감지에 해당한다고 판단한 후에는 resource_attribute 열의 snow.data_metric.evaluation_result 필드를 확인하여 변칙이 있는지 확인할 수 있습니다.

이 필드에는 DMF에서 반환된 값을 포함하는 VARIANT 및 해당 값이 변칙인지 여부를 나타내는 BOOLEAN 값이 포함됩니다. 예를 들어, snow.data_metric.evaluation_result 필드의 값이 ``5, TRUE``인 경우 반환된 값은 ``5``이며, Snowflake는 이를 변칙으로 식별했습니다.

추가 필드

이벤트 테이블의 행이 변칙 감지에 해당하는 경우 resource_attribute 열에는 다음 필드도 포함됩니다.

  • snow.data_metric.upper_bound— 변칙 감지 알고리즘을 기반으로 DMF에서 반환해야 하는 가장 높은 값입니다. DMF에서 반환된 값이 이 상한을 초과하면 변칙입니다.

  • snow.data_metric.lower_bound — 변칙 감지 알고리즘을 기반으로 DMF에서 반환해야 하는 가장 낮은 값입니다. DMF에서 반환된 값이 이 하한 미만이면 변칙입니다.

  • snow.data_metric.forecast — 변칙 감지 알고리즘이 DMF에 의해 반환될 것으로 예측한 값입니다.

DATA_QUALITY_MONITORING_ANOMALY_DETECTION 뷰

SNOWFLAKE.LOCAL 스키마에 있는 DATA_QUALITY_MONITORING_ANOMALY_DETECTION 뷰 뷰는 이벤트 테이블의 정보를 평면화하여 DMF 결과에 더 쉽게 액세스할 수 있습니다.