【正解】B
【0からの解説】
AWS Glue Data Quality は、DQDL(Data Quality Definition Language)という宣言的なルール記述言語でデータ品質を検証する機能です。本問のように「primary データセットのある列の値の集合が、別の reference データセットの列の値の集合と一致しているか」を確認したいときに使うのが
ReferentialIntegrity(参照整合性) ルールです。
ReferentialIntegrity は、primary 側の指定列に出現する値の集合のうち、どれだけの割合が reference 側の指定列に存在するかを「0.0〜1.0 の比率」で評価します。完全一致(100%)を要求する場合は
= 1.0 と書きます。複数列を組にして比較する場合は primary 側を "city,state"、reference 側を "reference.{ref_city,ref_state}" のように波括弧で対応列をまとめて指定します。したがって正しいルールは B です。
判定の決め手は (1) 2 つのデータセット間で値の集合一致を見る → ReferentialIntegrity、(2) 一致度は比率 0.0〜1.0 で表す → 完全一致は 1.0、という DQDL の仕様です。
【誤りの選択肢】
A:DatasetMatch は 2 つのデータセットの行同士をキーで突き合わせて一致度を見るルールで、構文は "city->ref_city, ..." のようなマッピング形式ですが、本問の「特定の値の集合が一致するか」という参照整合性のユースケースには ReferentialIntegrity がより適合します。加えて、しきい値の与え方は両ルールとも比率で考えるのが基本で、本問の意図には B が合致します。
C:DatasetMatch である点に加え、しきい値を「100」としているのが誤りです。Glue Data Quality の一致系ルールのしきい値は割合(0.0〜1.0)で指定し、100% を表すのは 1.0 です。「= 100」は有効なしきい値になりません。
D:ルール種別(ReferentialIntegrity)は適切ですが、しきい値を「100」にしているのが誤りです。完全一致は「= 1.0」と表記する必要があります。
【参考】
ReferentialIntegrity ルール(AWS Glue DQDL)Data Quality Definition Language (DQDL) リファレンス