Utilizzare le espressioni logiche per definire la logica della regola in una definizione della qualità dei dati o nel contenuto della colonna nella tabella di output delle regole di qualità dei dati.
Queste espressioni logiche seguono una sintassi di base in cui una variabile, come una parola o un termine, viene valutata in base a una condizione specificata o a un tipo di controllo.
Un'espressione della regola può essere composta dai seguenti tipi di elementi:
Ogni espressione di regola è composta da almeno un controllo e può combinare vari controlli. Inoltre, controllare i esempi forniti per vedere come è possibile utilizzare le espressioni.
Variabili e valori letterali
Le variabili e i valori letterali sono elementi che si combinano con i controlli, le operazioni e gli elementi generali, data o ora, matematici e stringa. Le variabili logiche vengono collegate alle origini dati fisiche quando si crea una regola dalla definizione di qualità dei dati. È possibile selezionare i seguenti tipi:
Elemento | Descrizione |
---|---|
var |
Una variabile logica. I nomi delle variabili non sono sensibili al maiuscolo / minuscolo. Var1 e var1 fanno riferimento alla stessa variabile. I nomi possono contenere i seguenti caratteri:Caratteri alfabetici caratteri Unicode che appartengono alla categoria Lettera Caratteri numerici Sottolineatura (_) Punto interrogativo (?) Dollaro ($) Il primo carattere di un nome di variabile deve essere un carattere alfabetico. I nomi non possono contenere punti e spazi. |
0.123 |
Un valore numerico. |
'value' |
Un carattere o una stringa di caratteri e numeri che devono essere racchiusi tra virgolette singole. Se la stringa contiene una virgoletta singola, anteporre alla virgoletta singola una barra rovesciata. Se la stringa contiene una barra retroversa, anteporre alla barra retroversa un'altra barra retroversa. |
null |
Verifica la presenza di valori null. |
{value1,value2} |
Un elenco di valori separati da virgole. |
Logica
Combina i blocchi logici con la logica di controllo. La logica di base è un singolo controllo, ad esempio field1 exists
. È possibile espandere questa logica aggiungendo condizioni e unendole utilizzando gli operatori. È possibile racchiudere parti dell'espressione tra parentesi per specificare la priorità. marital_status='married' and (age<18 or age>100)
è diverso da (marital_status='married' and age<18) or age>100
Elemento blocco | Espressione | Descrizione |
---|---|---|
Non [] | non logica | Nega l'espressione:not (ucase(PrimaryName) contains 'TEST') |
[] O [] | logic1 o logic2 | logic1 o logic2 devono essere true:UnhandledNameData not exists OR len(trim(UnhandledNameData)) = 0 |
[] E [] | logic1 e logic2 | Sia logic1 che logic2 devono essere true:IF Field1 exists AND len(trim(Field1)) <> 0 THEN Field1 is_numeric |
Se [] Allora [] | se check1 check2 | Espressione condizionale:IF NamePrefix exists THEN len(trim(NamePrefix)) > 1 |
Se [] Allora [] Else [] | se check1 check2 else check2 | Espressione condizionale con percorso alternativo:if age >= 18 then credit_card exists else (not credit_card exists) |
Controlli
Specificare i controlli per le varie condizioni: confronto logico, corrispondenza, ricorrenza. Una verifica fa parte dell'espressione che valuta un risultato booleano.
Confronti logici
Elemento blocco | Espressione | Descrizione |
---|---|---|
[ ] < [ ] | x < a | Verifica se il primo valore è inferiore al secondo valore. |
[ ] <= [ ] | x < = a | Verifica se il primo valore è minore o uguale al secondo valore. |
[ ] <> [ ] | x <> a | Verifica se il primo valore non è uguale al secondo valore. |
[ ] = [ ] | x = s | Verifica se il primo valore è uguale al secondo valore. Per il confronto booleano, utilizzare 0 o 1 come secondo valore. |
[ ] > [ ] | x > s | Verifica se il primo valore è maggiore del secondo. |
[ ] >= [ ] | x > = s | Verifica se il primo valore è maggiore o uguale al secondo valore. |
I dati di origine e di riferimento devono avere tipi di dati compatibili. È possibile utilizzare un'espressione composta da funzioni scalari, operazioni aritmetiche e variabili come dati origine. L'espressione deve essere un tipo di dati carattere o stringa.
Per i dati stringa, i confronti logici sono sensibili al maiuscolo / minuscolo e ignorano tutti gli spazi finali nel valore che si sta controllando. Gli spazi all'inizio dei valori da controllare non vengono ignorati. Ulteriori spazi o caratteri o differenze tra i valori maiuscoli e minuscoli potrebbero impedire una convalida corretta. È possibile utilizzare ritaglio e modifiche per standardizzare i valori.
Corrispondenza
Elemento blocco | Espressione | Descrizione |
---|---|---|
[] contiene sottostringa [] | x contiene y | Verifica se il primo valore contiene la sottostringa specificata. Note: il controllo del contenuto è sensibile al maiuscolo / minuscolo. I dati di origine e di riferimento devono essere stringhe. Le virgolette sono richieste se la stringa è un letterale codificato. I dati di origine e di riferimento possono essere una variabile o il risultato di una funzione scalare. È possibile utilizzare un'espressione composta da funzioni scalari, operazioni aritmetiche e variabili come dati origine. In questo caso, assicurarsi che ogni espressione venga valutata come un tipo di dati carattere o stringa. |
[] esiste | x esiste | Verifica se il valore esiste. |
[] esiste nella colonna di riferimento [] | x in_reference_column a | Verifica se il primo valore esiste nella colonna di riferimento specificata. I dati di origine e riferimento devono avere tipi di dati compatibili. |
[] è una data che utilizza il formato [] | x is_date a | Verifica se il primo valore è una data nel formato specificato. Vedere formati di data consentiti. Se si configura l'espressione manualmente, racchiudere il formato tra virgolette singole. |
[] è in un elenco di riferimento [] | x in_reference_list s | Verifica se il primo valore si trova nell'elenco di riferimento specificato. I dati di origine e riferimento devono avere tipi di dati compatibili. |
[] è numerico | x is_numeric | Verifica se il valore è un valore numerico. Questo controllo accetta numeri non formattati o numeri formattati in un modo specifico della locale, ad esempio "100,000.00." Per impostazione predefinita, viene utilizzata la locale corrente. |
[] corrisponde alla classe dati [] | x matches_dataclass a | Controlla se il primo valore corrisponde alla classe di dati identificata dal codice della classe specificato come secondo valore. Per trovare il codice della classe per una classe di dati specifica, utilizzare l' API IBM Knowledge Catalog GET /v3/data_classes/{artifact_id}/versions/{version_id} . Gli ID dell'artefatto e della versione per la chiamata si trovano nell' URL della classe di dati. Il codice classe si trova nella sezione entity della risposta. È possibile utilizzare questo controllo solo con classi di dati basate sul valore. Tali classi di dati mostrano Valore come ambito del codice nella sezione Corrispondenza dati nella scheda Panoramica . È anche possibile controllare le informazioni sull'ambito in Dettagli classi dati predefinite. |
[] corrisponde al formato [] | x formato_corrispondenza y | Controlla se il primo valore corrisponde al formato specificato. Il modello definisce esplicitamente ciò che è accettabile in ciascuna posizione di carattere specifica. È possibile utilizzare i seguenti operatori per creare il pattern: 'A' per qualsiasi lettera maiuscola 'a' per qualsiasi lettera minuscola '9' per qualsiasi cifra 0-9 'x' per qualsiasi valore alfanumerico, indipendentemente dal suo carattere 'I' per un ideografo CJKV (cinese, giapponese, coreano o vietnamita), come definito dallo standard Unicode Qualsiasi altro carattere nella stringa del pattern indica che si sta cercando esplicitamente il carattere esatto immesso. I dati di origine devono essere di un tipo di dati carattere. |
[] corrisponde a regex [] | x rege_corrispondenti_regex s | Verifica se il primo valore corrisponde al pattern specificato dall'espressione regolare. La libreria di espressioni regolari Perl viene utilizzata per questi tipi di valutazioni. |
Ricorrenze
Elemento | Espressione | Descrizione |
---|---|---|
[] è univoco | x univoco | Verifica se il valore è univoco nella colonna. |
[] occurs [] ora (i) | x ricorre s | Verifica se il primo valore ricorre nella colonna per il numero di volte specificato. |
[] ricorre almeno [] volte | x ricorrenze> = y | Verifica se il primo valore ricorre nella colonna almeno il numero di volte specificato. |
[] ricorre al massimo [] volte | x occurs < = a | Verifica se il primo valore ricorre nella colonna al massimo per il numero di volte specificato. |
[] ricorre meno di [] volte | x ricorre < y | Verifica se il primo valore ricorre nella colonna meno del numero di volte specificato. |
[] ricorre più di [] volte | x ricorre> s | Verifica se il primo valore ricorre nella colonna più del numero di volte specificato. |
Queste verifiche implicano il calcolo delle aggregazioni sulle colonne di origine. Tali operazioni possono essere eseguite molto più a lungo rispetto ai controlli che verificano solo singoli record.
Operazioni
Combinare gli elementi dell'operazione con la logica delle verifiche. Si utilizzano variabili e valori letterali, elementi generali, data e ora, elementi matematici e stringa con elementi di operazione.
Elemento | Descrizione |
---|---|
x + a | Aggiunge il primo valore al secondo valore. |
x - s | Sottrae il secondo valore dal primo valore. |
x * s | Moltiplica i valori specificati. |
x / s | Divide i valori specificati. |
x % y | Utilizza il primo numero come dividendo e il secondo come divisore. Il modulo è il resto della divisione del primo numero per il secondo numero. Ad esempio, 7 % 2 calcola su 1. |
x ^ a | Il valore esponenziale di un numero. Ad esempio, 5 ^ 3 sta elevando 5 alla terza potenza (o 555), che è uguale a 125. |
Data e ora
È possibile combinare elementi di data e ora con la logica dei controlli.
Formati data validi
Nessun delimitatore | Delimitatore trattini | Delimitatore barra | Delimitatore punto |
---|---|---|---|
%yyyy%mm%dg | %yyyy - %mm -%dg | %yyyy/%mm/%dg | %yyyy. %mm.%dg |
%yy%mm%dg | %yy - %mm -%dd | %yy/%mm/%dg | %aa. %mm.%dg |
%mm%dd%yyyy | %mm -%dg - %yyyy | %mm/%dg / %yyyy | %mm.%dd. %yyyy |
%mm%dd%y | %millimetro -%dd - %yy | %mm/%dg / %aa | %mm.%d. %yy |
%yyyy%dd%mm | %yyyy -%dg - %mm | %yyyy/%dg / %mm | %aaaa.%dd. %mm |
%yy%dd%mm | %yy -%dd - %mm | %aa/%dg / %mm | %yy.%dd. %mm |
%dg%mm%aaaa | %dg - %mm - %yyyy | %dg / %mm/%yyyy | %d. %mm. %yyyy |
%dd%mm%aa | %dd - %mm - %yy | %dg / %mm/%aa | %dd. %mm. %yy |
Conversioni
Elemento | Espressione | Descrizione |
---|---|---|
converti [] da formato [] in un altro formato [] | convertdate (x, y, z) | Converte il primo valore dal formato di origine specificato nel formato di destinazione specificato. |
converti [] in data gregoriano | julianDayToGregorian(x) | Converte la data specificata nel formato giuliano nel formato gregoriano. |
converti [] in formato Giuliano | gregorianToJulianDay(x) | Converte la data specificata nel formato Gregoriano nel formato Giuliano. |
converti [] in data utilizzando formato [] | datevalue (x,y) | Converte il primo valore in una data con il formato specificato. |
convertire [] in ora utilizzando il formato [] | valoretempo (x,y) | Converte il primo valore in un'ora con il formato specificato. |
convertire [] in timestamp utilizzando il formato [] | valoretestamp(x,y) | Converte il primo valore in un timestamp utilizzando il formato specificato. |
Formattazione
Elemento | Espressione | Descrizione |
---|---|---|
data corrente | date () | Restituisce la data di sistema dal computer come valore data. |
ora corrente | time () | Restituisce l'ora di sistema dal computer come valore di ora. |
data/ora corrente | timestamp () | Restituisce l'ora del sistema dal computer come valore timestamp. |
anno della data [] | anno (x) | Restituisce un numero che rappresenta l'anno per la data specificata. |
mese della data [] | mese (x) | Restituisce un numero che rappresenta il mese per la data specificata. |
giorno della data [] | giorno (x) | Restituisce un numero che rappresenta il giorno del mese per la data specificata. |
giorno della settimana per data [] | giorno della settimana (x) | Restituisce un numero che rappresenta il giorno della settimana per la data specificata, dove 1 è Domenica. |
ora di ora [] | ore (x) | Restituisce un numero che rappresenta le ore per il valore di tempo specificato. |
minuti di tempo [] | minuti (x) | Restituisce un numero che rappresenta i minuti per il valore di tempo specificato. |
secondi di tempo [] | secondi (x) | Restituisce un numero che rappresenta i secondi e i millisecondi per il valore di tempo specificato. |
Funzioni
Elemento | Espressione | Descrizione |
---|---|---|
aggiungere [] mesi alla data [] | addmonthsdate (x, y) | Aggiunge il numero di mesi specificato alla data specificata. |
aggiungere [] mesi alla data/ora [] | addmonthstimestamp (x, y) | Aggiunge il numero di mesi specificato alla data/ora specificata. |
numero di giorni tra le date [] e [] | datediff (x, y) | Restituisce il numero di giorni tra le due date specificate. |
arrotonda data [] utilizzando formato [] | round_date (x, y) | Arrotonda il valore della data utilizzando il formato specificato. |
round time [] utilizzando il formato [] | round_time (x, y) | Arrotonda il valore dell'ora utilizzando il formato specificato. |
round timestamp utilizzando il formato [] | round_timestamp (x, y) | Arrotonda il valore data / ora utilizzando il formato specificato. |
differenza di tempo tra le ore [] e [] | timediff (x, y) | Restituisce la differenza tra i due orari specificati nel numero di ore, minuti e secondi. Il primo valore è il primo delle due volte. Il secondo valore è il successivo delle due volte. Il valore restituito è un valore temporale. |
tronca data [] utilizzando il formato [] | trunc_date (x, y) | Tronca la data utilizzando il formato specificato. Il primo valore deve essere una variabile (che deve essere collegata a una colonna di tipo data) o un'espressione o funzione che restituisce una data. Il valore del formato deve essere una costante letterale stringa con il formato di una stringa o una variabile collegata a una colonna stringa o a un valore letterale stringa. |
truncate time [] using format [] | trunc_time (x, y) | Tronca l'ora utilizzando il formato specificato. Il primo valore deve essere una variabile (che deve essere collegata a una colonna di tipo ora) o un'espressione o una funzione che restituisce un'ora. Il valore del formato deve essere una costante letterale stringa con il formato di una stringa o una variabile collegata a una colonna stringa o a un valore letterale stringa. |
tronca data/ora [] utilizzando il formato [] | trunc_timestamp (x, y) | Tronca la data / ora utilizzando il formato specificato. Il primo valore deve essere una variabile (che deve essere collegata a una colonna di tipo data/ora) oppure un'espressione o una funzione che restituisce una data/ora. Il valore del formato deve essere una costante letterale stringa con il formato di una stringa o una variabile collegata a una colonna stringa o a un valore letterale stringa. |
Generale
È possibile combinare elementi generali con controlli, operazioni e elementi matematici, stringa e data e ora.
Elemento | Espressione | Descrizione |
---|---|---|
classi dati corrispondenti a [] | dataclassesof (x) | Trova le classi di dati nei dati che corrispondono alla classe di dati specificata. Questo valore è di solito una variabile associata a una colonna con valori da classificare. |
frequenza di [] | ricorrenze (x) | Trova la frequenza del valore specificato. |
lookup [] dalla chiave di riferimento [] e valore di riferimento [] | ricerca (x, y, z) | Sostituisce un valore con il valore corrispondente in una tabella di ricerca. Per eseguire questa funzione, è necessario avere una tabella di ricerca che contiene un elenco dei valori con una colonna corrispondente che contiene i dati correlati alla prima colonna. Ad esempio, se il valore originale che si sta cercando è contenuto in una colonna che contiene chiavi, ad esempio codici prodotto, la tabella di ricerca correlata contiene una colonna che elenca tutti i possibili valori chiave e un'altra colonna che contiene i corrispondenti valori da utilizzare come sostituzione per le chiavi. Questa funzione viene generalmente utilizzata nei sistemi in cui i codici interni vengono utilizzati per rappresentare i valori che si verificano in diverse posizioni nelle origini dati. Nota: il primo parametro della funzione è il valore da cercare. Il secondo parametro deve essere collegato alla colonna di riferimento che contiene le chiavi nella tabella di ricerca. Il terzo parametro deve essere collegato alla colonna di riferimento che contiene i valori nella tabella di ricerca. Entrambe le colonne di riferimento devono trovarsi nella stessa tabella fisica. Il risultato della funzione è il valore della tabella di ricerca corrispondente alla chiave fornita come primo parametro. |
numero di valori [] non null raggruppati per [] | count_not_null (x, y) | Trova il numero di valori null (non distinti) in una colonna. Il primo valore deve contenere una variabile associata a una colonna da contare. Il secondo valore specifica una colonna di raggruppamento facoltativa. Se specificato, le funzioni restituiscono il conteggio dei valori null nella prima colonna per tutte le righe in cui i valori della seconda colonna sono uguali. |
Numero di valori distinti di [] raggruppati per [] | conteggio (x, y) | Trova il numero di valori distinti in una colonna. Il primo valore deve contenere una variabile associata a una colonna da contare. Il secondo valore specifica una colonna di raggruppamento facoltativa. Se specificato, le funzioni restituiscono il conteggio dei valori distinti nella prima colonna per tutte le righe in cui i valori della seconda colonna sono uguali. |
sostituire il valore mancante per [] con [] | coalesce (x, y) | Ricerca le colonne null nel primo valore e le sostituisce con il secondo valore. Se il primo valore specificato non è null, il valore non viene sostituito. |
Matematico
È possibile combinare elementi matematici con la logica delle verifiche.
Elemento | Espressione | Descrizione |
---|---|---|
valore assoluto di [] | abs (x) | Restituisce il valore assoluto di un valore numerico specificato. Ad esempio, il valore assoluto di [ -13] restituisce 13. |
valore medio di [] raggruppato per | media (x, y) | Una funzione aggregata che restituisce il valore medio della colonna numerica specificata, raggruppata per valore specificato. |
valore esponenziale di [] | expx) | Restituisce il valore esponenziale del valore numerico specificato. |
valore massimo di [] raggruppato per [] | max (x, y) | Una funzione di aggregazione che restituisce il massimo valore trovato nella colonna numerica specificata, raggruppato per il valore specificato. Per il primo valore, è possibile specificare una colonna o una variabile (che deve essere collegata a una colonna quando si utilizza la regola) oppure un'espressione che contenga almeno una variabile. |
valore minimo di [] raggruppato per [] | min (x, y) | Una funzione aggregata che restituisce il valore minimo trovato nella colonna numerica specificata, raggruppato per valore specificato. |
normalizza valore [] raggruppato per [] | standardize (x, y) | Normalizza i valori in una colonna nel numero di deviazioni standard del valore intorno al valore medio della colonna. Il valore normalizzato viene calcolato come = (media-valore) /stddev. Se si specifica un valore per raggruppato per, la deviazione media / standard utilizzata non è quella dell'intera colonna, ma quella di tutti i valori che hanno lo stesso valore nella colonna di raggruppamento. Ad esempio, se una colonna ha un valore medio di 10 e una deviazione standard di 2, il valore normalizzato di 12 è 1.0 (=mean + 1stddev). Il valore normalizzato di 6 è -2.0 (=mese-2devstd). |
numero arrotondato [] mantenendo [] decimali | arrotondamento (x, y) | Restituisce un valore arrotondato di un numero specificato. Il parametro decimale facoltativo specifica il numero di posizioni a destra del punto decimale a cui arrotondare. Se non viene specificato, il valore decimale è zero. |
scala del numero [] | scala (x*) | Restituisce il numero di cifre alla destra della virgola decimale. Ad esempio, si desidera determinare la scala di 2.3456789. La scala è 7. |
radice quadrata di [] | sqrt (x) | Restituisce la radice quadrata del valore numerico specificato. |
deviazione standard di [] raggruppata per [] | stddev (x) | Una funzione aggregata che calcola la deviazione standard di una colonna numerica specificata, raggruppata in base al valore specificato. |
somma di [] raggruppata per [] | somma (x, y) | Una funzione aggregata che restituisce la somma di tutti i valori all'interno della colonna numerica specificata. |
tronca numero [] mantenendo [] decimali | trunc (x, y) | Restituisce un valore troncato del numero specificato. Il parametro di conservazione è il valore da troncare. Il parametro decimale facoltativo specifica il numero di posizioni a destra della virgola decimale a cui troncare. Se non viene specificato, il valore del valore decimale è zero. |
Stringa
È possibile combinare elementi stringa con la logica dei controlli.
Identità
Elemento | Espressione | Descrizione |
---|---|---|
Codice ASCII del carattere [] | ascii (x) | Restituisce il valore della serie di caratteri ASCII per un valore carattere. |
con codice ASCII [] | char (x) | Restituisce il valore carattere per il carattere ASCII specificato. |
concatenare [] volte la stringa [] | str (x, y) | Genera una stringa che concatena il valore specificato il numero di volte specificato. Ad esempio, se si specifica concatenate [5] times the string [AB] , la regola di qualità dei dati restituisce ABABABABAB. |
lunghezza di [] | len (x) | Restituisce il numero totale di caratteri (ossia, la lunghezza) nella stringa specificata. |
parse [] come numero | val (x) | Acquisisce una stringa come input e tenta di analizzarla come numero. Ad esempio, se si specifica 12.34, i risultati sono il numero 12.34. |
posizione di [] nella stringa [] | indice (x, y) | Restituisce l'indice della prima occorrenza di una sottostringa in un'altra stringa. Restituisce l'indice a base zero dell'occorrenza, se trovata, o -1 se la sottostringa non viene trovata. |
Modifiche
Elemento | Espressione | Descrizione |
---|---|---|
converti [] in stringa utilizzando formato [] | tostring (x, y) | Converte il valore specificato in una stringa nel formato specificato. |
primi [] caratteri di [] | sinistra (x, y) | Restituisce i primi n caratteri della stringa specificata, dove n è il numero di caratteri da restituire. |
ultimi [] caratteri di [] | destra (x, y) | Restituisce gli ultimi n caratteri della stringa specificata, dove n è il numero di caratteri da restituire. |
minuscolo di [] | lcase (x) | Converte tutti i caratteri nella stringa specificata in minuscolo. |
sottostringa di [] che inizia alla posizione [] e di lunghezza [] | sottostringa (x, y, z) | Restituisce una sottostringa della stringa specificata, a partire dalla posizione specificata e della lunghezza specificata. Il valore specificato per la posizione iniziale è l'indice del primo carattere da richiamare (incluso). 1 è l'indice del primo carattere nella stringa. Ad esempio, si desidera utilizzare il valore a tre cifre (caratteri effettivi da quattro a sei) di ciascun codice prodotto per stabilire quale divisione è responsabile del prodotto. |
maiuscolo di [] | ucase (x) | Converte tutti i caratteri nella stringa specificata in maiuscolo. |
Riempimento
Elemento | Espressione | Descrizione |
---|---|---|
aggiungere [] spazi dopo [] | rpad (x, y) | Aggiunge il numero specificato di spazi dopo la stringa specificata. |
aggiungere [] spazi prima e [] spazi dopo [] | prisma (x, y, z) | Aggiunge il numero specificato di spazi prima e dopo la stringa specificata. |
inserisci spazi [] prima di [] | lpad (x, y) | Aggiunge il numero specificato di spazi all'inizio della stringa specificata. |
Taglio
Elemento | Espressione | Descrizione |
---|---|---|
trim sinistro di [] | lrem (x) | Rimuove tutti gli spazi all'inizio della stringa specificata. |
ritaglio a destra [] | rrelimita (x) | Rimuove tutti gli spazi alla fine della stringa specificata. |
relimita [] | relimitazione (x) | Elimina tutti gli spazi all'inizio e alla fine della stringa specificata. |
Ulteriori informazioni
- Gestione delle definizioni di qualità dei dati
- Gestione delle regole di qualità dei dati
- Espressioni della regola di qualità dei dati di esempio
Argomento principale Gestione delle definizioni di qualità dei dati