AWS Glue Data Quality のルールとルールセットに関する問題をトラブルシューティングしたいです。
解決策
AWS Glue Data Quality のルールとルールセットで、次の問題が発生する場合があります。
- キーマップがデータフレームに適していない。
- 設定した値が制約要件を満たしていない。
- 列検証ルールに誤った正規表現がある。
- AWS Glue Data Quality ジョブの実行速度が遅い。
- AWS Glue オブジェクトで、start_data_quality_rule_recommendation_run 属性が欠けている。
問題に応じて、次の手順を実行します。
キーマップがデータフレームに適していない
DataSetMatch ルールを実行すると、次のエラーメッセージが表示されます。
"Provided Key Map Not Suitable for Given DataFrames"
このエラーを解決するには、次の手順を実行します。
- 結合キーがプライマリデータセットと参照データセットの両方で一意であることを確認します。結合キーは、重複を含まない主キーである必要があります。
- キー列に NULL 値が含まれていないことを確認します。
- (オプション) クリーンなキー列を持つ別のデータセットを使用します。
次の DatasetMatch ルールの例では、example_a と example_b には NULL ではない一意の値のみを含める必要があります。
Rules = [
DatasetMatch "reference" "example_a,example_b" = 1
]
設定した値が制約要件を満たしていない
Data Quality チェックを実行すると、次のエラーメッセージが表示されます。
"Value does not meet constraint requirement"
このエラーを解決するには、次の手順を実行します。
- ルール設定をレビューし、列の値の制約がデータの特性と一致することを確認します。例えば、データの一意性をチェックする場合は、列に重複する値がないことを確認します。
- チェックするデータは、ルールで指定された形式に従っている必要があります。
- ルールで指定された制約を満たすために、データセットをクリーンアップします。
次の DataSetMatch ルールの例では、example_a には NULL ではない一意の値のみが含まれている必要があります。
Rules = [
DatasetMatch "reference" "example_a,example_a" = 1
]
列検証ルールに誤った正規表現がある
ColumnValues ルールを使用して列フォーマットを検証する場合は、次のベストプラクティスを参照してください。
-
データ形式に合った正規表現を使用します。次のルール例は、yyyy-mm-dd および 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])"
]
一方、次のルール例は、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 Data Quality ジョブの実行速度が遅い
AWS Glue Data Quality ジョブの実行時のパフォーマンスが低い場合は、次の手順を実行します。
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
関連情報
AWS Glue Data Quality ルールを作成し、そのパフォーマンスを最適化する方法を教えてください。