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

Replica incrementale dei dati in IRI Workbench

Il nostro primo articolo sulla replica dei dati nella GUI di IRI Workbench per NextForm (edizione DB) o Voracity ha dimostrato come copiare e trasformare i dati mentre si spostavano da Oracle a due target. Questo articolo mostra come sincronizzare in modo incrementale una tabella di produzione e di backup in database separati.

In questo caso, il database di produzione è Oracle, il database di backup è MySQL e la tabella è denominata SG_TRANSACTIONS in entrambi. Esistono righe di transazione che contengono il numero di conto, il tipo di transazione, la data della transazione e l'importo della transazione con i nomi delle colonne ACCT_NUM, TRANSTYPE, TRANS_DATE e TRANS_AMOUNT.

Tieni presente che puoi anche creare tabelle definendo ed eseguendo istruzioni in file SQL all'interno di IRI Workbench.

Esegui la procedura guidata

In IRI Workbench sono presenti procedure guidate che possono essere utilizzate per creare uno script del processo di migrazione che copierà le righe da una tabella all'altra. In questo caso, replicheremo i dati dalla tabella ORACLE SG_TRANSACTIONS nella tabella MySQL SG_TRANSACTIONS.

In precedenza ho creato il progetto Replica. Dovremmo fare clic su quella cartella in Esplora progetto per evidenziare il progetto prima di eseguire la procedura guidata. Ciò garantisce che la procedura guidata salverà il mio script di lavoro in quella cartella. Il nostro processo di replica verrà creato tramite una procedura guidata disponibile dal Menu NextForm nella barra degli strumenti.

Per eseguire la procedura guidata, fare clic sulla freccia accanto all'icona NextForm. Tieni presente che nell'articolo precedente abbiamo utilizzato il Nuovo processo di riformattazione procedura guidata perché uno dei target è stato filtrato, mascherato e riformattato. Poiché questo caso è una replica diretta, utilizzeremo il Nuovo processo di migrazione a un'origine singola procedura guidata invece.

Nella prima schermata della procedura guidata denominata File delle specifiche del lavoro , verifica che la Cartella campo ha Replica come valore (nome progetto). Nel Nome file campo, digita il nome del job script che stiamo creando; L'ho chiamato SG_Transaction_Transfer. Seleziona Crea script pulsante di opzione, quindi seleziona Avanti per passare a Migrazione da un'unica fonte finestra.

In Informazioni sulla fonte , seleziona Sfoglia accanto alla Fonte campo. Ora seleziona ODBC pulsante di opzione nella Sorgente dati finestra e fai clic su Sfoglia pulsante.

Nella Selezione tabella ODBC finestra, seleziona il DSN dall'elenco a discesa; quindi seleziona il Nome tabella e fai clic su OK . ODBC viene utilizzato per connettersi alle nostre tabelle del database di origine e di destinazione durante lo spostamento dei dati utilizzando i nostri script di lavoro. Fai clic su OK di nuovo per tornare alla Migrazione a sorgente singola finestra.


Sfoglia o scopri i tuoi metadati di origine

Tutti i programmi IRI richiedono layout di metadati per le origini dati e le destinazioni in un formato standard di file di definizione dei dati (DDF). Questi layout vengono normalmente creati una sola volta, archiviati centralmente e utilizzati come riferimenti per mappature e modelli.

Se è già stato creato un file di metadati, in Informazioni sulla fonte , fai clic su Sfoglia accanto ai Metadati campo. In Apri metadati finestra, seleziona il file di metadati in Elementi corrispondenti box che definisce le colonne in SG_TRANSACTIONS tavolo. Quindi fai clic su OK per tornare alla Migrazione da un'unica fonte finestra.

Se devi creare il file di metadati ora, seleziona Scopri pulsante. Questo ti porta alla Configurazione Opzioni finestra. Verifica che la cartella sia /il nome del tuo progetto / metadati. Nel Nome file campo, digita il nome del file di metadati e fai clic su Avanti . Nella Identificazione della fonte dei dati finestra, verifica che i campi siano compilati correttamente e fai clic su Avanti per accedere a Visualizzatore ed editor di dati sul campo finestra.

La metà superiore della finestra contiene i nomi delle colonne e un esempio dei record nella tabella, se presenti. La metà inferiore ha il campo Nome da utilizzare nello script del lavoro, i dati equivalenti di IRI Tipo per il database originale Tipo di origine e l'ordinale Posizione del campo (colonna). Fai clic su Fine .


Ora sei tornato nella Migrazione a sorgente singola finestra.

Definisci il target

In Informazioni sul target , seleziona Sfoglia accanto al campo per Target . Ora, nel Target dati finestra, seleziona ODBC pulsante di opzione e fai clic su Sfoglia accanto a ODBC campo. Quindi seleziona l'output DSN e Nome tabella (Twister MYSQL e SG_Transactions) nella Selezione tabella ODBC finestra. Assicurati di selezionare la casella per Copia metadati dalla sorgente . Fai clic su OK e fai clic su OK di nuovo.

Tutte le informazioni necessarie sono ora nella Migrazione a sorgente singola finestra. Fai clic su Fine .


Lo script del linguaggio di controllo NextForm SG_Transaction_Transfer.ncl viene creato e può essere visualizzato nell'editor di testo con codifica a colori di IRI Workbench e compatibile con la sintassi.

Replica i nuovi record

Questo script copierà tutte le righe esistenti in SG_TRANSACTIONS tabella in Oracle alla tabella con lo stesso nome in MySQL. Ma, dopo la prima esecuzione, vogliamo solo copiare nuove righe nella tabella di backup. Per fare ciò, dobbiamo aggiungere un'istruzione /QUERY alla sezione di input dello script del lavoro in modo che solo le righe più recenti vengano elaborate ogni volta che esegui il lavoro (ad hoc o pianificato).

Per modificare lo script dall'editor di IRI Workbench, fare clic con il pulsante destro del mouse nel corpo dello script. Seleziona IRI , quindi Modifica sorgenti . Nelle Sorgenti dati finestra di dialogo, seleziona Modifica opzioni sorgente .

Nella parte inferiore delle Opzioni sorgente la finestra è una Query campo. È qui che aggiungiamo l'istruzione di query SQL che selezionerà solo le righe più recenti dalla tabella Oracle. Assumiamo che questo sia un processo di fine mese. L'istruzione QUERY di seguito filtra le righe per un intervallo di un mese, ma possiamo scegliere qualsiasi intervallo. Invece di utilizzare date specifiche nello script, potremmo anche utilizzare variabili di ambiente per specificare l'intervallo.

select * from NIGHTLY.SG_TRANSACTIONS where to_char(TRANS_DATE, 'YYYY-MM-DD') > 
'2016-11-30' AND  (to_char(TRANS_DATE, 'YYYY-MM-DD') < '2017-01-01')"

Ora fai clic su OK , quindi Fine per aggiornare e salvare il nostro script di lavoro originale creato dalla procedura guidata con la nuova istruzione /QUERY all'interno:

La prima volta che lo script viene eseguito, l'istruzione /QUERY dovrebbe essere commentata perché vogliamo che tutti i record vengano copiati. Successivamente, vogliamo eseguire l'istruzione /QUERY per replicare le righe di un intervallo di date che non è stato ancora copiato nella tabella di backup.

Questo lavoro può essere eseguito dalla GUI o dalla riga di comando in cui è concesso in licenza un eseguibile NextForm DB edition, Voracity o CoSort (sortcl).

Ecco un esempio di righe nella tabella di produzione:

Ed ecco un esempio di righe nella tabella di backup prima di eseguire il backup di fine mese di dicembre. Pertanto, le righe di questa tabella al momento sono valide solo fino alla fine di novembre.

Dopo aver eseguito il nostro processo di replica con l'istruzione /QUERY, solo i record di dicembre vengono aggiunti alla tabella di backup. Si noti che nella tabella di produzione è presente un record di gennaio, ma questo record non è stato copiato nella tabella di backup perché il valore della data per quella riga non rientra nell'intervallo specificato.

È anche possibile aggiungere funzioni di mascheramento a livello di colonna a ciascun target, come mostra il lavoro seguente:

Vedi questo esempio di replica tra Oracle e MongoDB. Per assistenza sulla replica dei dati su base una tantum o ricorrente, inviare un'e-mail a [email protected].