AWS Glue Data Qualityが前処理クエリをサポートしました

AWS Glue Data Qualityが前処理クエリをサポートしました

start-data-quality-rule-recommendation-run APIとstart-data-quality-ruleset-evaluation-run APIが前処理クエリに対応したことで、派生カラムなどに対する品質チェックが簡単に行えるようになりました。
2025.11.30

データ事業本部の鈴木です。

AWS Glue Data Qualityで品質ルール実行前の前処理クエリ機能が一般提供されていたので、簡単にですが試してみました。

https://aws.amazon.com/jp/about-aws/whats-new/2025/11/aws-glue-data-quality-pre-processing-queries/

アップデート内容

以下のAPI実行前に、設定したSparkSQL形式の前処理クエリを実行することができます。

  • start-data-quality-rule-recommendation-run
  • start-data-quality-ruleset-evaluation-run

APIリファレンスを確認すると、PreProcessingQuery属性が増えています。
個人的にはアナウンスにも記載の通り派生メトリクスの作成が品質チェックと同時にできるのは嬉しいなと思いました。データとしては存在しないものの、品質チェックの観点としては見ておきたい複雑な項目があった際に、わざわざデータ自体や前段のETL処理にそのロジックを追加するのは大変です。データ品質チェックの仕組み側で実装できるとデータやETL処理本体に修正を入れずに済みますし、安心して開発が行えます。チェックルールも簡潔にできる場面も多いと思います。

https://docs.aws.amazon.com/glue/latest/webapi/API_StartDataQualityRuleRecommendationRun.html
https://docs.aws.amazon.com/glue/latest/webapi/API_StartDataQualityRuleRecommendationRun.html

確認した範囲だと、マネジメントコンソールからはまだ使えないようでしたが、AWS CLIやBoto3では該当の属性が追加されていました。
以下はstart-data-quality-ruleset-evaluation-runのガイドです。

https://docs.aws.amazon.com/cli/latest/reference/glue/start-data-quality-ruleset-evaluation-run.html

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/glue/client/start_data_quality_ruleset_evaluation_run.html

やってみた

あまり芸がないのですが、今回は単純に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が前処理クエリをサポートしたため、簡単な例ですが、機能をご紹介しました。
使い所が多いアップデートなのではないでしょうか!ぜひ試してみてください。

この記事をシェアする

FacebookHatena blogX

関連記事