FRESHNESS
FRESHNESS (시스템 데이터 메트릭 함수)
테이블이 마지막으로 수정된 이후 경과한 시간(초)을 돌려주는 데이터 메트릭 함수(DMF)예요. 데이터가 얼마나 신선한지(freshness) 측정할 때 써요.
출처: 공식 문서
본문
Data Quality Monitoring은 Enterprise Edition이 필요합니다. 업그레이드 문의는 Snowflake Support에 연락하세요.
테이블이 마지막으로 수정된 이후 경과한 시간(초)을 반환합니다.
컬럼 인자가 지정되면, 기간은 함수의 현재 실행과 타임스탬프 컬럼의 최대 값을 비교해 계산됩니다. 함수를 실행하도록 예약된 시간이 실제로 실행된 시간과 다르면, 비교에는 예약된 시간이 사용됩니다.
컬럼이 지정되지 않으면, 기간은 함수의 현재 실행과 DML 명령이 마지막으로 테이블에 작용한 시각을 비교해 계산됩니다. 함수를 실행하도록 예약된 시간이 실제로 실행된 시간과 다르면, 비교에는 예약된 시간이 사용됩니다.
이 주제는 함수를 직접 호출하는 구문을 제공합니다. 테이블이나 뷰에 함수를 연결해 정기적으로 실행되게 하는 방법은 DMF 연결을 참고하세요.
구문 (Syntax)
SNOWFLAKE.CORE.FRESHNESS( [ <query> ] )
인자 (Arguments)
query
지정하면, 쿼리는 단일 타임스탬프 컬럼을 투영해야 합니다. 컬럼을 지정하고 싶지 않다면 함수를 직접 호출하지 말고 테이블에 연결해야 합니다.
허용되는 데이터 타입 (Allowed data types)
query가 투영하는 컬럼은 다음 데이터 타입 중 하나여야 합니다:
- DATE
- TIMESTAMP_LTZ
- TIMESTAMP_TZ
반환값 (Returns)
NUMBER 데이터 타입의 스칼라 값을 반환합니다.
사용 참고 (Usage notes)
- 이 함수를 뷰나 외부 테이블에 연결하려면 컬럼 인자를 지정해야 합니다.
- 이 함수는 타임스탬프 컬럼을 투영하는 쿼리를 지정한 경우에만 직접 호출할 수 있습니다. 함수를 테이블이나 뷰에 연결해 컬럼 인자 유무와 상관없이 정기적으로 실행되게 하려면 DMF 연결을 참고하세요.
예제 (Example)
t1 테이블에 함수를 연결해 테이블에서 마지막 DML 연산 이후 경과한 시간을 결정합니다:
ALTER TABLE t1
ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.FRESHNESS on ();
TIMESTAMP 컬럼을 측정해 테이블의 데이터 신선도가 300초(5분) 미만인지 함수를 직접 호출해 결정합니다:
SELECT SNOWFLAKE.CORE.FRESHNESS(
SELECT
timestamp
FROM hr.tables.empl_info
) < 300;
+---------------------------------------------------------------------+
| SNOWFLAKE.CORE.FRESHNESS(SELECT timestamp FROM hr.tables.empl_info) |
+---------------------------------------------------------------------+
| True |
+---------------------------------------------------------------------+