DataFreshness - AWS Glue

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 ]