Dzi艣 pomarudz臋 troch臋 w temacie ODI.
ODI, o czym z pewno艣ci膮 wszyscy doskonale wiedz膮, to narz臋dzie do ELT. ELT z kolei to taki jakby ETL tylko ma L i T zamienione miejscami.
Na razie wszystko jasne...
Tak czy siak, nadzia艂em si臋 niedawno na interesuj膮cy b艂膮d w ODI, kt贸ry dzi艣 opisz臋.
Przez "interesuj膮cy" rozumiem tak naprawd臋 "interesuj膮cy dla garstki popapra艅c贸w nie maj膮cych nic lepszego do roboty tylko ogl膮danie b艂臋d贸w ODI".
Jak ka偶de narz臋dzie do pompowania danych z miasta A do miasta B, ODI umo偶liwia mapowanie kolumn 藕r贸d艂owych na kolumny docelowe. Niestety, w odr贸偶nieniu od takiego na przyk艂ad SSIS, tutaj nie mamy mo偶liwo艣ci zadania dowolnego zapytania 藕r贸d艂owego w postaci SQL, i nawet najbardziej z艂o偶on膮 logik臋 musimy zaimplementowa膰 na piechot臋, przeci膮gaj膮c tabele i tworz膮c wszystkie JOIN-y, filtry i formu艂y sposobem myszowym. Mo偶na to oczywi艣cie w niekt贸rych przypadkach obej艣膰 zapisuj膮c zapytanie SQL u 藕r贸de艂ka w postaci widoku, ale to jednak nie to samo, bo wymaga specjalnych uprawnie艅 po stronie systemu 藕r贸d艂owego, kt贸rych czasem nie mamy.
Tak czy siak, mia艂em niedawno ca艂kiem roz艂o偶ystego paj膮ka z dziesi臋ciu tabel, z czego dwie to by艂y typowe przelotki, mapuj膮ce identyfikatory rekord贸w 藕r贸d艂owych na docelowe. Z jakich艣 bli偶ej niewyja艣nionych przyczyn w pewnym momencie ODI zacz臋艂o generowa膰 JOIN-y dla tych tabel w spos贸b nieprawid艂owy. Za艂贸偶my, 偶e przelotka P1 linkuje si臋 po prawej stronie z tabel膮 T1 po kolumnach P1.C11 = T1.C12, a przelotka P2 z tabel膮 T2: P2.C21 = T2.C22. Tak to wygl膮da艂o na obrazku, jednak wygenerowany kod SQL zamienia艂 kolumny "na krzy偶", a wi臋c wygl膮da艂 o tak: P1.C11 = T1.C22 oraz P2.C21 = T2.C12. Oczywi艣cie w momencie wykonywania ca艂o艣膰 sz艂a w maliny z powodu nieistniej膮cych kolumn (w tabeli T1 nie ma kolumny C22 i na odwr贸t), i nijak nie sz艂o wyja艣ni膰 temu upartemu kawa艂kowi z艂omu, 偶e robi na krzy偶.
Rozwi膮zanie okaza艂o si臋 rzecz jasna proste: nale偶a艂o skasowa膰 JOIN-y mi臋dzy P1 a T1 oraz mi臋dzy P2 a T2, a nast臋pnie utworzy膰 je od nowa. Kolega, kt贸ry si臋 w tym na pocz膮tku babra艂, nie wpad艂 na tak oczywisty pomys艂 i wezwa艂 mnie awaryjnie do pomocy. Mi si臋 uda艂o wpa艣膰 na rozwi膮zanie ca艂kiem przypadkiem, ale udawa艂em, 偶e to przecie偶 oczywiste i zn贸w wysz艂o na to, 偶e jestem guru 馃檪 Grunt to umie膰 si臋 sprzeda膰...
No dobra, najciekawsze ju偶 za nami. Jeszcze tylko kawa艂 i ko艅czymy:
Prawdziwy macho nie je miodu. Prawdziwy macho 偶uje pszczo艂y.
Je偶eli chcesz do komentarza wstawi膰 kod, u偶yj sk艂adni:
[code]
tutaj wstaw sw贸j kod
[/code]
Je偶eli zrobisz liter贸wk臋 lub zmienisz zdanie, mo偶esz edytowa膰 komentarz po jego zatwierdzeniu.