Blocos de construção para lógica de regra ou saída de regra
Use expressões lógicas para definir a lógica de regra em uma definição de qualidade de dados ou conteúdo de coluna na tabela de saída de regras de qualidade de dados.
Essas expressões lógicas seguem uma sintaxe básica em que uma variável, como uma palavra ou termo, é avaliada com base em uma condição ou tipo de verificação especificado.
Uma expressão de regra pode consistir nos seguintes tipos de elementos:
Cada expressão de regra é feita de pelo menos uma verificação e pode combinar vários cheques. Além disso, verifique as fornecidas amostras para ver como você pode usar as expressões.
Variáveis e literais
Variáveis e literais são elementos que você combina com verificações, operações e elementos gerais, de data ou de tempo, matemáticos e string. Você liga variáveis lógicas a fontes de dados físicas quando cria uma regra a partir da definição de qualidade de dados. É possível selecionar os seguintes tipos:
| Elemento | Descrição |
|---|---|
var |
Uma variável lógica. Os nomes de variáveis não são sensíveis ao caso. Var1 e var1 referem-se à mesma variável. Os nomes podem conter os seguintes caracteres:• caracteres alfabéticos • caracteres Unicode que pertencem à categoria Carta • Numéricos numéricos • Entenda (_) • Marca de interrogação (?) • Dollar sign ($) O primeiro caractere de um nome de variável deve ser um caractere alfabético. Nomes não podem conter pontos e espaços. |
0.123 |
Um valor numérico. |
'value' |
Um caractere ou cadeia de caracteres e números que devem ser fechados em aspas simples. Se a string contém uma única marca de cotação, preceda a marca de aspas simples com uma barra inversa. Se a sequência contiver uma barra invertida, preceda a barra invertida com outra barra invertida. |
null |
Verifica valores nulos. |
{value1,value2} |
Uma lista de valores separados por vírgulas. |
Lógica
Combine blocos lógicos com lógica de cheques. A lógica básica é uma verificação única, como field1 exists. Você pode expandir essa lógica adicionando condições e juntando-as usando operadoras. Você pode enfechar partes da expressão entre parênteses para especificar prioridade. marital_status='married' and (age<18 or age>100) é diferente de (marital_status='married' and age<18) or age>100
| Elemento de bloco | Expressão | Descrição |
|---|---|---|
| Não [] | não lógica | Negates a expressão:not (ucase(PrimaryName) contains 'TEST') |
| [] Ou [] | logic1 ou logic2 | Ou logic1 ou logic2 deve ser verdadeiro:UnhandledNameData not exists OR len(trim(UnhandledNameData)) = 0 |
| [] E [] | logic1 e logic2 | Ambos logic1 e logic2 devem ser verdadeiros:IF Field1 exists AND len(trim(Field1)) <> 0 THEN Field1 is_numeric |
| Se [] Então [] | se check1 então check2 | Expressão condicional:IF NamePrefix exists THEN len(trim(NamePrefix)) > 1 |
| Se [] Então [] Else [] | se check1 então check2 else check2 | Expressão condicional com caminho alternativo:if age >= 18 then credit_card exists else (not credit_card exists) |
Verificações
Especificar verificações para várias condições: comparação lógica, correspondência, ocorrência. Uma verificação é uma parte da expressão que avalia para um resultado booleano.
Comparações lógicas
| Elemento de bloco | Expressão | Descrição |
|---|---|---|
| [ ] < [ ] | x < y | Verifica se o primeiro valor é menor que o segundo valor. |
| [ ] <= [ ] | x < = y | Verifica se o primeiro valor é menor ou igual ao segundo valor. |
| [ ] <> [ ] | x <> y | Verifica se o primeiro valor não é igual ao segundo valor. |
| [ ] = [ ] | x = y | Verifica se o primeiro valor é igual ao segundo valor. Para comparação booleana, use 0 ou 1 como o segundo valor. |
| [ ] > [ ] | x > y | Verifica se o primeiro valor é maior que o segundo valor. |
| [ ] >= [ ] | x > = y | Verifica se o primeiro valor é maior ou igual ao segundo valor. |
Os dados de origem e os dados de referência devem ter tipos de dados compatíveis. Você pode usar uma expressão que é formada por funções escalares, operações aritméticas e variáveis como dados de origem. A expressão deve avaliar a um tipo de dados de caracteres ou string.
Para dados string, as comparações lógicas são sensíveis à caixa e ignoram todos os espaços da trilha no valor que você está verificando. Os espaços no início dos valores a serem verificados não são ignorados. Espaços ou caracteres adicionais ou diferenças entre valores maiúsores e minúsores podem impedir uma validação bem-sucedida. Você pode usar trimming e modificações para padronizar os valores.
Correspondência
| Elemento de bloco | Expressão | Descrição |
|---|---|---|
| [] contém substring [] | x contém y | Verifica se o primeiro valor contém a substring que você especifica. Notas: • A verificação de contenção é case-sensitive. • Ambos os dados de origem e referência devem ser strings. • As aspas são necessárias se a string for um literal codificado. • Ambos os dados de origem e referência podem ser uma variável ou o resultado de uma função escalar. • Você pode usar uma expressão que é formada por funções escalares, operações aritméticas e variáveis como dados de origem. Se você fizer isso, certifique-se de que o resultado da avaliação de cada expressão tenha um tipo de dados de caractere ou sequência. |
| [] existe | x existe | Verifica se o valor existe. |
| [] existe em coluna de referência [] | x in_reference_coluna y | Verifica se o primeiro valor existe na coluna de referência especificada. Os dados de origem e de referência devem ter tipos de dados compatíveis. |
| [] é uma data usando o formato [] | x is_date y | Verifica se o primeiro valor é uma data no formato especificado. Veja formatos de data permitidos. Os dados de origem devem ser de um tipo de dados de caractere. Se você configurar a expressão manualmente, enfecte o formato em aspas simples. |
| [] está em uma lista de referência [] | x in_reference_list y | Verifica se o primeiro valor está na lista de referência especificada. Os dados de origem e de referência devem ter tipos de dados compatíveis. |
| [] é numérico | x is_numérico | Verifica se o valor é um valor numérico. Esta verificação aceita números ou números não formatados que são formatados de forma específica locale, como "100,000.00." Por padrão, o código de idioma atual é usado. |
| [] corresponde a classe de dados [] | x matches_dataclass y | Verifica se o primeiro valor corresponde à classe de dados identificada pelo código de classe que você especificou como o segundo valor. Para localizar o código de classe de uma classe de dados específica, use a API IBM Knowledge Catalog GET /v3/data_classes/{artifact_id}/versions/{version_id}. Você pode encontrar os IDs do artefato e da versão para a chamada no URL da classe de dados. O código de classe está na seção entity da resposta. Você pode usar este cheque apenas com classes de dados baseadas em valor. Tais classes de dados mostram Valor como o escopo de código na seção Data matching na guia Visão Geral . Você também pode verificar as informações do escopo em Detalhes das classes de dados Predefinidas. |
| [] formato de correspondências [] | x matches_format y | Verifica se o primeiro valor corresponde ao formato especificado. O padrão define explicitamente o que é aceitável em cada posição de caráter específico. Você pode usar os seguintes operadores para construir o padrão: • 'A' para qualquer letra maiúscula • 'a' para qualquer letra minúscula • '9' para qualquer valor de 0-9 bits • 'para qualquer valor alfanumérico, independente de seu caso •' I ' para um ideógrafo CJKV (chinês, japonês, coreano ou vietnamita), conforme definido pelo Unicode Standard Qualquer outro caractere na string padrão indica que você está procurando explicitamente o caractere exato digitado. Os dados de origem devem ser de um tipo de dados de caracteres. |
| [] corresponde a regex [] | x matches_regex y | Verifica se o primeiro valor corresponde ao padrão especificado pela expressão regular. A Biblioteca de Expressão Regular Perl é utilizada para esses tipos de avaliações. |
Ocorrências
| Elemento | Expressão | Descrição |
|---|---|---|
| [] é único | x exclusivo | Verifica se o valor é exclusivo na coluna. |
| [] ocorre [] tempo (s) | x ocorre y | Verifica se o primeiro valor ocorre na coluna o número especificado de vezes. |
| [] ocorre pelo menos [] tempo (s) | x ocorrências> = y | Verifica se o primeiro valor ocorre na coluna pelo menos o número especificado de vezes. |
| [] ocorre no máximo [] tempo (s) | x ocorre < = y | Verifica se o primeiro valor ocorre na coluna no máximo o número especificado de vezes. |
| [] ocorre menor do que [] tempo (s) | x ocorre < y | Verifica se o primeiro valor ocorre na coluna menor do que o número especificado de vezes. |
| [] ocorre mais do que [] tempo (s) | x ocorre> y | Verifica se o primeiro valor ocorre na coluna mais do que o número especificado de vezes. |
Essas verificações implicam o cálculo de agregações nas colunas de origem. Tais operações podem ser executadas muito mais tempo do que as verificações que testada apenas registros únicos.
Operações
Combine elementos de operação com lógica de cheques. Você usa variáveis e literais, elementos gerais, data e hora, elementos matemáticos e string com elementos de operação.
| Elemento | Descrição |
|---|---|
| x + y | Acrescenta o primeiro valor para o segundo valor. |
| x - y | Subtrai o segundo valor a partir do primeiro valor. |
| x * y | Multiplica os valores especificados. |
| x / y | Divide os valores especificados. |
| x % y | Usa o primeiro número como um dividendo e o segundo número como divisor. O modulo é o restante da divisão do primeiro número pelo segundo número. Por exemplo, 7 % 2 computa para 1. |
| x ^ y | O valor exponencial de um número. Por exemplo, 5 ^ 3 está aumentando 5 para a terceira energia (ou 555), que é igual a 125. |
Data e hora
É possível combinar elementos de data e hora com lógica de cheques.
Formatos de data válidos
| Sem delimitador | Delimitador de hífen | Delimitador de barra | Delimitador de ponto |
|---|---|---|---|
| %yyyy%mm %d d | %yyyy-%mm-%dd | %yyyy/%mm/ %d d | %yyyy. %mm.%dd |
| %yy%mm %d d | %yy-%mm-%dd | %yy/%mm/ %d d | %yy. %mm.%dd |
| %mm %d d%yyyy | %mm-%dd-%yyyy | %mm/%dd / %yyyy | %mm.%dd. %yyyyy |
| %mm %d d%yy | %mm-%dd-%yy | %mm/%dd / %yy | %mm.%dd. %yy |
| %yyyy %d d%mm | %yyyy-%dd-%mm | %yyyy/%dd / %mm | %yyyy.%dd. %mm |
| %yy %d d%mm | %yy-%dd-%mm | %yy/%dd / %mm | %yy.%dd. %mm |
| %dd%m%yyyyy | %dd-%mm-%yyyyy | %dd / %mm/%yyyyy | %dd. %mm. %yyyyy |
| %dd%m%yy | %dd-%mm-%yy | %dd / %mm/%yy | %dd. %mm. %yy |
Conversões
| Elemento | Expressão | Descrição |
|---|---|---|
| converter [] do formato [] para outro formato [] | convertdate (x, y, z) | Converte o primeiro valor a partir do formato de origem especificado para o formato de destino especificado. |
| converter [] para a data gregoriana | julianDayToGregorian(x) | Converte a data especificada no formato Juliano para o formato gregoriano. |
| converter [] para o formato de Julian | gregorianToJulianDay(x) | Converte a data especificada no formato gregoriano para o formato Juliano. |
| converter [] até a data usando o formato [] | datevalue (x,y) | Converte o primeiro valor para uma data com o formato especificado. |
| converter [] para o tempo usando o formato [] | valor de tempo (x,y) | Converte o primeiro valor para um tempo com o formato especificado. |
| converter [] para timestamp usando formato [] | valor de registro de data e hora (x,y) | Converte o primeiro valor para um timestamp usando o formato especificado. |
Formatação
| Elemento | Expressão | Descrição |
|---|---|---|
| data atual | data () | Retorna a data do sistema a partir do computador como um valor de data. |
| horário atual | tempo () | Retorna a horário do sistema do computador como um valor de horário. |
| Registro de data e hora atual | timestamp () | Retorna o tempo do sistema a partir do computador como um valor timestamp. |
| ano de data [] | ano (x) | Retorna um número que representa o ano para a data especificada. |
| mês de data [] | mês (x) | Retorna um número que representa o mês para a data especificada. |
| dia da data [] | dia (x) | Retorna um número que representa o dia do mês para a data especificada. |
| dia da semana para a data [] | dia de semana (x) | Retorna um número que representa o dia da semana para a data especificada, onde 1 é domingo. |
| hora do tempo [] | horas (x) | Retorna um número que representa as horas para o valor de tempo especificado. |
| minutos de tempo [] | minutos (x) | Retorna um número que representa os minutos para o valor de tempo especificado. |
| segundos do tempo [] | segundos (x) | Retorna um número que representa os segundos e milissegundos para o valor de tempo especificado. |
Funções
| Elemento | Expressão | Descrição |
|---|---|---|
| add [] meses até a data [] | addmonthsdate (x, y) | Inclui o número especificado de meses até a data especificada. |
| add [] meses a timestamp [] | addmonthstimestamp (x, y) | Inclui o número especificado de meses até o timestamp especificado. |
| número de dias entre as datas [] e [] | datediff (x, y) | Retorna o número de dias entre as duas datas especificadas. |
| data redonda [] usando o formato [] | round_date (x, y) | Rode o valor da data usando o formato especificado. |
| tempo redondo [] usando formato [] | round_time (x, y) | Rode o valor de tempo usando o formato especificado. |
| timestamp redondo usando o formato [] | round_timestamp (x, y) | Rode o valor do timestamp usando o formato especificado. |
| diferença de tempo entre os tempos [] e [] | timediff (x, y) | Retorna a diferença entre os dois horários especificados no número de horas, minutos e segundos. O primeiro valor é o mais antigo dos dois horários. O segundo valor é o mais recente dos dois horários. O valor retornado é um valor de horário. |
| data do truncate [] usando o formato [] | trunc_date (x, y) | Truncava a data usando o formato especificado. O primeiro valor deve ser uma variável (que deve estar vinculada a uma coluna do tipo data) ou uma expressão ou função que retorna uma data. O valor de formato deve ser uma sequência literal com o formato de uma sequência ou uma variável que esteja vinculada a uma coluna de sequência ou um valor literal de sequência. |
| tempo de truncate [] usando o formato [] | trunc_time (x, y) | Truncava o tempo usando o formato especificado. O primeiro valor deve ser uma variável (que deve estar vinculada a uma coluna de tipo horário) ou uma expressão ou função que retorna um horário. O valor de formato deve ser uma sequência literal com o formato de uma sequência ou uma variável que esteja vinculada a uma coluna de sequência ou um valor literal de sequência. |
| timestamp truncate [] usando formato [] | trunc_timestamp (x, y) | Truncava o timestamp usando o formato especificado. O primeiro valor deve ser uma variável (que deve estar ligada a uma coluna do tipo timestamp), ou uma expressão ou função que retorna um timestamp. O valor de formato deve ser uma sequência literal com o formato de uma sequência ou uma variável que esteja vinculada a uma coluna de sequência ou um valor literal de sequência. |
Geral
É possível combinar elementos gerais com verificações, operações e elementos matemáticos, string e data e hora.
| Elemento | Expressão | Descrição |
|---|---|---|
| classes de dados correspondidas por [] | dataclassesof (x) | Encontra classes de dados em seus dados que combinam com a classe de dados especificada. Esse valor geralmente é uma variável que é ligada a uma coluna com valores a serem classificados. |
| frequência de [] | ocorrências (x) | Encontra a frequência do valor especificado. |
| lookup [] da chave de referência [] e valor de referência [] | lookup (x, y, z) | Substitui um valor pelo seu valor correspondente em uma tabela de consulta. Para executar essa função, é necessário ter uma tabela de consulta
que contém uma lista dos valores com uma coluna correspondente que contém dados que estão relacionados à
primeira coluna. Por exemplo, se o valor original que você está procurando está contido em uma coluna
que contém chaves, como códigos do produto, a tabela de consulta relacionada contém uma coluna que
lista todos os valores da chave possíveis e outra coluna que contém os valores correspondentes a serem
usados como uma substituição para as chaves. Essa função geralmente é usada em sistemas em que os códigos internos são usados para representar valores que ocorrem em diferentes lugares em suas fontes de dados. Nota: O primeiro parâmetro da função é o valor a consultar. O segundo parâmetro deve estar vinculado à coluna de referência que contém as chaves na tabela de consulta. O terceiro parâmetro deve estar vinculado à coluna de referência que contém os valores na tabela de consulta. Ambas as colunas de referência devem estar na mesma tabela física. O resultado da função é o valor da tabela de consulta correspondente à chave fornecida como primeiro parâmetro. |
| número de [] valores que não são nulos agrupados por [] | count_not_null (x, y) | Localiza o número de valores nulos (não distintos) em uma coluna. O primeiro valor deve conter uma variável que esteja vinculada a uma coluna para contagem. O segundo valor especifica uma coluna de agrupamento opcional. Se especificado, as funções retornam a contagem dos valores nulos na primeira coluna para todas as linhas em que os valores da segunda coluna são iguais. |
| número de valores distintos de [] agrupados por [] | contagem (x, y) | Encontra o número de valores distintos em uma coluna. O primeiro valor deve conter uma variável que esteja vinculada a uma coluna para contagem. O segundo valor especifica uma coluna de agrupamento opcional. Se especificado, as funções retornam a contagem dos valores distintos na primeira coluna para todas as linhas em que os valores da segunda coluna são os mesmos. |
| substituir valor ausente para [] com [] | coalesce (x, y) | Procura colunas nulas no primeiro valor e substitui-a pelo segundo valor. Se o primeiro valor que você especificar não for nulo, o valor não será substituído. |
Matemático
É possível combinar elementos matemáticos com lógica de cheques.
| Elemento | Expressão | Descrição |
|---|---|---|
| valor absoluto de [] | abs (x) | Retorna o valor absoluto de um valor numérico que você especificar. Por exemplo, o valor absoluto de [-13] retornaria 13. |
| valor médio de [] agrupados por [] | avg (x, y) | Uma função agregada que retorna o valor médio da coluna numérica especificada, agrupada pelo valor especificado. |
| valor exponencial de [] | exp (x) | Retorna o valor exponencial do valor numérico especificado. |
| valor máximo de [] agrupados por [] | max (x, y) | Uma função agregada que retorna o valor máximo que é encontrado na coluna numérica especificada, agrupada pelo valor especificado. Para o primeiro valor, é possível especificar uma coluna ou uma variável (que deve ser vinculada a uma coluna ao usar a regra) ou uma expressão que contém pelo menos uma variável. |
| valor mínimo de [] agrupados por [] | min (x, y) | Uma função agregada que retorna o valor mínimo que é encontrado na coluna numérica especificada, agrupada pelo valor especificado. |
| normalizar valor [] agrupado por [] | padronizar (x, y) | Normaliza os valores em uma coluna no número de desvios-padrão do valor em torno do valor médio da coluna. O valor normalizado é calculado como = (valor-média)/stddev. Se você especificar um valor para agrupado por, o desvio médio / padrão que é usado não é o de toda a coluna, mas sim o de todos os valores que possuem o mesmo valor no grupo por coluna. Por exemplo, se uma coluna tiver um valor médio de 10 e um desvio padrão de 2, o valor normalizado de 12 será 1.0 (=mean + 1stddev). O valor normalizado de 6 é -2.0 (=signi-2stddev). |
| número redondo [] mantendo [] decimals | round (x, y) | Retorna um valor arredondado de um número que você especificar. O parâmetro decimal opcional especifica o número de casas à direita do separador decimal para arredondamento. Se não for especificado, o valor de decimal será zero. |
| escala de número [] | escala (x*) | Retorna o número de algaros à direita do ponto decimal. Por exemplo, você deseja determinar a escala de 2,3456789. A escala é 7. |
| raiz quadrada de [] | sqrt (x) | Retorna a raiz quadrada do valor numérico especificado. |
| desvio-padrão de [] agrupados por [] | stddev (x) | Uma função agregada que computa o desvio-padrão de uma coluna numérica que você especifica, agrupada pelo valor especificado. |
| soma de [] agrupados por [] | soma (x, y) | Uma função agregada que retorna a soma de todos os valores dentro da coluna numérica especificada. |
| número de truncate [] mantendo [] decimais | trunc (x, y) | Retorna um valor truncado do número especificado. O parâmetro keeping é o valor a ser truncado. O parâmetro decimal opcional especifica o número de casas à direita do separador decimal para truncamento. Se não for especificado, o valor decimal será zero. |
Sequência
É possível combinar elementos string com lógica de cheques.
Identidades
| Elemento | Expressão | Descrição |
|---|---|---|
| Código de caracteres ASCII [] | ascii (x) | Retorna o valor do conjunto de caracteres ASCII para um valor de caractere. |
| caractere com código ASCII [] | char (x) | Retorna o valor de caracteres para o caractere ASCII especificado. |
| concatenar [] vezes a sequência [] | str (x, y) | Gera uma string que concatena o valor especificado o número especificado de vezes. Por exemplo, se você especificar concatenate [5] times the string [AB], a regra de qualidade de dados retorna ABABABABAB. |
| comprimento de [] | len (x) | Retorna o número total de caracteres (isto é, o comprimento) na cadeia especificada. |
| parse [] como um número | val (x) | Leva uma string como uma entrada e tenta analisá-la como um número. Por exemplo, se você especificar 12,34, o resultado será o número 12,34. |
| posição de [] na string [] | index (x, y) | Retorna o índice da primeira ocorrência de uma substring em outra string. Retorna o índice baseado em zero da ocorrência, se localizado, ou -1 se a subsequência não for localizada. |
Modificações
| Elemento | Expressão | Descrição |
|---|---|---|
| converter [] para string usando o formato [] | tostrando (x, y) | Converte o valor especificado para uma string no formato especificado. |
| primeiros [] caracteres de [] | esquerda (x, y) | Retorna os primeiros n caracteres da string especificada, onde n é o número de caracteres a retornar. |
| últimos [] caracteres de [] | direita (x, y) | Retorna os últimos caracteres n da string especificada, onde n é o número de caracteres a retornar. |
| minúslodo de [] | lcase (x) | Converte todos os caracteres na string especificada para minúsção. |
| substring de [] começando na posição [] e de comprimento [] | substring (x, y, z) | Retorna uma substring da string especificada, começando na posição especificada, e do comprimento especificado. O valor que você especifica para a posição inicial é o índice do primeiro caractere a ser recuperado (inclusive). 1 é o índice do primeiro caractere na sequência. Por exemplo, você deseja usar o valor de três dígitos (posições reais do caractere de quatro a seis) a partir de cada código do produto para determinar qual divisão é responsável pelo produto. |
| uppercase de [] | ucaso (x) | Converte todos os caracteres na string especificada para maiúsestoes. |
Padding
| Elemento | Expressão | Descrição |
|---|---|---|
| adicionar [] espaços após [] | rpad (x, y) | Adicio o número especificado de espaços após a sequência especificada. |
| adicionar [] espaços antes e [] espaços após [] | pad (x, y, z) | Adicio o número especificado de espaços antes e depois da string especificada. |
| inserir [] espaços antes de [] | lpad (x, y) | Inclui o número especificado de espaços até o início da string especificada. |
Corte
| Elemento | Expressão | Descrição |
|---|---|---|
| trim esquerdo de [] | ltrim (x) | Remove todos os espaços no início da string especificada. |
| trim direito [] | rtrim (x) | Remove todos os espaços no final da sequência especificada. |
| trim [] | trim (x) | Remove todos os espaços no início e no final da string especificada. |