Jak jsem již popisoval v článku „
ODI – Jak udělat textový extrakt z libovolné databáze“, existují Integrační Knowledge moduly, které výše zmíněné umožňují. Jejich hlavní výhoda spočívá v tom, že přímo volají databázové utility pro „bulk unload“ dat z databáze do textového souboru. Jelikož jde o Integrační Knowledge moduly, tak pro jejich použití musí být vytvořen
Interface s mapováním, nemluvě o tom, že zdroj i cíl musí být zadefinován v
Topologii a v
Modelu. Jde sice o více práce, ale přinese Vám to ovoce v podobě kompletní
Lineage.
V ODI existuje ještě jiná možnost jak generovat textové extrakty z libovolné databáze, a to bez nutnosti zadefinování Topologie, Modelů a vytváření Interfaců. Tou možností je OdiSqlUnload - výkonná bulk utilita pro unload / extrakt dat z různých RDBMS do souboru (flat file nebo XML).
OdiSqlUnload lze využívat přímo ve Workflow, v ODI procedurách nebo v Knowledge modulech - například je využíván v LKM SQL to Teradata / DB2 / MSSQL / SAS nebo Sybase.

Jeho použití je velice jednoduché. Drag&Drop si jej vložíte do workflow

, případně manualně napíšete jeho syntaxi:
OdiSqlUnload -FILE=
-DRIVER= -URL= -USER= -PASS= [-FILE_FORMAT=] [-FIELD_SEP= field_sep> | -XFIELD_SEP=] [-ROW_SEP= | -XROW_SEP= row_sep>] [-DATE_FORMAT=] [-ABS=] [-CHARSET_ENCODING=] [-XML_CHARSET_ENCODING=] [-FETCH_SIZE=] [CR/LF | -QUERY= | -QUERY_FILE= ]
a nadefinujete potřebné parametry, jako je název a umístění výstupního souboru, driver, zdrojová databáze, výstupní formát (fixed, delimited, XML), formátování souboru (oddělovače, znaková sada, datum), vstupní SELECT, Fetch Size, ....

UPOZORNĚNÍ: Z důvodu maximální výkonnosti:
- je mnohem lepší nechat veškeré formátování výstupu (oddělovače, formát datumu, kódování, ....) na databázi, tj. místo „select * from table“ použít "select column1 || '~' || column2 from table".
- změnit defaultní hodnotu parametru Fetch Size - počet záznamů, které jsou najednou zapsány do výstupního souboru (výbornou zkušenost mám s hodnotou 100tisíc, ale vše je otázkou RDBMS, OS, dostupné paměti a nastavení runtime parametrů).
Erik Eckhardt.