AWS Glue Data Qualityが前処理クエリをサポートしました
データ事業本部の鈴木です。
AWS Glue Data Qualityで品質ルール実行前の前処理クエリ機能が一般提供されていたので、簡単にですが試してみました。
アップデート内容
以下のAPI実行前に、設定したSparkSQL形式の前処理クエリを実行することができます。
start-data-quality-rule-recommendation-runstart-data-quality-ruleset-evaluation-run
APIリファレンスを確認すると、PreProcessingQuery属性が増えています。
個人的にはアナウンスにも記載の通り派生メトリクスの作成が品質チェックと同時にできるのは嬉しいなと思いました。データとしては存在しないものの、品質チェックの観点としては見ておきたい複雑な項目があった際に、わざわざデータ自体や前段のETL処理にそのロジックを追加するのは大変です。データ品質チェックの仕組み側で実装できるとデータやETL処理本体に修正を入れずに済みますし、安心して開発が行えます。チェックルールも簡潔にできる場面も多いと思います。
確認した範囲だと、マネジメントコンソールからはまだ使えないようでしたが、AWS CLIやBoto3では該当の属性が追加されていました。
以下はstart-data-quality-ruleset-evaluation-runのガイドです。
やってみた
あまり芸がないのですが、今回は単純に1カラムを前処理クエリで増やしておき、そのカラムが存在するかチェックする例を試してみます。
事前に適当なテーブルに対して、Glue Data Catalogから品質チェックルールを作成しておきました。

PreProcessingColカラムがあるかどうかを確認する、というルールです。もともとのテーブルにはこのカラムは存在せず、前処理クエリで作成します。
前処理クエリを設定したときは品質チェックは成功し、設定していないときは失敗するはずです。
PreProcessingQueryを指定したとき
aws glue start-data-quality-ruleset-evaluation-run --number-of-workers 2 --ruleset-names "実行する品質ルール" --role "arn:aws:iam::アカウントID:role/service-role/GlueDataQuality実行に必要な権限の付与されたIAMロール" --data-source 'DataQualityGlueTable={
DatabaseName=データベース名,
TableName=対象テーブル名,
PreProcessingQuery="SELECT *, 1 AS PreProcessingCol"
}'
PreProcessingColカラムの存在チェックが成功しました。

前処理クエリの内容はマネジメントコンソールからはみられないものの、結果をダウンロードすると確認できました。
{
"ResultId": "dqresult-a8e5fcf373b77524ad64569a10e1b86b62bce51c",
"Score": 1,
"DataSource": {
"DataQualityGlueTable": {
"DatabaseName": "データベース名",
"TableName": "テーブル名",
"PreProcessingQuery": "SELECT *, 1 AS PreProcessingCol"
}
},
"RulesetName": "test",
"StartedOn": "2025-11-29T15:02:07.834Z",
"CompletedOn": "2025-11-29T15:02:09.043Z",
"RulesetEvaluationRunId": "dqrun-8ff7c09afebf6af76c3f7e3ec6ee6849e4724541",
"RuleResults": [
{
"Name": "Rule_1",
"Description": "ColumnExists \"PreProcessingCol\"",
"Result": "PASS",
"EvaluatedMetrics": {}
}
]
}
そのほか、get-data-quality-result APIをAWS CLIなどから実行して確認することもできそうです。
PreProcessingQueryを指定しないとき
以下のようにPreProcessingQuery属性を指定せず実行してみました。
aws glue start-data-quality-ruleset-evaluation-run --number-of-workers 2 --ruleset-names "実行する品質ルール" --role "arn:aws:iam::アカウントID:role/service-role/GlueDataQuality実行に必要な権限の付与されたIAMロール" --data-source 'DataQualityGlueTable={
DatabaseName=データベース名,
TableName=対象テーブル名
}'
PreProcessingColカラムがないというエラーで失敗しました。これにより、確かにPreProcessingColカラムが作成されていることが分かりますね。

最後に
AWS Glue Data Qualityが前処理クエリをサポートしたため、簡単な例ですが、機能をご紹介しました。
使い所が多いアップデートなのではないでしょうか!ぜひ試してみてください。






