Dobrodošao u svet ETL-a
Ja se više od dvadeset godina bavim problemima migracija i nagledao sam se svakavih gluposti sa raznim bazama. Počevši od toga da automatski alati za migraciju pretvore, na primer, Number polje iz Access baze u VARCHAR2(1) u Oracle bazi, preko gomila gluposti sa punjenjem đubreta na različite druge načine.
Ono što je generalna ideja vodilja kod svih ETL alata - koristi ih ako moraš, bolje je ako sam napišeš. AKo je ikako moguće, ne radi migraciju direktno u produkcionu bazu, uvek je bolje da imaš staging area gde možeš da napraviš različite testove, pronađeš probleme i iskoristiš SQL za dodatne transformacije i testove "zdravlja" podataka.
Ono što je poseban problem su CHAR podaci. Kod datuma i brojeva, problem se relativno brzo nalazi, u samom procesu loada podataka (baza neće pustiti da u nju uđe ono što je neispravan datumski ili numerički podatak). Problem je ako je podatak sintaksno ispravan, a nelogičan.
U CHAR ulazi svaka glupost. Jedino ograničenje je dužina stringa. Osnovno kod stringova je provera da li sadrže non-printing znakove da li su padovani sa leve ili desne strane blenkovima, da li postoji problem mapiranja sa jedne kodne stranice na drugu. Da li možda fajlovi sadrže BOM koji se ne vidi u tvom omiljenom editoru itd. Cela zabava sa CHARom...