Vår första artikel om datareplikering i IRI Workbench GUI för NextForm (DB-utgåva) eller Voracity visade hur man kopierar och transformerar data när den flyttade från Oracle till två mål. Den här artikeln visar hur man stegvis synkroniserar en produktions- och säkerhetskopieringstabell i separata databaser.
I det här fallet är produktionsdatabasen Oracle, backupdatabasen MySQL och tabellen heter SG_TRANSACTIONS i båda. Det finns transaktionsrader som innehåller kontonumret, typen av transaktion, transaktionsdatumet och transaktionsbeloppet med kolumnnamnen ACCT_NUM, TRANSTYPE, TRANS_DATE och TRANS_AMOUNT.
Observera att du också kan skapa tabeller genom att definiera och köra satser i SQL-filer i IRI Workbench.
Kör guiden
Det finns guider i IRI Workbench som kan användas för att skapa ett migreringsjobbskript som kopierar raderna från en tabell till en annan. I det här fallet kommer vi att replikera data från ORACLE-tabellen SG_TRANSACTIONS till MySQL-tabellen SG_TRANSACTIONS.
Jag skapade tidigare projektet Replikering. Vi bör klicka på den mappen i Project Explorer för att markera projektet innan du kör guiden. Detta säkerställer att guiden sparar mitt jobbskript i den mappen. Vårt replikeringsjobb kommer att skapas genom en guide som är tillgänglig från NextForm Menu i verktygsfältet.
För att köra guiden, klicka på pilen bredvid NextForm-ikonen. Observera att vi i den föregående artikeln använde New Reformat Job guiden eftersom ett av målen filtrerades, maskerades och omformaterades. Eftersom det här fallet är direkt replikering kommer vi att använda New Single Source Migration Job guide istället.
På guidens första skärm som heter Jobbspecifikationsfil , kontrollera att mappen fältet har replikering som värdet (projektnamn). I Filnamn fältet, skriv in namnet på jobbskriptet vi skapar; Jag kallade det SG_Transaction_Transfer. Välj Skapa skript alternativknapp och välj sedan Nästa för att gå till Single Source Migration fönster.
Under Källinformation , välj Bläddra knappen bredvid Källa fält. Välj nu ODBC alternativknapp i Datakälla fönstret och klicka på Bläddra knappen.
I ODBC-tabellval fönstret väljer du DSN från rullgardinsmenyn; välj sedan Tabellnamn och klicka på OK . ODBC används för att ansluta till våra käll- och måldatabastabeller när data flyttas med hjälp av våra jobbskript. Klicka på OK igen för att återgå till Single Source Migration fönster.
Bläddra eller upptäck din källmetadata
Alla IRI-program kräver metadatalayouter för dina datakällor och mål i ett standardformat för datadefinitionsfil (DDF). Dessa layouter skapas normalt en gång, lagras centralt och används som referenser för dina mappningar och modeller.
Om en metadatafil redan har skapats, under Källinformation klickar du på Bläddra knappen bredvid Metadata fält. I Öppna metadata fönstret, välj metadatafilen i Matchande objekt ruta som definierar kolumnerna i SG_TRANSACTIONS tabell. Klicka sedan på OK för att återgå till Single Source Migration fönster.
Om du behöver skapa metadatafilen nu, välj Upptäck knapp. Detta tar dig till Inställningar Alternativ fönster. Kontrollera att mappen är /ditt projektnamn /metadata. I Filnamn fältet, skriv in namnet på metadatafilen och klicka på Nästa . I Datakällans identifiering verifiera att fälten är korrekt ifyllda och klicka på Nästa för att gå till Field Data Viewer and Editor fönster.
Den övre halvan av fönstret har kolumnnamnen och ett exempel på posterna i tabellen, om några. Den nedre halvan har fältet Namn som ska användas i jobbskriptet, IRI:s motsvarande data Typ för den ursprungliga databasen Källtyp och den ordinarie positionen av fältet (kolumn). Klicka på Slutför .
Du är nu tillbaka i Single Source Migration fönster.
Definiera målet
Under Målinformation , välj Bläddra knappen bredvid fältet för Mål . Nu, i Datamål fönstret, välj ODBC alternativknappen och klicka på Bläddra knappen bredvid ODBC fält. Välj sedan utdata DSN och Tabellnamn (Twister MYSQL och SG_Transactions) i ODBC-tabellval fönster. Se till att markera rutan för Kopiera metadata från källa . Klicka på OK, och klicka på OK igen.
All nödvändig information finns nu i Single Source Migration fönster. Klicka på Slutför .
NextForm-kontrollspråkskriptet SG_Transaction_Transfer.ncl skapas och kan visas i IRI Workbenchs färgkodade, syntaxmedvetna textredigerare.
Replicera de nya posterna
Detta skript kopierar alla rader som finns i SG_TRANSACTIONS tabell i Oracle till samma namngivna tabell i MySQL. Men efter den första körningen vill vi bara kopiera nya rader till backuptabellen. För att göra detta måste vi lägga till en /QUERY-sats i inmatningsdelen av jobbskriptet så att endast de senaste raderna kommer att bearbetas när du kör jobbet (ad hoc eller schemalagt).
För att ändra skriptet från IRI Workbench-redigeraren, högerklicka i skriptets brödtext. Välj IRI , sedan Redigera källor . I Datakällor i dialogrutan väljer du Redigera källalternativ .
Längst ned i Källalternativ fönstret är en fråga fält. Det är här vi lägger till SQL-frågasatsen som endast kommer att välja de senaste raderna från Oracle-tabellen. Vi kommer att anta att detta är en månadsslutprocess. QUERY-satsen nedan filtrerar rader för ett intervall på en månad, men vi kan välja vilket intervall som helst. Istället för att använda specifika datum i skriptet kan vi också använda miljövariabler för att ange 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')"
Klicka nu på OK och sedan Slutför för att uppdatera och spara vårt ursprungliga jobbskript som skapats av guiden med den nya /QUERY-satsen inuti:
Första gången skriptet körs bör /QUERY-satsen kommenteras bort eftersom vi vill att alla poster ska kopieras. Efter det vill vi köra med /QUERY-satsen för att replikera rader från ett datumintervall som ännu inte har kopierats till backuptabellen.
Det här jobbet kan köras från GUI eller kommandoraden där en NextForm DB-version, Voracity eller CoSort (sortcl) körbar är licensierad.
Här är ett exempel på rader i produktionstabellen:
Och här är ett exempel på rader i säkerhetskopieringstabellen innan du kör säkerhetskopieringen i slutet av december. Så raderna i den här tabellen går för närvarande bara till slutet av november.
Efter att ha kört vårt replikeringsjobb med /QUERY-satsen i, läggs endast decemberposterna till i backuptabellen. Observera att det finns en januaripost i produktionstabellen, men denna post har inte kopierats till backuptabellen eftersom datumvärdet för den raden ligger utanför vårt angivna intervall.
Det är också möjligt att lägga till maskeringsfunktioner på kolumnnivå till varje mål, som jobbet nedan visar:
Se detta exempel på replikering mellan Oracle och MongoDB. För hjälp med att replikera data på en engångs- eller återkommande basis, skicka ett e-postmeddelande till [email protected].