DataFreshness
通过评估当前时间和日期列值之间的差异,来检查列中数据的新鲜度。您可以为此规则类型指定基于时间的表达式,以确保列值是最新的。
语法
DataFreshness
<COL_NAME>
<EXPRESSION>
COL_NAME — 要根据其评估数据质量规则的列的名称。
支持的列类型:日期
EXPRESSION — 以小时或天为单位的数字表达式。必须在表达式中指定时间单位。
示例:数据新鲜度
以下示例规则检查数据的新鲜度。
DataFreshness "Order_Date" <= 24 hours DataFreshness "Order_Date" between 2 days and 5 days
零值行为
对于含有 NULL
值的行,将不能通过 DataFreshness
规则。如果由于零值而导致不能通过规则,则失效原因将显示如下:
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 ]