sql >> Database >  >> RDS >> Database

Incrementele gegevensreplicatie in IRI Workbench

Ons eerste artikel over gegevensreplicatie in de IRI Workbench GUI voor NextForm (DB-editie) of Voracity demonstreerde hoe gegevens te kopiëren en te transformeren terwijl ze van Oracle naar twee doelen werden verplaatst. Dit artikel laat zien hoe u stapsgewijs een productie- en back-uptabel in afzonderlijke databases kunt synchroniseren.

In dit geval is de productiedatabase Oracle, de back-updatabase MySQL en de tabel heet in beide SG_TRANSACTIONS. Er zijn transactieregels die het rekeningnummer, het type transactie, de transactiedatum en het transactiebedrag bevatten met de kolomnamen ACCT_NUM, TRANSTYPE, TRANS_DATE en TRANS_AMOUNT.

Merk op dat u ook tabellen kunt maken door instructies in SQL-bestanden te definiëren en uit te voeren binnen IRI Workbench.

Voer de wizard uit

IRI Workbench bevat wizards die kunnen worden gebruikt om een ​​migratietaakscript te maken waarmee de rijen van de ene tabel naar de andere worden gekopieerd. In dit geval repliceren we de gegevens van de ORACLE-tabel SG_TRANSACTIONS naar de MySQL-tabel SG_TRANSACTIONS.

Ik heb eerder het project Replicatie gemaakt. We moeten op die map klikken in de Projectverkenner om het project te markeren voordat u de wizard uitvoert. Dit zorgt ervoor dat de wizard mijn jobscript in die map opslaat. Onze replicatietaak wordt gemaakt via een wizard die beschikbaar is via het NextForm-menu in de werkbalk.

Om de wizard uit te voeren, klikt u op de pijl naast het pictogram NextForm. Merk op dat we in het vorige artikel de Nieuwe herformatteringstaak . hebben gebruikt wizard omdat een van de doelen is gefilterd, gemaskeerd en opnieuw geformatteerd. Aangezien dit geval rechtstreekse replicatie is, gebruiken we de New Single Source Migration Job wizard in plaats daarvan.

Op het eerste scherm van de wizard genaamd Opdrachtspecificatiebestand , controleer of de map veld heeft Replicatie als de (projectnaam) waarde. In de Bestandsnaam veld, typ de naam van het jobscript dat we aan het maken zijn; Ik noemde het SG_Transaction_Transfer. Selecteer de Script maken keuzerondje en selecteer vervolgens Volgende om naar de Single Source Migration . te gaan venster.

Onder Broninformatie , selecteer de Bladeren knop naast de Bron veld. Selecteer nu de ODBC keuzerondje in de Gegevensbron venster en klik op de knop Bladeren knop.

In de ODBC-tabelselectie venster, selecteer de DSN uit de vervolgkeuzelijst; selecteer vervolgens de Tabelnaam, en klik op OK . ODBC wordt gebruikt om verbinding te maken met onze bron- en doeldatabasetabellen bij het verplaatsen van gegevens met behulp van onze taakscripts. Klik op OK nogmaals om terug te keren naar de Single Source Migration venster.


Blader door of ontdek uw bronmetadata

Alle IRI-programma's vereisen metagegevenslay-outs voor uw gegevensbronnen en doelen in een standaard DDF-indeling (Data Definition File). Deze lay-outs worden normaal gesproken eenmalig gemaakt, centraal opgeslagen en gebruikt als referentie voor uw kaarten en modellen.

Als er al een metadatabestand is aangemaakt, dan onder Broninformatie , klik op de Bladeren knop naast de Metadata veld. In de Metadata openen venster, selecteert u het metagegevensbestand in de Overeenkomende items vak dat de kolommen definieert in de SG_TRANSACTIONS tafel. Klik vervolgens op OK om terug te keren naar de Single Source Migration venster.

Als u het metagegevensbestand nu moet maken, selecteert u de Ontdekken knop. Hiermee gaat u naar de Setup Opties raam. Controleer of de map /uw projectnaam . is /metagegevens. In de Bestandsnaam typt u de naam voor het metagegevensbestand en klikt u op Volgende . In de Identificatie van gegevensbron venster, controleer of de velden correct zijn ingevuld en klik op Volgende om naar de Veldgegevensviewer en -editor . te gaan venster.

De bovenste helft van het venster bevat de kolomnamen en een voorbeeld van de records in de tabel, indien aanwezig. De onderste helft heeft het veld Naam te gebruiken in het jobscript, de equivalente gegevens van IRI Type voor de originele database Brontype , en de ordinale Positie van het veld (kolom). Klik op Voltooien .


U bent nu terug in de Single Source Migration venster.

Definieer het doel

Onder Doelinformatie , selecteer de Bladeren knop naast het veld voor Doel . Nu, in de Gegevensdoel venster, selecteer de ODBC keuzerondje en klik op Bladeren knop naast de ODBC veld. Selecteer vervolgens de uitgang DSN en Tabelnaam (Twister MYSQL en SG_Transactions) in de ODBC-tabelselectie raam. Zorg ervoor dat u het vakje selecteert voor Metadata kopiëren van bron . Klik op OK, en klik op OK nogmaals.

Alle benodigde informatie staat nu in de Single Source Migration raam. Klik op Voltooien .


Het NextForm-besturingstaalscript SG_Transaction_Transfer.ncl is gemaakt en kan worden bekeken in de kleurgecodeerde, syntaxisbewuste teksteditor van IRI Workbench.

Repliceer de nieuwe records

Dit script kopieert alle rijen die bestaan ​​in de SG_TRANSACTIONS tabel in Oracle naar de gelijknamige tabel in MySQL. Maar na de eerste uitvoering willen we alleen nieuwe rijen naar de back-uptabel kopiëren. Om dit te doen, moeten we een /QUERY-instructie toevoegen aan de invoersectie van het taakscript, zodat alleen de nieuwste rijen worden verwerkt wanneer u de taak uitvoert (ad hoc of gepland).

Om het script vanuit de IRI Workbench-editor te wijzigen, klikt u met de rechtermuisknop in de hoofdtekst van het script. Selecteer IRI en vervolgens Bronnen bewerken . In de Gegevensbronnen dialoogvenster, selecteer Bronopties bewerken .

Onderaan de Bronopties venster is een Query veld. Hier voegen we de SQL-queryinstructie toe die alleen de nieuwste rijen uit de Oracle-tabel selecteert. We gaan ervan uit dat dit een maandafsluiting is. De onderstaande QUERY-instructie filtert rijen voor een interval van een maand, maar we kunnen elk interval kiezen. In plaats van specifieke datums in het script te gebruiken, kunnen we ook omgevingsvariabelen gebruiken om het interval te specificeren.

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 op OK , dan Voltooien om ons originele, door een wizard gemaakte taakscript bij te werken en op te slaan met de nieuwe /QUERY-instructie erin:

De eerste keer dat het script wordt uitgevoerd, moet de instructie /QUERY worden weggelaten omdat we willen dat alle records worden gekopieerd. Daarna willen we het /QUERY-statement gebruiken om rijen te repliceren vanaf een datuminterval dat nog niet naar de back-uptabel is gekopieerd.

Deze taak kan worden uitgevoerd vanaf de GUI of de opdrachtregel waar een uitvoerbaar bestand van NextForm DB, Voracity of CoSort (sortcl) is gelicentieerd.

Hier is een voorbeeld van rijen in de productietabel:

En hier is een voorbeeld van rijen in de back-uptabel voordat de back-up aan het einde van de maand december wordt uitgevoerd. Dus de rijen in deze tabel lopen momenteel alleen tot eind november.

Na het uitvoeren van onze replicatietaak met de /QUERY-instructie erin, worden alleen de december-records toegevoegd aan de back-uptabel. Merk op dat er één januari-record in de productietabel is, maar dit record is niet gekopieerd naar de back-uptabel omdat de datumwaarde voor die rij buiten ons gespecificeerde bereik ligt.

Het is ook mogelijk om maskeerfuncties op kolomniveau toe te voegen aan elk doel, zoals de onderstaande taak laat zien:

Zie dit voorbeeld van replicatie tussen Oracle en MongoDB. Stuur een e-mail naar [email protected] voor hulp bij het repliceren van gegevens op een eenmalige of terugkerende basis.


  1. F# verbinden met Salesforce.com

  2. Hoe te controleren of het bestand een afbeelding is met PL/SQL?

  3. Zorg om clausules te kennen:alles over SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY en LIMIT

  4. Database naamgevingsconventies door Microsoft?