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

Inkrementel datareplikering i IRI Workbench

Vores første artikel om datareplikering i IRI Workbench GUI til NextForm (DB-udgave) eller Voracity demonstrerede, hvordan man kopierer og transformerer data, når de flyttede fra Oracle til to mål. Denne artikel viser, hvordan man trinvist synkroniserer en produktions- og backuptabel i separate databaser.

I dette tilfælde er produktionsdatabasen Oracle, backupdatabasen er MySQL, og tabellen hedder SG_TRANSACTIONS i begge. Der er transaktionsrækker, der indeholder kontonummeret, transaktionstypen, transaktionsdatoen og transaktionsbeløbet med kolonnenavnene ACCT_NUM, TRANSTYPE, TRANS_DATE og TRANS_AMOUNT.

Bemærk, at du også kan oprette tabeller ved at definere og udføre sætninger i SQL-filer i IRI Workbench.

Kør guiden

Der er guider i IRI Workbench, som kan bruges til at oprette et migreringsjobscript, der kopierer rækkerne fra en tabel til en anden. I dette tilfælde vil vi replikere dataene fra ORACLE-tabellen SG_TRANSACTIONS til MySQL-tabellen SG_TRANSACTIONS.

Jeg har tidligere lavet projektet Replikering. Vi bør klikke på den mappe i Project Explorer for at fremhæve projektet, før du kører guiden. Dette sikrer, at guiden gemmer mit jobscript i den mappe. Vores replikeringsjob vil blive oprettet gennem en guide, der er tilgængelig fra NextForm Menu i værktøjslinjen.

For at køre guiden skal du klikke på pilen ved siden af ​​NextForm-ikonet. Bemærk, at vi i den forrige artikel brugte New Reformat Job guiden, fordi et af målene blev filtreret, maskeret og omformateret. Da denne sag er direkte replikering, bruger vi New Single Source Migration Job guiden i stedet.

På guidens første skærm kaldet Jobspecifikationsfil , skal du kontrollere, at Mappen feltet har replikering som værdien (projektnavn). I Filnavn feltet skal du indtaste navnet på det jobscript, vi opretter; Jeg kaldte det SG_Transaction_Transfer. Vælg Opret script alternativknappen, og vælg derefter Næste for at gå til Single Source Migration vindue.

Under Kildeoplysninger , skal du vælge Gennemse knappen ved siden af ​​Kilde Mark. Vælg nu ODBC alternativknappen i Datakilde vinduet, og klik på Gennemse knap.

I ODBC-tabelvalg vindue, skal du vælge DSN fra rullelisten; vælg derefter Tabelnavn og klik på OK . ODBC bruges til at oprette forbindelse til vores kilde- og måldatabasetabeller, når data flyttes ved hjælp af vores jobscripts. Klik på OK igen for at vende tilbage til Single Source Migration vindue.


Gennemse eller opdag dine kildemetadata

Alle IRI-programmer kræver metadatalayout for dine datakilder og mål i et standarddatadefinitionsfilformat (DDF). Disse layouts oprettes normalt én gang, gemmes centralt og bruges som referencer til dine kortlægninger og modeller.

Hvis der allerede er oprettet en metadatafil, skal du under Kildeoplysninger , klik på Gennemse knappen ud for Metadata Mark. I Åbn metadata vinduet skal du vælge metadatafilen i Matchende elementer boks, der definerer kolonnerne i SG_TRANSACTIONS bord. Klik derefter på OK for at vende tilbage til Single Source Migration vindue.

Hvis du har brug for at oprette metadatafilen nu, skal du vælge Opdag knap. Dette fører dig til Opsætning Valgmuligheder vindue. Bekræft, at mappen er /dit projektnavn /metadata. I Filnavn feltet skal du indtaste navnet på metadatafilen og klikke på Næste . I Datakildeidentifikation vinduet, skal du kontrollere, at felterne er udfyldt korrekt og klikke på Næste for at gå til Field Data Viewer og Editor vindue.

Den øverste halvdel af vinduet har kolonnenavnene og et eksempel på posterne i tabellen, hvis nogen. Den nederste halvdel har feltet Navn skal bruges i jobscriptet, IRIs tilsvarende data Type for den originale database Kildetype , og den ordinære Position af feltet (kolonne). Klik på Udfør .


Du er nu tilbage i Single Source Migration vindue.

Definer målet

Under Måloplysninger , skal du vælge Gennemse knappen ud for feltet for Mål . Nu i Datamålet vinduet, vælg ODBC alternativknappen og klik på Gennemse knappen ved siden af ​​ODBC Mark. Vælg derefter output DSN og Tabelnavn (Twister MYSQL og SG_Transactions) i ODBC-tabelvalg vindue. Sørg for at markere feltet for Kopiér metadata fra kilde . Klik på OK, og klik på OK igen.

Alle de nødvendige oplysninger er nu i Single Source Migration vindue. Klik på Udfør .


NextForm-kontrolsprogscriptet SG_Transaction_Transfer.ncl er oprettet og kan ses i IRI Workbench farvekodede, syntaksbevidste teksteditor.

Repliker de nye poster

Dette script kopierer alle de rækker, der findes i SG_TRANSACTIONS tabel i Oracle til den samme navngivne tabel i MySQL. Men efter den første udførelse vil vi kun kopiere nye rækker til backup-tabellen. For at gøre dette skal vi tilføje en /QUERY-sætning til inputsektionen i jobscriptet, så kun de nyeste rækker vil blive behandlet, hver gang du kører jobbet (ad hoc eller planlagt).

For at ændre scriptet fra IRI Workbench-editoren skal du højreklikke i scriptets brødtekst. Vælg IRI , derefter Rediger kilder . I Datakilder dialogvinduet, vælg Rediger kildeindstillinger .

Nederst i Kildeindstillinger vinduet er en forespørgsel Mark. Det er her, vi tilføjer SQL-forespørgselssætningen, der kun vil vælge de nyeste rækker fra Oracle-tabellen. Vi vil antage, at dette er en månedsslutningsproces. QUERY-sætningen nedenfor filtrerer rækker i et interval på en måned, men vi kunne vælge et hvilket som helst interval. I stedet for at bruge specifikke datoer i scriptet, kunne vi også bruge miljøvariabler til at angive intervallet.

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')"

Klik nu på OK , derefter Afslut at opdatere og gemme vores originale guideoprettede jobscript med den nye /QUERY-sætning inde:

Første gang scriptet kører, skal /QUERY-sætningen kommenteres ud, fordi vi ønsker, at alle poster skal kopieres. Derefter vil vi køre med /QUERY-sætningen for at replikere rækker fra et datointerval, der endnu ikke er blevet kopieret til backup-tabellen.

Dette job kan køre fra GUI eller kommandolinje, hvor en NextForm DB-udgave, Voracity eller CoSort (sortcl) eksekverbar er licenseret.

Her er et eksempel på rækker i produktionstabellen:

Og her er et eksempel på rækker i backup-tabellen, før du kører december måneds-backup. Så rækkerne i denne tabel går i øjeblikket kun til slutningen af ​​november.

Efter at have kørt vores replikeringsjob med /QUERY-sætningen i, tilføjes kun december-posterne til backup-tabellen. Bemærk, at der er en januarpost i produktionstabellen, men denne post er ikke blevet kopieret til backuptabellen, fordi datoværdien for den række er uden for vores specificerede interval.

Det er også muligt at tilføje maskeringsfunktioner på kolonneniveau til hvert mål, som jobbet nedenfor viser:

Se dette eksempel på replikering mellem Oracle og MongoDB. For at få hjælp til at replikere data på en engangs- eller tilbagevendende basis, send en e-mail til [email protected].


  1. Migrering af data ved hjælp af Network_link

  2. Tjek, om et objekt er en tabel, visning eller lagret procedure i SQL Server ved hjælp af OBJECTPROPERTY()-funktionen

  3. JDBC-forbindelses standard autoCommit-adfærd

  4. PostgreSQL-ækvivalent for TOP n WITH TIES:LIMIT with ties?