Generátor kódu pro Informatiku – GTL Generátor

Snižuje náklady na vývoj automatizovaným generovaním ETL podle uživatelem definovaných šablon:

  • Zdrojové a cílové objekty pro transformovaná data (Informatica PowerCenter sources and targets).
  • Mapování s transformacemi.
  • Sessions a workflows pro vygenerovaná mapování.
  • Pomocné soubory pro mapování (parametrické soubory a definiční plány pro externí komponenty).
  • SQL kód (BTEQ skript, uložené procedury) na základě vstupu z datového modelu.

Výsledkem generování jsou Informatica PowerCenter objekty uložené ve formátu XML, které je možné importovat přímo do Informatica PowerCenter Repository.

Architektura nástroje

GTL Generator tvoří tři základní komponenty:

  • Vlastní aplikace GTL Generator (v jazyce java) instalovaná na pracovní stanici.
  • Mapping Architect for Visio (součást instalace IPC).
  • Úložiště metadat aplikace v databázi Oracle nebo PostgreSQL.

Metadata pro SW nástroj GTL Generator mohou být uložená na některém stávajícím databázovém serveru, není proto potřeba mít vyhrazený speciální databázový server.
Aplikace GTL Generator se provozuje lokálně na PC, na kterém musí být naistalovány klientské nástroje IPC a MS Visio. Aplikace vyžaduje přístup do repozitáře IPC přes klientské nástroje (command line nástroj pmrep.exe).

Hlavní funkce

  • IN data – správa dat ve vstupní vrstvě aplikace. Umožňuje načítání, prohlížení a mazání datových struktur v rámci verze datového modelu.
  • DS data – správa datových struktur ve vnitřní vrstvě aplikace, opět v rámci verze datového modelu.
  • WRK data – správa pracovních datových struktur. Umožňuje připravit jednu plnou verzi datového modelu nebo rozdíl dvou verzí modelu pro následné generování objektů.
  • Zdroje a cíle/Source and Target – generování IPC zdrojů a cílů pro konkrétní verzi modelu.
  • Transformace/Transformations – správa šablon IPC objektů a jejich generování.
  • Textové šablony/Text Templates – správa textových šablon a generování textů/skriptů.

IN data

Načtení dat do vstupní vrstvy je složeno ze dvou kroků:

  • Načtení datových struktur pro konkrétní verzi modelu.
  • Načtení historizací pro konkrétní verzi modelu.

Datovou strukturou je v tomto případě míněna tabulka a její definice – seznam sloupců, omezení, klíče, indexy atp. S pomocí importovaných definic všech používaných objektů jsou generovány zdroje a cíle. Definice jsou obecně vztaženy k verzi datového modelu, proto je možné provádět porovnání verzí a aktualizovat zdroje a cíle v případě změn modelu.
Načtení datových struktur se provádí z textového souboru pevné struktury. Jako oddělovač se použije středník, znaková sada je volitelná.
Historizace datových entit se provádí při plnění jádra datového skladu – targetu. Import historizací do generátoru vytváří vrstvu metadat, která se využívá v šablonách mapování určených pro plnění jádra skladu.
Nahrání dat se provádí z textového csv souboru pevné struktury. Jako oddělovač se použije středník, znaková sada je volitelná.

Obrazovka s tabulkami načtenými ve vabraném datovém modelu.
InData

DS data

Vstupní vrstva obsahuje vstupní data pořízená uživatelem pro jednotlivé verze modelu. Pro plnou funkčnost aplikace se na záložce DS Data data upraví interními procedurami.

Pracovní (wrk) data

Pracovní data jsou data interně zpracovaná aplikací generátor a slouží jako:

  • Podkladová data pro databázové objekty vytvořené v uživatelském schématu – schéma s definičními právy objektů pro uživatele. Databázové objekty jsou potom zdrojem pro hodnoty parametrů šablon.
  • Data pro generování zdrojů a cílů.

Prakticky jde o část datových struktur a dalších metadat, která se vytvoří v závislosti na zvoleném pracovním módu. Existují dva druhy pracovního módu:

  • FULL- pracovní data obsahují všechna metadata pro jednu konkrétní verzi modelu.
  • DIFF- pracovní data obsahují pouze rozdíl mezi dvěma verzemi modelu. Výhodou je, že generování zdrojů, cílů a případně i hodnot parametrů se provádí jen nad novými nebo změněnými objekty.

Obrazovka v pravovním módu FULL se seznamem nových nebo změněných tabulek.
WrkData

Zdroje a cíle

Přímo generovanými objekty IPC jsou zdroje a cíle. Generátor je na základě vybraného pracovního módu:

  • Generuje do xml souboru na zvolené cestě.
  • Importuje do repozitáře IPC.

Transformace

Transformace je obecná, logicky seskupená sada šablon. Obsahuje šablony pro workflow, mapping, session nebo i parameter file (včetně parameter section). Šablona se vytváří ze vzorového objektu (mapping, session, workflow) vyexportovaného z IPC. Typ šablony odpovídá typu exportovaného objektu. Schematicky je možné vytvoření šablony definovat jako následující sled kroků:

  • Export vzorového objektu z IPC (xml soubory).
  • Import objektu do generátoru, v případě mapování do aplikace Mapping Architect for Visio.
  • Nastavení proměnných atributů objektu – parametrů (u mapování se provádí v aplikaci Mapping Architect for Visio).
  • Ukončení definice šablony.

Obrazovka s výběrem a definicí parametrizovaných atributů šablony.
TemplateParameterDefinition

Import a export hodnot paramterů

Předpokladem pro generování objektů je import hodnot pro parametry příslušné šablony. Existují dva způsoby importu metadat:

  • Z textového souboru formátu csv.
  • Z databázového view vytvořeného v uživatelském schématu.

Příklad textového souboru s hodnotami parametrů.
ImportParameterValues
Export je operací, kterou je možné s výhodou použít při opravě již jednou importovaného souboru nebo při vytváření souboru pro jinou šablonu, ale s podobnými parametry.

Generování a imporptování IPC objektů

Generování objektů je finální operací po vytvoření všech potřebných šablon a existuje ve variantách

  • Generuje se do xml souboru.
  • Importuje do repozitáře IPC.

Textové šablony

Textové šablony využívají technologii Apache Velocity a jsou integrované v generátoru. V rámci generátoru se šablony používají například v oblasti SQL dotazů používaných v ETL transformacích. Obvykle se jedná o shodné SQL dotazy/skripty, které se liší pouze v názvech tabulek, seznamu sloupců, spojovacích podmínkách atp. Takové SQL dotazy jsou parametrizovatelné a tedy vhodné pro generování.

Parametry v textové šabloně/skriptu.
TextTemplate