CustomSQL
Este tipo de regla se ha ampliado para admitir dos casos de uso:
Ejecutar una instrucción SQL personalizada contra un conjunto de datos y comprobar el valor que se produce con respecto a una expresión dada.
Ejecutar una instrucción SQL personalizada en la que especifique un nombre de columna en la instrucción SELECT contra el que compararlo con alguna condición para obtener resultados a nivel de fila.
Sintaxis
CustomSql
<SQL_STATEMENT>
<EXPRESSION>
SQL_STATEMENT: una instrucción SQL que devuelve un solo valor numérico, entre comillas dobles.
EXPRESSION: una expresión que se ejecuta en función de la respuesta del tipo de regla para producir un valor booleano. Para obtener más información, consulte Expressions.
Ejemplo: SQL personalizado para recuperar el resultado general de una regla
Esta regla de ejemplo usa una instrucción SQL para recuperar el recuento de registros de un conjunto de datos. A continuación, la regla comprueba que el recuento de registros esté comprendido entre 10 y 20.
CustomSql "select count(*) from primary" between 10 and 20
Ejemplo: SQL personalizado para recuperar los resultados a nivel de fila
Esta regla de ejemplo utiliza una instrucción SQL en la que se especifica un nombre de columna en la instrucción SELECT con el que se compara con alguna condición para obtener resultados a nivel de fila. Una expresión de condición de umbral define un umbral del número de registros que deben fallar para que falle toda la regla. Tenga en cuenta que una regla no puede contener una condición y una palabra clave juntas.
CustomSql "select Name from primary where Age > 18"
o
CustomSql "select Name from primary where Age > 18" with threshold > 3
importante
El alias primary
representa el nombre del conjunto de datos que quiere evaluar. Al trabajar con trabajos de ETL visuales en la consola, primary
siempre representa el elemento DynamicFrame
que se pasa a la transformación de EvaluateDataQuality.apply()
. Cuando se utiliza el Catálogo de datos de AWS Glue para ejecutar tareas de calidad de datos en una tabla, primary
representa la tabla.
Si está en el Catálogo de datos de AWS Glue, también puede usar los nombres reales de las tablas:
CustomSql "select count(*) from database.table" between 10 and 20
También puede combinar varias tablas para comparar diferentes elementos de datos:
CustomSql "select count(*) from database.table inner join database.table2 on id1 = id2" between 10 and 20
En ETL de AWS Glue, CustomSQL puede identificar los registros que no superaron las comprobaciones de calidad de datos. Para que esto funcione, tendrá que producir los registros que forman parte de la tabla principal en la que evalúa la calidad de los datos. Los registros que se producen como parte de la consulta se consideran correctos y aquellos que no se producen se consideran fallidos.
La siguiente regla garantizará que los registros con una antigüedad inferior a 100 años se identifiquen como correctos y que aquellos anteriores se marquen como fallidos.
CustomSql "select id from primary where age < 100"
Esta regla CustomSQL se aprobará cuando el 50 % de los registros tengan más 10 años de antigüedad y también identificará los registros que fallaron. Los registros que este CustomSQL produce se considerarán aprobados, mientras que los que no se producen se considerarán fallidos.
CustomSQL "select ID, CustomerID from primary where age > 10" with threshold > 0.5
Nota: La regla CustomSQL fallará si usted produce registros que no están disponibles en el conjunto de datos.