CustomSQL
このルールタイプは、次の 2 つのユースケースをサポートするように拡張されました。
データセットに対してカスタム SQL ステートメントを実行し、その戻り値を指定された式と対応させて確認します。
SELECT ステートメントで列名を指定するカスタム SQL ステートメントを実行し、それを何らかの条件と比較して行レベルの結果を取得します。
[Syntax] (構文)
CustomSql
<SQL_STATEMENT>
<EXPRESSION>
SQL_STATEMENT – 二重引用符で囲まれた単一の数値を返す SQL ステートメント。
EXPRESSION – ルールタイプの応答に対して実行し、論地値を生成するための式。詳細については、「表現」を参照してください。
例: ルール全体の結果を取得するカスタム SQL
このルール例では、データセットのレコード数を取得するための、SQL ステートメントを使用します。その後、このルールは、レコード数が 10 から 20 の間であることを確認します。
CustomSql "select count(*) from primary" between 10 and 20
例: 行レベルの結果を取得するカスタム SQL
このサンプルルールでは、SELECT ステートメントで列名を指定し、それを何らかの条件と比較して行レベルの結果を取得する SQL ステートメントを使用しています。しきい値条件式は、ルール全体が失敗するまでに失敗するレコード数のしきい値を定義します。ルールには条件とキーワードの両方を一緒に含めることはできないことに注意してください。
CustomSql "select Name from primary where Age > 18"
または
CustomSql "select Name from primary where Age > 18" with threshold > 3
重要
primary
エイリアスは、評価するデータセットの名前の代替です。コンソールでビジュアル ETL ジョブを使用する場合、primary
は常に、EvaluateDataQuality.apply()
変換に渡されている DynamicFrame
を表します。AWS Glue データカタログを使用して、テーブルに対して 品質評価タスクを実行する場合、primary
はテーブルを表します。
AWS Glue データカタログを使用している場合は、実際のテーブル名を使用することもできます。
CustomSql "select count(*) from database.table" between 10 and 20
複数のテーブルを結合して、異なるデータ要素を比較することもできます。
CustomSql "select count(*) from database.table inner join database.table2 on id1 = id2" between 10 and 20
AWS Glue ETL では、CustomSQL はデータ品質チェックに失敗したレコードを特定できます。これを機能させるには、データ品質を評価する主テーブルの一部であるレコードを返す必要があります。クエリの一部として返されたレコードは成功と見なされ、返されなかったレコードは不合格と見なされます。
次のルールにより、経過日数が 100 未満のレコードは成功と見なされ、それ以上のレコードは不合格とマークされます。
CustomSql "select id from primary where age < 100"
次の CustomSQL ルールは、レコードの 50% の経過日数が 10 を超えた場合は合格とし、失敗したレコードも特定します。この CustomSQL によって返されたレコードは合格と見なされ、返されなかったレコードは不合格と見なされます。
CustomSQL "select ID, CustomerID from primary where age > 10" with threshold > 0.5
メモ: データセットにないレコードを返すと、CustomSQL ルールは失敗します。