Progress OpenEdge Change Data Capture (CDC) je sledovací mechanismus na úrovni OpenEdge databáze umožňující podle stanovených pravidel zaznamenávat změny v databázových tabulkách. Tato vlastnost databáze byla uvolněna s verzí OpenEdge 11.7.

Change Data Capture je nový nadstavbový produkt v OE 11.7. Lze jej zakoupit samostatně nebo společně s licencí OE Advance Enterprise RDBMS. Syntaxe OpenEdge SQL, OpenEdge ABL a nástroje OpenEdge Management, OpenEdge Explorer a dalších byly obohaceny o podporu CDC.

Mezi hlavní znaky CDC patří:

Univerzálnost

    • záznamy o změnách jsou ukládány ve stejné databázi
    • záznamy o změnách jsou ukládány v relační formě
    • záznamy o změnách jsou dostupné standardními prostředky SQL, ABL

Dobrá škálovatelnost

    • pravidla umožňují určit tabulky i jejich vertikální podmnožiny (sloupce), jejichž změny budou zaznamenávány
    • data v Change Tables je možné indexovat
    • je možné řídit množství ukládaných změn

Vysoká užitná hodnota 

    • sledování právě a jen požadovaných změn v databázi OpenEdge
    • uložení změn na jednom místě bez ohledu na to, kde se vyskytují originální data
    • vhodný zdroj dat pro nástroje typu ETL (Extract, Transform, Load), DW a jiná datová úložiště
    • jednotná konfigurace bez ohledu na způsob přístupu (SQL, ABL)
    • CDC je zcela nezávislý na aplikacích
    • online správa bez nutnosti zastavení databázového serveru

Při aktivaci CDC jsou do základního metaschématu přidány dvě tabulky: _Cdc-Table-Policy a _Cdc-Field-Policy. Tyto tabulky obsahují informace o pravidlech CDC pro tabulky a jejich sloupce. Dále je přidána tabulka "Change Table  Tracking" (_Cdc-Change-Tracking). Při konfiguraci CDC je pak přidána samostaná tabulka pro každou databázovou tabulku, jejíž změny budou zaznamenávány (Change Table).

Tabulka _Cdc-Change-Tracking ukládá záznam všech aktivit týkajících se změn dat v originálních tabulkách podle definovaných pravidel. zachycování změn je implementováno speciálními spouštěči CDC vložených přímo do jádra databázového stroje. Obsahuje také informace o správné sekvenci databázových transakcí. Změnová data jsou uložena pomocí speciálního triggeru do příslušné tabulky Change Table. Optimalizační mechanismus umožňuje omezit množství ukládaných dat podle definovaných pravidel.

Před aktivací funkce CDC je nutné vytvořit oblast pro nové tabulky a indexy. Vzhledem k četnosti změn musí být tento prostor dostatečně dimenzován a důležitým úkolem správce databáze je sledovat růst těchto dat.

Příklad:

Nyní se pusťme do praktické ukázky. Na základě standardní databáze sports2000 vytvoříme databázi připravenou pro CDC. Nezapomeňte, že pro spuštění CDC musí databáze obsahovat oblasti typu II.

Nejprve vytvoříme novou databázi, například myCDC, kopii databáze sports2000 s příkazem:

prodb myCDC sports2000

Následně přidáme oblasti (areas), ve kterých budou data CDC uložena. Nejprve vytvoříme soubor add_CDC.st:

StructureFile.png

Z příkazového řádku příkazem prostrct vytvoříme nové oblasti:

prostrct add myCDC add_CDC.st

prostrct.png

Pro další kroky použijeme webové rozhraní nástroje OE Explorer nebo OE Management. Nejprve vytvořenou databázi zaregistrujeme. Po přihlášení vybereme položku Resources -> Databases. Zobrazí se obrazovka Migration Utility Database, v níž zadáme parametry vytvořené databáze myCDC spolu s číslem portu, např. 1005. Zaškrtneme položku Autostart database broker.

databaseMigration.png

Stiskem tlačítka Submit změny uložíme a spustíme databázový server. Zobrazí se následující obrazovka:

databaseStarted.png

Nyní přejdeme k samotné konfiguraci CDC. V hlavní nabídce klikneme na Database Administration a dále Go to Database Administration

goToDBAdmin.png

V seznamu databází vybereme na databázi myCDC.

DBAdmin.png

Zobrazí se obrazovka s několika pohledy. Na pravé straně je zobrazení Database Features. Funkce Change Data Capture je vypnuta.

DBFeatures.png

Zaškrtneme políčko Enable.

EnableCDC.png

Nyní musíme určit, do jakých oblastí budou data a indexy CDC uložena. Postupně klikneme na ikonu lupy a vybereme oblasti pro uložení dat a indexů.

areaSelection.png

Tlačítkem Enable change data capture spustíme CDC.

startCDC.png

O výsledku budeme informování v následujícím okně:

CDCEnabled.png

Jak jsme u Progressu zvyklí, můžeme zapnout CDC také přímo z příkazového řádku, například:

proutil myCDC -C enablecdc area Track_CDC_Data indexarea CDC_Track_Index

Nyní je databáze připravena k definici pravidel CDC. Jak na to si ukážeme v následném článku a uvedeme několik jednoduchých programů, které ukážou práci s daty z Change Tables..

Autoři: Michal Džmuráň volně dle Piotr Tucholski.


Nahoru