sql >> Databáze >  >> RDS >> Database

Přírůstková replikace dat v IRI Workbench

Náš první článek o replikaci dat v grafickém uživatelském rozhraní IRI Workbench pro NextForm (edice DB) nebo Voracity demonstroval, jak kopírovat a transformovat data při jejich přesunu z Oracle na dva cíle. Tento článek ukazuje, jak postupně synchronizovat produkční a záložní tabulku v samostatných databázích.

V tomto případě je produkční databáze Oracle, záložní databáze MySQL a tabulka se v obou případech jmenuje SG_TRANSACTIONS. Existují řádky transakce, které obsahují číslo účtu, typ transakce, datum transakce a částku transakce s názvy sloupců ACCT_NUM, TRANSTYPE, TRANS_DATE a TRANS_AMOUNT.

Všimněte si, že tabulky můžete také vytvářet definováním a prováděním příkazů v souborech SQL v rámci IRI Workbench.

Spusťte průvodce

V IRI Workbench existují průvodci, které lze použít k vytvoření skriptu úlohy migrace, který zkopíruje řádky z jedné tabulky do druhé. V tomto případě budeme replikovat data z ORACLE tabulky SG_TRANSACTIONS do MySQL tabulky SG_TRANSACTIONS.

Dříve jsem vytvořil projekt Replikace. Měli bychom na tuto složku kliknout v Projektovém průzkumníku pro zvýraznění projektu před spuštěním průvodce. To zajistí, že průvodce uloží můj skript úlohy do této složky. Naše úloha replikace bude vytvořena pomocí průvodce dostupného z Nabídky dalšího formuláře na panelu nástrojů.

Chcete-li spustit průvodce, klikněte na šipku vedle ikony NextForm. Všimněte si, že v předchozím článku jsme použili New Reformat Job průvodce, protože jeden z cílů byl filtrován, maskován a přeformátován. Protože se v tomto případě jedná o přímou replikaci, použijeme Novou úlohu migrace jednoho zdroje místo toho průvodce.

Na první obrazovce průvodce s názvem Soubor specifikace úlohy , ověřte, že Složka pole má hodnotu Replikace (název projektu). V Název souboru pole zadejte název skriptu úlohy, který vytváříme; Nazval jsem to SG_Transaction_Transfer. Vyberte Vytvořit skript přepínač a poté vyberte Další přejděte na Migraci z jednoho zdroje okno.

V části Informace o zdroji , vyberte možnost Procházet vedle tlačítka Zdroj pole. Nyní vyberte ODBC přepínač v Zdroj dat a klikněte na tlačítko Procházet tlačítko.

V Výběr tabulky ODBC vyberte DSN z rozevíracího seznamu; potom vyberte Název tabulky a klikněte na OK . ODBC se používá k připojení k našim zdrojovým a cílovým databázovým tabulkám při přesouvání dat pomocí našich pracovních skriptů. Klikněte na OK znovu pro návrat k Migraci z jednoho zdroje okno.


Procházení nebo objevování zdrojových metadat

Všechny programy IRI vyžadují rozvržení metadat pro vaše zdroje dat a cíle ve formátu standardního souboru definice dat (DDF). Tato rozvržení se obvykle vytvoří jednou, uloží se centrálně a použijí se jako reference pro vaše mapování a modely.

Pokud již byl soubor metadat vytvořen, pak v části Informace o zdroji , klikněte na tlačítko Procházet vedle tlačítka Metadata pole. V Otevřít metadata v okně Odpovídající položky vyberte soubor metadat pole, které definuje sloupce v SG_TRANSACTIONS stůl. Poté klikněte na OK pro návrat k Migraci z jednoho zdroje okno.

Pokud potřebujete vytvořit soubor metadat nyní, vyberte Objevit knoflík. Tím se dostanete do Nastavení Možnosti okno. Ověřte, že složka je /název vašeho projektu /metadata. V Název souboru zadejte název souboru metadat a klikněte na Další . V části Identifikace zdroje dat ověřte správnost vyplněných polí a klikněte na Další přejděte do Prohlížeče a editoru dat pole okno.

V horní polovině okna jsou názvy sloupců a případný vzorek záznamů v tabulce. Ve spodní polovině je pole Název pro použití ve skriptu úlohy ekvivalentní data IRI Typ pro původní databázi Typ zdroje a řadové Pozice pole (sloupec). Klikněte na Dokončit .


Nyní jste zpět v Migraci z jednoho zdroje okno.

Definujte cíl

V části Cílové informace , vyberte možnost Procházet vedle pole pro Cíl . Nyní v Cíl dat v okně vyberte ODBC přepínač a klikněte na Procházet vedle ODBC pole. Poté vyberte výstup DSN a Název tabulky (Twister MYSQL a SG_Transactions) v Výběr tabulky ODBC okno. Nezapomeňte zaškrtnout políčko Kopírovat metadata ze zdroje . Klikněte na OK a klikněte na OK znovu.

Všechny potřebné informace jsou nyní v Migraci z jednoho zdroje okno. Klikněte na Dokončit .


Skript řídicího jazyka NextForm SG_Transaction_Transfer.ncl je vytvořen a lze jej prohlížet v barevně odlišeném textovém editoru IRI Workbench s ohledem na syntaxi.

Replikovat nové záznamy

Tento skript zkopíruje všechny řádky, které existují v SG_TRANSACTIONS tabulky v Oracle na stejně pojmenovanou tabulku v MySQL. Ale po prvním spuštění chceme pouze zkopírovat nové řádky do záložní tabulky. Abychom toho dosáhli, musíme do vstupní části skriptu úlohy přidat příkaz /QUERY, takže při každém spuštění úlohy (ad hoc nebo naplánované) budou zpracovány pouze nejnovější řádky.

Chcete-li upravit skript z editoru IRI Workbench, klepněte pravým tlačítkem myši do těla skriptu. Vyberte IRI a poté Upravit zdroje . V části Zdroje dat dialogovém okně vyberte Upravit možnosti zdroje .

Ve spodní části Možnosti zdroje okno je dotaz pole. Zde přidáme příkaz SQL dotazu, který vybere pouze nejnovější řádky z tabulky Oracle. Budeme předpokládat, že se jedná o proces na konci měsíce. Níže uvedený příkaz QUERY filtruje řádky po dobu jednoho měsíce, ale mohli bychom si vybrat libovolný interval. Namísto použití konkrétních dat ve skriptu bychom mohli k určení intervalu použít také proměnné prostředí.

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

Nyní klikněte na OK a poté Dokončit aktualizovat a uložit náš původní skript úlohy vytvořený průvodcem s novým příkazem /QUERY uvnitř:

Při prvním spuštění skriptu by měl být příkaz /QUERY zakomentován, protože chceme, aby byly zkopírovány všechny záznamy. Poté chceme spustit příkaz /QUERY, abychom replikovali řádky z intervalu dat, který ještě nebyl zkopírován do záložní tabulky.

Tuto úlohu lze spustit z grafického uživatelského rozhraní nebo příkazového řádku, kde je licencován spustitelný soubor NextForm DB edition, Voracity nebo CoSort (sortcl).

Zde je ukázka řádků v produkční tabulce:

A zde je ukázka řádků v tabulce záloh před spuštěním zálohy na konci prosince. Řádky v této tabulce tedy aktuálně procházejí pouze koncem listopadu.

Po spuštění naší úlohy replikace s příkazem /QUERY se do zálohovací tabulky přidají pouze prosincové záznamy. Všimněte si, že v produkční tabulce je jeden lednový záznam, ale tento záznam nebyl zkopírován do záložní tabulky, protože hodnota data pro tento řádek je mimo náš zadaný rozsah.

Ke každému cíli je také možné přidat maskovací funkce na úrovni sloupců, jak ukazuje úloha níže:

Podívejte se na tento příklad replikace mezi Oracle a MongoDB. Potřebujete-li pomoc s replikací dat na jednorázovém nebo opakovaném základě, zašlete e-mail na adresu [email protected].


  1. execSQL:je bindargs lepší?

  2. Nesprávná syntaxe poblíž ')' volání uložené procedury s GETDATE

  3. Změnit typ pole varchar na celé číslo:nelze automaticky přetypovat na typ celé číslo

  4. Oracle Indexy a typy indexů v oracle s příkladem