CustomSQL - AWS Glue

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.