

# DataFreshness
<a name="dqdl-rule-types-DataFreshness"></a>

현재 시간과 날짜 열 값 간의 차이를 평가하여 열에 있는 데이터의 최신성을 검사합니다. 이 규칙 유형에 시간 기반 표현식을 지정하여 열 값이 최신 상태인지 확인할 수 있습니다.

**구문**

```
DataFreshness <COL_NAME> <EXPRESSION>
```
+ **COL\$1NAME** - 데이터 품질 규칙을 평가할 열의 이름입니다.

  **지원되는 열 유형**: 날짜 
+ **표현식** - 시간 또는 일 단위의 숫자 표현식입니다. 표현식에 시간 단위를 지정해야 합니다.

**예: 데이터 최신성**

다음 예제 규칙은 데이터 최신성을 확인합니다.

```
DataFreshness "Order_Date" <= 24 hours
DataFreshness "Order_Date" between 2 days and 5 days
```

**Null 동작**

 `DataFreshness` 규칙은 `NULL` 값이 있는 행에 대해 실패합니다. null 값으로 인해 규칙이 실패하면 실패 이유가 다음과 같이 표시됩니다.

```
80.00 % of rows passed the threshold
```

 여기서 실패한 행의 20%에는 `NULL`이 있는 행이 포함됩니다.

 다음 예제 복합 규칙은 `NULL` 값을 명시적으로 허용하는 방법을 제공합니다.

```
(DataFreshness "Order_Date" <= 24 hours) OR (ColumnValues "Order_Date" = NULL)
```

**Amazon S3 객체의 데이터 최신성**

 Amazon S3 파일 생성 시간을 기준으로 데이터의 최신성을 검증해야 하는 경우가 있습니다. 이렇게 하려면 다음 코드를 사용하여 타임스탬프를 가져와 데이터 프레임에 추가한 다음 데이터 최신성 검사를 적용할 수 있습니다.

```
df = glueContext.create_data_frame.from_catalog(database = "default", table_name = "mytable")
df = df.withColumn("file_ts", df["_metadata.file_modification_time"])

Rules = [
 DataFreshness "file_ts" < 24 hours 
]
```