04-CDI Mapping Design and Development Flashcards
Cosa definiscono i CDI Mappings?
logica di flusso dei dati dalla sorgente alla destinazione
Per essere un mapping valido in CDI, quante e che tipi di trasformazioni deve contenere?
- trasformazione di sorgente
- trasformazione di destinazione
In che ordine verrà eseguito il flusso di dati in un CDI mapping?
da destra a sinistra
Quante sorgenti e destinazioni può avere un mapping?
1 o + sorgenti, 1 o + destinazioni (supportate da IDMC Connections)
Quali tipi di trasformazioni è possibile inserire tra sorgenti e destinazioni, per eseguire le logiche aziendali?
- filtraggio dei dati
- ricerca e arricchimento dei dati
- unione di set di dati eterogenei
Cosa rappresentano le trasformazioni in CDI?
operazioni che si desidera eseguire sui dati all’interno di un mapping, ognuna ha un obiettivo specifico.
SORGENTI e DESTINAZIONI sono trasformazioni (definite da proprietà dell’endpoint)
In quali categorie possono essere divise le trasformazioni?
- trasformazioni attive: producono n° di righe in uscita = a n° righe in ingresso (es: expression, lookup)
- trasformazioni passive: operano su tutte le righe in ingresso, possono produrre +, - o = n° di righe in uscita (es: aggregator, joiner)
A parte trasformazioni ATTIVE e PASSIVE, quali altri tipo conosciamo?
- trasformazioni Java: consente esecuzione codice non nativo alla piattaforma Informatica (x operazioni complesse)
- trasformazioni gerarchiche: consente gestione strutture di dati complesse (es: input gerarchici/relazionali > output relazionali/gerarchici/denormalizzati)
- trasformazioni web services: integrazione chiamate a un’app esterna (es: recupero dati da un database web esterno)
In che categorie possono essere suddivise le funzioni utilizzabili all’interno di mappature/trasformazioni?
- aggregazione:
- Average > media insieme numerico
- Count > conta n° righe/occorrenze
- Min/Max > trova valore min e max in un insieme
- Sum > somma valori di un insieme numerico - conversione
- TO_CHAR > converte in stringa
- TO_DATE > converte in data
- TO_INTEGER > converte in n° intero - manipolazione stringa/pulizia dati
- Replace > sostituisce sottostringa con un’altra
- RegEX > per pattern matching e manipolazione stringhe
- SubString > estrae sottostringa da stringa
- Trim > rimuove spazi iniziali e finali
- Concatenate > unisce 2 o + stringe - funzioni numeriche
- Floor > arrotonda n° al valore intero inferiore + vicino
- Absolute > valore assoluto di un numero
- Log > logaritmo di un numero
- Moving Average > media mobile intervallo di dati - funzioni scientifiche
- Cosine > coseno angolo
- Sine > seno angolo
- Tangent > tangente angolo
Cos’è una trasformazione di espressione?
trasformazione comune per applicare la maggior delle funzioni
Nel contesto dei mapping, cosa sono i template e a cosa servono?
- ti aiutano a iniziare rapidamente un progetto
- contengono logiche predefinite utilizzabili per attività di integrazione, pulizia e gestione di dati
Quali categorie di template è possibile scegliere?
- integrazione:
- aggiunta dati con Lookup
- unione 2 fonti con Join interno
- replica incrementale dati su un nuovo target - pulizia dati:
- controllo dati di origine x valori nulli
- separazione record validi/non validi su target diversi
- deduplicazione dati di origine con identificatore unico - data warehousing: gestione dimensioni lente (slowly changing dimensions)
- soluzioni per settore: soluzioni industriali come trattamento messaggi HL7 in ingresso o elaborazione messaggi X12 HIPAA in ingresso
A cosa serve la trasformazione EXPRESSION?
- consente di applicare funzioni sui dati
- elabora e manipola informazioni (aggregazione, conversione di dati)
- le funzioni utilizzate all’interno dell’Expression possono essere matematiche, stringa, data, e altre
A cosa serve la trasformazione LOOKUP?
- recuperare dati da una fonte secondaria
- utile per ottenere valori da altre tabelle/fonti di dati in base a una chiave di ricerca
A cosa serve la trasformazione ROUTER?
permette di suddividere i dati in più flussi in base a criteri definiti
Caratteristiche EXPRESS OBJECT
- più comune
- opera su tutto il set di dati, ma su base record per record
- utilizza un editor di espressioni per accedere alle funzioni CDI da eseguire sui campi
- es: concatenazione, RegEx
EXPRESSION OBJECT, step di configurazione (es. concatenazione)
- aggiunta expression object nella mappatura
- modifica campi di ingresso (icona del “+” permette di aggiungere un’espressione. Configura un campo che conterrà l’output dell’espressione. Il tipo di campo sarà “output”)
- configurazione espressione (clicca sul link di configurazione per aprire l’editor. Puoi alternare tra nomi di campo e funzioni integrate utilizzando il menu a tendina come necessario. Le funzioni possono essere annidate)
- anteprima del risultato (selezionando Run Preview, verrà presentata una schermata di configurazione. Puoi selezionare quante righe visualizzare in anteprima e dove eseguire il codice)
Caratteristiche LOOKUP OBJECT
- utilizzato per recuperare i dati da un set di dati che può essere diverso dalla sorgente
- simile a una query
- supporta molti tipi di connessioni
- bisogna fornire una condizione in cui un campo in ingresso venga confrontato con un campo nel set di dati di ricerca. È possibile confrontare più campi, ma solo come condizione AND. Gli operatori di confronto supportati sono >, <, >=, <=, =, e !=
- può essere memorizzato nella cache o meno, il caching migliora le prestazioni
- per impostazione predefinita, un lookup è un oggetto passivo
LOOKUP OBJECT, step di configurazione
- campi in ingresso (campi da confrontare come input)
- connessione di lookup (configurazione con connessione IDMC, scegliere tabella da utilizzare)
- condizione di lookup
- anteprima del risultato (selezionando Run Preview, verrà presentata una schermata di configurazione. Puoi selezionare quante righe visualizzare in anteprima e dove eseguire il codice)
Caratteristiche ROUTER OBJECT
- utilizza una condizione di filtro per valutare ogni riga dei dati in ingresso
- simile a un oggetto Filter, ma può essere più efficiente (router testa + condizioni in un’unica passata, filter può testare 1 sola condizione alla volta)
- le condizioni possono essere semplici o complesse
- non scarta righe (se una riga non passa nessuna condizione, viene inviata a un gruppo Default, se il gruppo Default non è connesso a un oggetto downstream, le righe vengono scartate)
- gruppo filter = scarta qualsiasi riga che non soddisfa una condizione
- ogni gruppo può essere connesso a 1 o + oggetti
- non è possibile connettere + gruppi allo stesso oggetto downstream (eccezione se oggetto downstream ha + gruppi in input)
ROUTER OBJECT, step di configurazione
- campi in ingresso (necessario includere i campi che saranno valutati nelle condizioni dei gruppi)
- creare gruppi (ogni gruppo creato è allineato con una condizione, se una riga passa la condizione viene emessa come parte del gruppo. I gruppi non sono esclusivi)
- condizione del gruppo
- anteprima del risultato (selezionando Run Preview, verrà presentata una schermata di configurazione. Puoi scegliere quante righe visualizzare in anteprima e dove eseguire il codice)