- Zákazník provozoval starý HR systém v podobě DOS aplikace (FoxPro a DBF soubory)
- Nyní migruje na nový systém s MS SQL
- Pro jednorázový load historických dat do DWH máme k dispozici sady dbf souborů obsahující zazálohované DBF files po každé měsíční uzávěrce
- Pro nahrání dat do L0 vrstvy (Oracle DB) použijeme ODI 11g
- Pro přístup k DBF souborům využívám JDBC driver - bohužel jsem zatím nenašel žádný opensource, takže zatím trial, který se dá stáhnout z http://www.hxtt.com/dbf.zip (alternativou postupu může být např. konverze dbf souborů do xml souborů, na to prý existují také utility, ale protože máme souborů mraky, tak jsem chtěl co nejvíc ušetřit práci)
- Prováděno na Win7 (ODI + standalone agent)
Příprava ODI
JAR obsahující JDBC driver pro DBF (v mém případě DBF_JDBC30.jar) je potřeba nahrát pro ODI Standalone Agenta do
Příprava DBF Serveru
JDBC umí fungovat i jako remote server, pro moji potřebu mi však stačilo následující:
- Na fyzicky stejném serveru, kde běží ODI Studio a Standalone Agent (jinak umístit stejně na obě místa, kvůli selektivnímu reverzu metadat) vytvořit adresář v rootu s názvem DBF_SERVER
- Vytvořit podadresář DATA, do kterého jsou nahrány pokusná data (adresářová struktura je v sql pak adresovatelná pomocí /)
- Překopírovat testovací dbf soubory (*.dbf)
Definice Fyzické architektury v ODI
- Spustit ODI Topology Manager
- Technologie DBase > nový Data Server
- Name: např. HR_MZDY_dbf
- JDBC driver: com.hxtt.sql.dbf.DBFDriver
- JDBC URL: jdbc:DBF:/D:/DBF_SERVER/DATA (cesta do adresáře, kde jsou dbf soubory)
- Vytvořit defaultní fyzické schéma > New Physical Schema a jen uložit
- POZOR Nutné provést reverse datových typů na uzlu DBase pravé tlačítko a volba datatypes reverse engineering, jinak Vám to nebude správně reversovat datové typy (více viz. krok 9)
- Stejně nutné je nastavit konverzí převody datových typů (např. VARCHAR v DBase, jak se bude konvertovat do Vaší cílové DB), více viz. krok 10 a 11
Definice Logické architektury v ODI
- Technologie Dbase > nové Logické Schema, např. název HR_OLD_DATA, v kontextu nastavit namapování na fyzické schéma HR_MZDY_dbf_Default
Reverse metadat dbf souborů v ODI Designeru
- Založte nový Model:
a. Name: např. HR_OLD_DATA
b. Technologie: Dbase
c. Logické schéma: HR_OLD_DATA - Reverse Engineer – standard
- Selective Reverse-Engineering
- V modelu se zobrazí reversované tabulky a sloupce
- Pak už je můžete přetahat do L0 (pozor: má data neobsahovala PK constraint, tj. pro využití integrační strategie "Incremental Update" je potřeba přidat PK do cílových tabulek a nebo v Interface nastavit "Update key" ručně).
- V Interface použijte LKM SQL To Oracle a už to jede…
Pokud by jste někdo našli free JDBC driver, který bude s ODI fungovat, dejte do komentáře k článku, bude se nám hodit.
Petr Šimbera (BI/DW Architekt - Freelancer)
1 komentář:
Nakonec, protože šlo o stovky DBF souborů jsme našli zajímavou utilitku "dbf loader to Oracle" od Alexey Kravets. Trosku jsme si ji upravili, je to ceckovy kod a uz to bezelo jako po dratkach...sice bez ODI, ale hodne rychle...Pokud ma nekdo zajem, protoze je to upraveny opensource, mohu poskytnout.
Petr Šimbera
Okomentovat