Pulizia dei dati

Quando si caricano i dati da tabelle differenti, si noterà che i valori di campo che indicano lo stesso elemento non sono sempre associati a nomi coerenti. Poiché questa mancanza di coerenza non crea solo difficoltà, ma ostacola effettivamente le associazioni, è necessario risolvere il problema. Per risolvere il problema in modo elegante, creare una tabella di mapping che consenta di confrontare i valori di campo.

Tabelle di mapping

Le tabelle caricate con mapping load o mapping select vengono considerate in modo diverso rispetto alle altre tabelle. Verranno salvate in un'area di memoria separata e utilizzate solo come tabelle di mapping durante l'esecuzione dello script. Dopo l'esecuzione dello script vengono rimosse automaticamente.

Regole:

  • Una tabella di mapping deve avere due colonne: una con i valori di confronto e una con i valori di mapping desiderati.
  • Le due colonne devono avere un nome, ma i nomi non hanno rilevanza in se stessi. I nomi delle colonne non hanno alcuna connessione con i nomi dei campi delle tabelle interne standard.

Utilizzo di una tabella di mapping

Durante il caricamento di tabelle concernenti le nazioni, potrebbe essere possibile rilevare che una o più nazioni hanno nomi diversi. In questo esempio, gli USA sono riportati in elenco come US, U.S. e United States.

Per evitare l'occorrenza di tre diversi record che riportino gli Stati Uniti nella tabella concatenata, si può creare una tabella simile a quella mostrata e caricarla come tabella di mapping.

L'intero script dovrà apparire in questo modo:

CountryMap:

Mapping LOAD x,y from MappingTable.txt

(ansi, txt, delimiter is ',', embedded

labels);

Map Country using CountryMap;

LOAD Country,City from CountryA.txt

(ansi, txt, delimiter is ',', embedded labels);

LOAD Country, City from CountryB.txt

(ansi, txt, delimiter is ',', embedded labels);

L'istruzione mapping carica il file MappingTable.txt come tabella di mapping con l'etichetta CountryMap.

L'istruzione map abilita il mapping del campo Country utilizzando la tabella di mapping CountryMap caricata in precedenza.

Le istruzioni LOAD caricano le tabelle CountryA e CountryB. Queste tabelle, concatenate in quanto aventi lo stesso set di campi, includono il campo Country, i cui valori di campo saranno confrontati con quelli della prima colonna della tabella di mapping. I valori di campo US, U.S. e United States saranno trovati e sostituiti con i valori della seconda colonna della tabella di mapping, ad esempio USA.

Il mapping automatico viene eseguito al termine della catena di eventi che indirizzano al campo memorizzato nella tabella di QlikView. In un'istruzione LOAD o SELECT standard, l'ordine degli eventi è simile a quello seguente:

  1. Valutazione delle espressioni
  2. Rinominare i campi con as
  3. Rinominare i campi con un alias
  4. Qualificazione del nome della tabella, se applicabile
  5. Mapping dei dati se il nome di campo coincide

Pertanto, il mapping non viene eseguito ogni volta che un nome di campo viene rilevato come parte di un'espressione, bensì quando il valore viene memorizzato sotto il nome di campo nella tabella QlikView.

Per disabilitare il mapping, utilizzare l'istruzione unmap.

Per eseguire il mapping a livello di espressione, utilizzare la funzione applymap.

Per eseguire il mapping a livello di sottostringa, utilizzare la funzione mapsubstring.