Database
 sql >> Database >  >> RDS >> Database

Mascheratura e mappatura dei dati incrementali:rilevamento delle modifiche e aggiornamento...

La replica incrementale dei dati, il mascheramento, l'integrazione (ETL) e altre operazioni di aggiornamento dei dati sono comuni negli ambienti di database che si aggiornano frequentemente. Questi lavori richiedono il rilevamento di aggiunte e aggiornamenti alle tabelle. Tali operazioni dinamiche sono facili da automatizzare nei flussi di lavoro IRI Voracity progettati ed eseguiti in IRI Workbench (WB).

Questo articolo contiene un esempio di flusso di lavoro che gli utenti dell'edizione Voracity, FieldShield, CoSort o NextForm DBMS possono implementare per controllare regolarmente le modifiche in una tabella di origine (Oracle in questo caso) per decidere quando spostare i dati in una nuova destinazione (MySQL). Mostra anche come i dati possono essere mascherati in modo condizionale come parte di questo processo. Tieni presente che IRI sta anche lavorando su un approccio basato sui log per incrementare i dati in tempo reale senza la necessità di valori di colonna delta.

Le modifiche possono essere caricate in diversi database o file utilizzando un file batch pianificato per attività o uno script di shell. Questo può essere fatto utilizzando un timestamp e campi specifici nella tabella di origine. È incluso anche il controllo degli errori e si può anche intervenire.

Questo esempio è stato creato ed eseguito su una macchina Windows. Può essere facilmente modificato per funzionare su una piattaforma Linux o Unix.

La creazione del file batch è semplice utilizzando un diagramma di flusso di Voracity in WB. In questo esempio, la tabella di origine contiene colonne denominate CREATED_DATE e UPDATED_DATE che sono importanti in questo lavoro.

L'immagine seguente mostra i passaggi contenuti nel file batch. Per riassumere:

  • il lavoro viene eseguito in una directory specifica
  • viene impostata una variabile di ambiente utilizzando il timestamp dell'ultimo lavoro eseguito
  • viene registrato il timestamp corrente
  • Le modifiche attuali vengono acquisite
  • il livello di errore viene controllato e adottato in caso di esito positivo o negativo
  • il timestamp corrente sovrascrive il timestamp dell'ultima esecuzione
  • nel target viene utilizzata una regola per oscurare le email che terminano con "edu"
  • nella destinazione viene utilizzata una regola per oscurare parzialmente il campo SSN
  • i dati modificati vengono caricati in MySQL
  • viene verificato il livello di errore, il file di timestamp temporaneo viene rinominato

Ogni blocco di attività nel flusso di lavoro è spiegato di seguito. I due blocchi color malva sono blocchi di mappatura di trasformazione e rappresentano gli script di lavoro CoSort SortCL. I diagrammi di mappatura e gli script di lavoro rappresentati da ciascuno dei blocchi sono illustrati di seguito per maggiore chiarezza. Per istruzioni su come creare flussi di lavoro Voracity dalla tavolozza, vedere questo articolo.

Cambia directory

Questo blocco cambia la directory di lavoro corrente in quella specificata.

Imposta ULTIMA ORA

Questo blocco della riga di comando imposta una variabile di ambiente chiamata LASTTIME . Il valore impostato sulla variabile è il contenuto del file LastTime.txt . Il timestamp in questo file è il timestamp che è stato registrato durante l'ultima esecuzione di questo lavoro. Se questa è la prima esecuzione, questo file dovrà essere creato manualmente con un timestamp arbitrario datato prima dell'esecuzione di questo lavoro.

Questo file contiene una riga:"2008-09-10 09:39:23.5"

Timestamp.scl

Questa attività utilizza il programma SortCL per interrogare il database di origine per l'ora corrente. Quel timestamp viene salvato in un file chiamato LastTimeTemp.txt . Il motivo per cui è archiviato in un file temporaneo è che sia l'ora corrente che l'ultima ora possono essere conservate fino a quando non si verifica il controllo degli errori.

È importante che il timestamp provenga dal database e non dal computer locale. Ciò evita problemi in cui il database e l'ambiente di esecuzione non sono sincronizzati.

Il diagramma di mappatura e lo script serializzato per questo lavoro sono i seguenti:

Modifiche.scl

Questo lavoro esegue l'estrazione principale, la trasformazione, il caricamento. Input è la tabella di origine in Oracle e l'output è una tabella formattata in modo simile in MySQL:

Nella sezione di input, viene inviata una query alla tabella di origine per tutti i record che hanno un CREATED_DATE o UPDATED_DATE maggiore della variabile d'ambiente LASTTIME . La query è "SELECT * FROM SCOTT.CLIENT WHERE CREATED> TO_TIMESTAMP(\'$LASTTIME\', \'YYYY-MM-DD HH24:MI:SS.FF1\') OR (UPDATED> TO_TIMESTAMP(\'$LASTTIME\ ', \'AAAA-MM-GG HH24:MI:SS.FF1\'))”.

Inoltre, viene aggiunta una condizione per controllare l'EMAIL colonna per i dati che terminano con "edu". Questo verrà utilizzato in una funzione di mascheramento dei dati condizionale in output. Nell'output, un If-Then-Else l'istruzione viene aggiunta all'EMAIL colonna. Utilizza la condizione creata in precedenza per testare i dati. Se i dati terminano in "edu", l'indirizzo e-mail viene oscurato. In caso contrario, l'indirizzo email viene copiato dall'input.

Una seconda funzione di redazione viene utilizzata nel SSN colonna. Redige i primi tre caratteri, lascia il trattino, redige i due caratteri successivi, lascia il trattino e lascia gli ultimi quattro caratteri. Ad esempio ***-**-6789.

Di seguito è riportato lo script di lavoro SortCL serializzato descritto sopra in modo da poter esaminare la query e la sintassi condizionale coinvolta nei delta incrementali:

Coordinamento errore

Il blocco decisionale controlla la variabile ERRORLEVEL per assicurarsi che restituisse 0 (per esito positivo) dopo aver eseguito il processo SortCL sopra. In caso contrario, il lavoro continua fino a END blocco in cui il lavoro è terminato. Se restituisce true, il lavoro continua al blocco successivo.

Rinomina LastTimeTemp

Questo blocco comandi copia il contenuto di LastTimeTemp.txt a LastTime.txt . Questo registra il timestamp corrente acquisito in precedenza nel file da utilizzare per l'esecuzione del lavoro successivo.

File batch

Il file batch e gli script di trasformazione vengono creati quando viene esportato il diagramma di flusso (mostrato sopra). Di seguito è riportata una copia del file batch. Ogni blocco aggiunge righe eseguibili al file batch.

Programmazione attività

Utilizzando l'Utilità di pianificazione di Windows, questo file batch può essere eseguito ripetutamente per acquisire le modifiche nel database di origine.

Conclusione

Con un po' di pianificazione e l'uso di blocchi di comandi, le modifiche a una tabella di database possono essere rilevate automaticamente utilizzando un file batch e quindi pianificate per essere eseguite a intervalli selezionati in modo da poter spostare, mappare, mascherare e manipolare in altro modo i dati modificati su un base incrementale.

Contatta [email protected] o il tuo rappresentante IRI per ulteriori informazioni o aiuto con il tuo caso d'uso.