跳至内容

如何对 AWS Glue 数据质量自动监测功能规则的问题进行故障排除?

2 分钟阅读
0

我想对 AWS Glue 数据质量自动监测功能规则和规则集的问题进行故障排除。

解决方法

在 AWS Glue 数据质量自动监测功能规则和规则集方面,您可能会遇到以下问题:

  • 您的按键映射不适合数据帧。
  • 您设置的值不符合约束要求。
  • 列验证规则中有不正确的正则表达式。
  • 您的 AWS Glue 数据质量自动监测功能作业执行缓慢。
  • AWS Glue 对象缺少 start_data_quality_rule_recommendation_run 属性。

完成以下与您的问题相对应的操作。

您的按键映射不适合数据帧

在运行 DatasetMatch 规则时,您会收到以下错误消息:

“Provided Key Map Not Suitable for Given DataFrames”(提供的按键映射不适合给定的数据帧)

要解决此错误,请执行以下操作:

  • 验证主数据集和参考数据集中的联接键是否是唯一的。联接键必须是不包含重复项的主键。
  • 验证键列是否不包含 NULL 值。
  • (可选)使用包含干净键列的其他数据集。

在以下示例 DatasetMatch 规则中,example_aexample_b 必须仅包含不是 NULL 的唯一值:

Rules = [  
    DatasetMatch "reference" "example_a,example_b" = 1  
]

您设置的值不符合约束要求

运行数据质量检查时,您会收到以下错误消息:

“Value does not meet constraint requirement”(值不符合约束要求)

要解决此错误,请执行以下操作:

  • 检查您的规则配置,并验证列值的约束条件是否与数据的特征相匹配。例如,如果您检查数据的唯一性,请确保该列中没有重复值。
  • 确保您检查的数据遵循规则指定的格式。
  • 清理数据集,使其符合规则规定的约束条件。

在以下示例 DatasetMatch 规则中,example_a 必须仅包含不是 NULL 的唯一值:

Rules = [  
    DatasetMatch "reference" "example_a,example_a" = 1  
]

列验证规则中有不正确的正则表达式

使用 ColumnValues 规则验证列格式时,请遵循以下最佳实践:

  • 使用与您的数据格式相匹配的正则表达式。以下示例规则匹配格式为 yyyy-mm-ddyyyy/mm/dd 的日期:

    Rules = \[  
        ColumnValues "test\_date" matches "^(19|20)\\d\\d\[- /.\](0\[1-9\]|1\[012\])\[- /.\](0\[1-9\]|\[12\]\[0-9\]|3\[01\])"  
    \]

    但是,以下示例规则仅匹配格式为 yyyy-mm-dd 的日期:

    Rules = [  
        ColumnValues "test_date" matches "^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])"  
    ]
  • 在应用正则表达式之前,请使用在线工具或 Python 库对照样本数据测试您的正则表达式。

  • 确保您的正则表达式与预期的列格式相匹配。调整模式,使模式包含多种格式。

您的 AWS Glue 数据质量自动监测功能作业执行缓慢

如果您在运行 AWS Glue 数据质量自动监测功能作业时遇到性能下降的情况,请采取以下措施:

AWS Glue 对象缺少 'start_data_quality_rule_recommendation_run'" 属性

您会收到以下错误消息:

 "AttributeError: 'Glue' object has no attribute "start_data_quality_rule_recommendation_run""

如果您的 AWS Glue 对象不具有 start_data_quality_rule_recommendation_run 属性,请将以下键值对添加到作业的参数中:

Key: —additional-python-modules   
Value: boto3==1.28.26

相关信息

How do I create AWS Glue Data Quality rules and optimize their performance?

AWS 官方已更新 1 年前