Utilice expresiones lógicas para definir lógica de reglas en una definición de calidad de datos o contenido de columna en la tabla de salida de reglas de calidad de datos.
Estas expresiones lógicas siguen una sintaxis básica en la que una variable, como una palabra o un término, se evalúa basándose en una condición o tipo de comprobación especificados.
Una expresión de regla puede constar de los siguientes tipos de elementos:
Cada expresión de regla se compone de al menos una comprobación y puede combinar varias comprobaciones. Además, compruebe los ejemplos proporcionados para ver cómo puede utilizar las expresiones.
Variables y literales
Las variables y literales son elementos que se combinan con comprobaciones, operaciones y elementos generales, de fecha u hora, matemáticos y de serie. Las variables lógicas se enlazan con orígenes de datos físicos cuando se crea una regla a partir de la definición de calidad de datos. Puede seleccionar los siguientes tipos:
Elemento | Descripción |
---|---|
var |
Una variable lógica. Los nombres de variable no distinguen entre mayúsculas y minúsculas. Var1 y var1 hacen referencia a la misma variable. Los nombres pueden contener los siguientes caracteres:• Caracteres alfabéticos • Caracteres Unicode pertenecientes a la categoría Carta • Caracteres numéricos • Subrayado (_) • Signo de interrogación (?) • Signo de dólar ($) El primer carácter de un nombre de variable debe ser un carácter alfabético. Los nombres no pueden contener puntos y espacios. |
0.123 |
Un valor numérico. |
'value' |
Carácter o serie de caracteres y números que deben especificarse entre comillas simples. Si la serie contiene una comilla simple, preceda la comilla simple con una barra inclinada invertida. Si la serie contiene una barra inclinada invertida, coloque otra barra inclinada invertida delante de la otra. |
null |
Comprueba si hay valores nulos. |
{value1,value2} |
Una lista de valores separados por comas. |
Lógica
Combinar bloques lógicos con lógica de comprobaciones. La lógica básica es una única comprobación, como por ejemplo field1 exists
. Puede expandir esta lógica añadiendo condiciones y uniéndolas utilizando operadores. Puede incluir partes de la expresión entre paréntesis para especificar la prioridad. marital_status='married' and (age<18 or age>100)
es diferente de (marital_status='married' and age<18) or age>100
Elemento de bloque | Expresión | Descripción |
---|---|---|
No [] | no lógica | Niega la expresión:not (ucase(PrimaryName) contains 'TEST') |
[] O [] | logic1 o logic2 | logic1 o logic2 debe ser true:UnhandledNameData not exists OR len(trim(UnhandledNameData)) = 0 |
[] Y [] | logic1 y logic2 | Tanto logic1 como logic2 deben ser true:IF Field1 exists AND len(trim(Field1)) <> 0 THEN Field1 is_numeric |
Si [] Entonces [] | si check1 , check2 | Expresión condicional:IF NamePrefix exists THEN len(trim(NamePrefix)) > 1 |
Si [] Entonces [] Else [] | si check1 , check2 else check2 | Expresión condicional con vía de acceso alternativa:if age >= 18 then credit_card exists else (not credit_card exists) |
Comprobaciones
Especifique comprobaciones para varias condiciones: comparación lógica, coincidencia, aparición. Una comprobación es una parte de la expresión que se evalúa como un resultado booleano.
Comparaciones lógicas
Elemento de bloque | Expresión | Descripción |
---|---|---|
[ ] < [ ] | x < y | Comprueba si el primer valor es menor que el segundo valor. |
[ ] <= [ ] | x < = y | Comprueba si el primer valor es menor o igual que el segundo valor. |
[ ] <> [ ] | x < > y | Comprueba si el primer valor no es igual al segundo valor. |
[ ] = [ ] | x = y | Comprueba si el primer valor es igual al segundo valor. Para la comparación booleana, utilice 0 o 1 como segundo valor. |
[ ] > [ ] | x > y | Comprueba si el primer valor es mayor que el segundo valor. |
[ ] >= [ ] | x > = y | Comprueba si el primer valor es mayor o igual que el segundo valor. |
Los datos de origen y los datos de referencia deben tener tipos de datos compatibles. Puede utilizar una expresión formada por funciones escalares, operaciones aritméticas y variables como datos de origen. La expresión debe evaluarse en un tipo de datos de tipo carácter o serie.
Para los datos de serie, las comparaciones lógicas distinguen entre mayúsculas y minúsculas e ignoran todos los espacios finales del valor que está comprobando. Los espacios al principio de los valores que se van a comprobar no se ignoran. Los espacios o caracteres adicionales o las diferencias entre los valores en mayúsculas y minúsculas pueden impedir una validación correcta. Puede utilizar recortando y modificaciones para estandarizar los valores.
Coincidencia
Elemento de bloque | Expresión | Descripción |
---|---|---|
[] contiene la subserie [] | x contiene y | Comprueba si el primer valor contiene la subcadena que especifique. Notas: • La comprobación de contención distingue entre mayúsculas y minúsculas. • Tanto los datos de origen como los de referencia deben ser series. • Las comillas son necesarias si la serie es un literal codificado. • Tanto los datos de origen como los de referencia pueden ser una variable o el resultado de una función escalar. • Puede utilizar una expresión formada por funciones escalares, operaciones aritméticas y variables como datos de origen. En este caso, asegúrese de que cada expresión evalúe un tipo de datos de serie o carácter. |
[] existe | x existe | Comprueba si el valor existe. |
[] existe en la columna de referencia [] | x columna_in_referencia y | Comprueba si el primer valor existe en la columna de referencia especificada. Los datos de origen y de referencia deben tener tipos de datos compatibles. |
[] es una fecha que utiliza el formato [] | x fecha_es y | Comprueba si el primer valor es una fecha en el formato especificado. Véase formatos de fecha permitidos. Si configura la expresión manualmente, escriba el formato entre comillas simples. |
[] está en una lista de referencia [] | x lista_referencia_in_list y | Comprueba si el primer valor está en la lista de referencia especificada. Los datos de origen y de referencia deben tener tipos de datos compatibles. |
[] es numérico | x es_numérico | Comprueba si el valor es un valor numérico. Esta comprobación acepta números no formateados o números con un formato específico del entorno local, como por ejemplo "100,000.00." De forma predeterminada, se utiliza el entorno local actual. |
[] coincide con la clase de datos [] | x matches_dataclass y | Comprueba si el primer valor coincide con la clase de datos identificada por el código de clase especificado como segundo valor. Para buscar el código de clase de una clase de datos específica, utilice la API de IBM Knowledge Catalog GET /v3/data_classes/{artifact_id}/versions/{version_id} . Puede encontrar los identificadores de artefacto y versión de la llamada en la URL la clase de datos. El código de clase está en la sección entity de la respuesta. Puede utilizar esta comprobación sólo con clases de datos basadas en valores. Estas clases de datos muestran Valor como el ámbito del código en la sección Coincidencia de datos de la pestaña Visión general . También puede comprobar la información de ámbito en Detalles de clases de datos predefinidas. |
[] coincide con el formato [] | x formato_coincidencias y | Comprueba si el primer valor coincide con el formato especificado. El patrón define explícitamente lo que es aceptable en cada posición de carácter específica. Puede utilizar los operadores siguientes para crear el patrón: • 'A 'para cualquier letra mayúscula • 'a' para cualquier letra minúscula • '9' para cualquier dígito 0-9 • 'x 'para cualquier valor alfanumérico, independientemente de su caso • 'I' para un ideógrafo CJKV (chino, japonés, coreano o vietnamita), tal como lo define el estándar Unicode Cualquier otro carácter de la serie de patrón indica que está buscando explícitamente el carácter exacto que ha especificado. Los datos de origen deben ser de un tipo de datos de tipo carácter. |
[] coincide con regex [] | x reg_coincidencias y | Comprueba si el primer valor coincide con el patrón especificado por la expresión regular. La biblioteca de expresiones regulares Perl se utiliza para estos tipos de evaluaciones. |
Apariciones
Elemento | Expresión | Descripción |
---|---|---|
[] es exclusivo | x exclusivo | Comprueba si el valor es exclusivo en la columna. |
[] occurs [] time (s) | x apariciones y | Comprueba si el primer valor aparece en la columna el número de veces especificado. |
[] ocurre al menos [] tiempo (s) | x apariciones > = y | Comprueba si el primer valor aparece en la columna al menos el número de veces especificado. |
[] ocurre como máximo [] tiempo (s) | x se produce < = y | Comprueba si el primer valor aparece en la columna como máximo el número de veces especificado. |
[] ocurre menos de [] tiempo (s) | x apariciones < y | Comprueba si el primer valor aparece en la columna menos que el número de veces especificado. |
[] se produce más de [] tiempo (s) | x apariciones > y | Comprueba si el primer valor aparece en la columna más veces que el número de veces especificado. |
Estas comprobaciones implican el cálculo de agregaciones en las columnas de origen. Estas operaciones pueden ejecutarse mucho más tiempo que las comprobaciones que sólo prueban registros individuales.
Operaciones
Combinar elementos de operación con lógica de comprobaciones. Puede utilizar variables y literales, elementos generales, elementos de fecha y hora, matemáticos y elementos de serie con elementos de operación.
Elemento | Descripción |
---|---|
x + y | Añade el primer valor al segundo valor. |
x - y | Resta el segundo valor del primer valor. |
x * y | Multiplica los valores especificados. |
x / y | Divide los valores especificados. |
x % y | Utiliza el primer número como dividendo y el segundo número como divisor. El valor de modulo es el restante de dividir el primer número por el segundo número. Por ejemplo, 7 % 2 se calcula en 1. |
x ^ y | El valor exponencial de un número. Por ejemplo, 5 ^ 3 eleva 5 a la tercera potencia (o 555), que es igual a 125. |
Fecha y hora
Puede combinar elementos de fecha y hora con la lógica de comprobaciones.
Formatos de fecha válidos
Sin delimitador | Delimitar con guión | Delimitar con barra inclinada | Delimitar con puntos |
---|---|---|---|
%yyyy%mm%dd | %aaaa-%mm-%dd | %aaaa/%mm/%dd | %aaaa. %mm.%dd |
%aa%mm%dd | %aa-%mm-%dd | %a/ %mm/%dd | %aa. %mm.%dd |
%mm%dd%aaaa | %mm-%dd-%yyyy | %mm/%dd/%aaaa | %mm.%dd. %yyyy |
%mm%dd%yy | %mm-%dd-%aa | %mm/%dd/%yy | %mm.%dd. %yy |
%aaaa%dd%mm | %aaaa-%dd-%mm | %yyyy/%dd/%mm | %aaaa.%dd. %mm |
%yy%dd%mm | %aa-%dd-%mm | %aa/%dd/%mm | %yy.%dd. %mm |
%dd%mm%aaaa | %dd-%mm-%aaaayyy | %dd/%mm/%aaaa | %dd. %mm. %aaaa |
%dd%mm%yy | %dd-%mm-%aa | %dd/%mm/%aa | %dd. %mm. %yy |
Conversiones
Elemento | Expresión | Descripción |
---|---|---|
convertir [] de formato [] a otro formato [] | convertdate (x, y, z) | Convierte el primer valor del formato de origen especificado al formato de destino especificado. |
convertir [] en fecha gregoriana | julianDayToGregorian(x) | Convierte la fecha especificada en el formato juliano al formato gregoriano. |
convertir [] a formato Juliano | gregorianToJulianDay(x) | Convierte la fecha especificada en el formato gregoriano al formato juliano. |
convertir [] a fecha utilizando el formato [] | valor_fecha (x,y) | Convierte el primer valor en una fecha con el formato especificado. |
convertir [] a hora utilizando el formato [] | timevalue (x,y) | Convierte el primer valor en una hora con el formato especificado. |
convertir [] a indicación de fecha y hora utilizando el formato [] | valor de indicación de fecha y hora (x,y) | Convierte el primer valor en una indicación de fecha y hora utilizando el formato especificado. |
Formateado
Elemento | Expresión | Descripción |
---|---|---|
fecha actual | fecha () | Devuelve la fecha del sistema del sistema como un valor de fecha. |
hora actual | hora () | Devuelve la hora del sistema del sistema como un valor de hora. |
Indicación de fecha y hora actual | indicación de fecha y hora () | Devuelve la hora del sistema del sistema como un valor de indicación de fecha y hora. |
año de fecha [] | año (x) | Devuelve un número que representa el año para la fecha especificada. |
mes de fecha [] | mes (x) | Devuelve un número que representa el mes para la fecha especificada. |
día de la fecha [] | día (x) | Devuelve un número que representa el día del mes para la fecha especificada. |
día de la semana para la fecha [] | día de la semana (x) | Devuelve un número que representa el día de la semana para la fecha especificada, donde 1 es domingo. |
hora de tiempo [] | horas (x) | Devuelve un número que representa las horas para el valor de hora especificado. |
minutos de tiempo [] | minutos (x) | Devuelve un número que representa los minutos para el valor de tiempo especificado. |
segundos de tiempo [] | segundos (x) | Devuelve un número que representa los segundos y milisegundos para el valor de tiempo especificado. |
Funciones
Elemento | Expresión | Descripción |
---|---|---|
añadir [] meses hasta la fecha [] | addmonthsdate (x, y) | Añade el número de meses especificado a la fecha especificada. |
añadir [] meses a indicación de fecha y hora [] | addmonthstimestamp (x, y) | Añade el número de meses especificado a la indicación de fecha y hora especificada. |
número de días entre fechas [] y [] | datediff (x, y) | Devuelve el número de días entre las dos fechas especificadas. |
fecha redonda [] utilizando el formato [] | round_date (x, y) | Redondea el valor de fecha utilizando el formato especificado. |
round time [] utilizando el formato [] | hora_redonda (x, y) | Redondea el valor de hora utilizando el formato especificado. |
indicación de fecha y hora redonda utilizando el formato [] | round_timestamp (x, y) | Redondea el valor de indicación de fecha y hora utilizando el formato especificado. |
diferencia horaria entre las horas [] y [] | timediff (x, y) | Devuelve la diferencia entre las dos veces especificadas en el número de horas, minutos y segundos. El primer valor es el valor más temprano de las dos horas. El segundo valor es el valor más tardío de las dos horas. El valor devuelto es un valor de hora. |
truncar fecha [] utilizando el formato [] | trunc_date (x, y) | Trunca la fecha utilizando el formato especificado. El primer valor debe ser una variable, que debe estar enlazada a una columna de tipo de fecha, o una expresión o función que devuelve una fecha. El valor del formato debe ser un literal de serie con el formato de una serie o una variable enlazada a una columna de serie o un valor de literal de serie. |
truncar hora [] utilizando el formato [] | trunc_time (x, y) | Trunca la hora utilizando el formato especificado. El primer valor debe ser una variable, que debe estar enlazada a una columna de tipo de hora, o una expresión o función que devuelve una hora. El valor del formato debe ser un literal de serie con el formato de una serie o una variable enlazada a una columna de serie o un valor de literal de serie. |
truncar indicación de fecha y hora [] utilizando el formato [] | trunc_timestamp (x, y) | Trunca la indicación de fecha y hora utilizando el formato especificado. El primer valor debe ser una variable (que debe estar enlazada a una columna de tipo indicación de fecha y hora) o una expresión o función que devuelva una indicación de fecha y hora. El valor del formato debe ser un literal de serie con el formato de una serie o una variable enlazada a una columna de serie o un valor de literal de serie. |
Tema general
Puede combinar elementos generales con comprobaciones, operaciones y elementos matemáticos, de serie y de fecha y hora.
Elemento | Expresión | Descripción |
---|---|---|
clases de datos coincidentes por [] | dataclassesof (x) | Busca clases de datos en los datos que coinciden con la clase de datos especificada. Este valor suele ser una variable que está enlazada a una columna con valores para clasificar. |
frecuencia de [] | apariciones (x) | Busca la frecuencia del valor especificado. |
búsqueda [] de clave de referencia [] y valor de referencia [] | búsqueda (x, y, z) | Sustituye un valor por su valor correspondiente en una tabla de búsqueda. Para ejecutar esta función, debe tener una tabla de búsqueda que contenga una lista de valores con una columna correspondiente que contenga los datos relacionados con la primera columna. Por ejemplo, si el valor original que está buscando está incluido en una columna que contiene claves, por ejemplo códigos de producto, la tabla de búsqueda relacionada contiene una columna que lista todos los valores de clave posibles, y otra columna que contiene los valores correspondientes que se utilizan como sustitución de las claves. Esta función se utiliza generalmente en sistemas en los que se utilizan códigos internos para representar valores que se producen en distintos lugares de los orígenes de datos. Nota: El primer parámetro de la función es el valor que se debe buscar. El segundo parámetro debe estar enlazado con la columna de referencia que contiene las claves en la tabla de búsqueda. El tercer parámetro debe estar enlazado con la columna de referencia que contiene los valores en la tabla de búsqueda. Ambas columnas de referencia deben estar en la misma tabla física. El resultado de la función es el valor de la tabla de búsqueda correspondiente a la clave proporcionada como primer parámetro. |
número de valores [] que no son nulos agrupados por [] | count_not_null (x, y) | Busca el número de valores nulos (no distintos) en una columna. El primer valor debe contener una variable enlazada a una columna para el recuento. El segundo valor especifica una columna de agrupación opcional. Si se especifica, las funciones devuelven el recuento de valores nulos de la primera columna para todas las filas en las que los valores de la segunda columna son iguales. |
número de valores distintos de [] agrupados por [] | recuento (x, y) | Busca el número de valores distintos en una columna. El primer valor debe contener una variable enlazada a una columna para el recuento. El segundo valor especifica una columna de agrupación opcional. Si se especifica, las funciones devuelven el recuento de valores diferenciados de la primera columna para todas las filas en las que los valores de la segunda columna son iguales. |
sustituir el valor que falta para [] por [] | Fusión (x, y) | Busca columnas nulas en el primer valor y lo sustituye por el segundo valor. Si el primer valor que especifica no es nulo, el valor no se sustituye. |
Matemático
Puede combinar elementos matemáticos con la lógica de comprobaciones.
Elemento | Expresión | Descripción |
---|---|---|
valor absoluto de [] | abs (x) | Devuelve el valor absoluto de un valor numérico que especifique. Por ejemplo, el valor absoluto de [-13] devuelve 13. |
valor medio de [] agrupado por [] | avg (x, y) | Función agregada que devuelve el valor promedio de la columna numérica especificada, agrupada por el valor especificado. |
valor exponencial de [] | exp (x) | Devuelve el valor exponencial del valor numérico especificado. |
valor máximo de [] agrupado por [] | max (x, y) | Función de agregación que devuelve el valor máximo que se encuentra en la columna numérica especificada, agrupada por el valor especificado. Parar el primer valor, puede especificar una columna o una variable, que debe estar enlazada a una columna cuando se utiliza la regla, o una expresión que contiene al menos una variable. |
valor mínimo de [] agrupado por [] | min (x, y) | Función de agregación que devuelve el valor mínimo que se encuentra en la columna numérica especificada, agrupada por el valor especificado. |
normalizar valor [] agrupado por [] | tipificar (x, y) | Normaliza los valores de una columna en el número de desviaciones estándar del valor alrededor del valor medio de la columna. El valor normalizado se calcula como = (value-mean)/stddev. Si especifica un valor para agrupado por, la media/desviación estándar que se utiliza no es la de toda la columna, sino la de todos los valores que tienen el mismo valor en el grupo por columna. Por ejemplo, si una columna tiene un valor medio de 10 y una desviación estándar de 2, el valor normalizado de 12 es 1.0 (=media + 1stddev). El valor normalizado de 6 es -2.0 (=mean-2stddev). |
número de ronda [] manteniendo [] decimales | round (x, y) | Devuelve un valor redondeado de un número que especifique. El parámetro decimal opcional especifica el número de posiciones a la derecha del punto decimal que se ha de redondear. Si no se especifica, el valor del decimal es cero. |
escala del número [] | escala (x*) | Devuelve el número de dígitos a la derecha de la coma decimal. Por ejemplo, desea determinar la escala de 2.3456789. La escala es 7. |
raíz cuadrada de [] | sqrt (x) | Devuelve la raíz cuadrada del valor numérico especificado. |
desviación típica de [] agrupada por [] | stddev (x) | Función de agregación que calcula la desviación estándar de una columna numérica que especifique, agrupada por el valor especificado. |
suma de [] agrupada por [] | suma (x, y) | Función de agregación que devuelve la suma de todos los valores dentro de la columna numérica especificada. |
truncar número [] manteniendo [] decimales | trunc (x, y) | Devuelve un valor truncado del número especificado. El parámetro keeping es el valor que se va a truncar. El parámetro decimal opcional especifica el número de posiciones a la derecha del punto decimal que se ha de truncar. Si no se especifica, el valor del valor decimal es cero. |
Serie
Puede combinar elementos de serie con lógica de comprobaciones.
Identidades
Elemento | Expresión | Descripción |
---|---|---|
Código ASCII de carácter [] | ascii (x) | Devuelve el valor del conjunto de caracteres ASCII para un valor de carácter. |
con el código ASCII [] | char (x) | Devuelve el valor de carácter para el carácter ASCII especificado. |
concatenar [] veces la serie [] | str (x, y) | Genera una serie que concatena el valor especificado el número de veces especificado. Por ejemplo, si especifica concatenate [5] times the string [AB] , la regla de calidad de datos devuelve ABABABABAB. |
longitud de [] | len (x) | Devuelve el número total de caracteres (es decir, la longitud) de la serie especificada. |
analizar [] como un número | val (x) | Toma una serie como entrada e intenta analizarla como un número. Por ejemplo, si especifica 12.34, el resultado es el número 12.34. |
posición de [] en serie [] | índice (x, y) | Devuelve el índice de la primera aparición de una subserie en otra serie. Devuelve el índice basado en cero de la aparición, si se ha encontrado, o -1 si no se ha encontrado la subserie. |
Modificaciones
Elemento | Expresión | Descripción |
---|---|---|
convertir [] a serie utilizando el formato [] | tostring (x, y) | Convierte el valor especificado en una serie en el formato especificado. |
primeros [] caracteres de [] | izquierda (x, y) | Devuelve los primeros n caracteres de la serie especificada, donde n es el número de caracteres a devolver. |
últimos [] caracteres de [] | derecha (x, y) | Devuelve los últimos n caracteres de la serie especificada, donde n es el número de caracteres a devolver. |
minúsculas de [] | lcase (x) | Convierte todos los caracteres de la serie especificada en minúsculas. |
subserie de [] que empieza en la posición [] y de longitud [] | subserie (x, y, z) | Devuelve una subserie de la serie especificada, empezando por la posición especificada y de la longitud especificada. El valor que especifique para la posición inicial es el índice del primer carácter que se ha de recuperar (inclusivo). 1 es el índice del primer carácter de la serie. Por ejemplo, desea utilizar el valor de tres dígitos (posiciones de caracteres cuatro a seis reales) de cada código de producto para determinar qué división es responsable para el producto. |
mayúsculas de [] | ucase (x) | Convierte todos los caracteres de la serie especificada a mayúsculas. |
Relleno
Elemento | Expresión | Descripción |
---|---|---|
añadir [] espacios después de [] | rpad (x, y) | Añade el número especificado de espacios después de la serie especificada. |
añadir [] espacios antes y [] espacios después de [] | pad (x, y, z) | Añade el número especificado de espacios antes y después de la serie especificada. |
insertar [] espacios antes de [] | lpad (x, y) | Añade el número especificado de espacios al principio de la serie especificada. |
Recortar
Elemento | Expresión | Descripción |
---|---|---|
recorte izquierdo de [] | ltrim (x) | Elimina todos los espacios al principio de la serie especificada. |
recorte derecho [] | rtrim (x) | Elimina todos los espacios al final de la serie especificada. |
recorte [] | trim (x) | Elimina todos los espacios al principio y al final de la serie especificada. |
Más información
- Gestión de definiciones de calidad de datos
- Gestión de reglas de calidad de datos
- Expresiones de regla de calidad de datos de ejemplo
Tema padre: Gestión de definiciones de calidad de datos