Wybór pomiędzy Oracle PL/SQL a komercyjnym narzędziem ETL
Przed implementacją środowiska hurtowni danych w przedsiębiorstwie należy sobie odpowiedzieć na pytanie czy korzystniej będzie wykorzystać już posiadane technologie, czy kupić nowy produkt ETL „z półki”. W firmach, które korzystają z bazy danych Oracle zagadnienie to staje się pytaniem czy użyć PL/SQL do przetwarzania danych czy też zakupić produkt ETL typu Informatica Powercenter lub Datastage.
Przed podjęciem decyzji o zastosowanej technologii ETL należy rozważyć wszystkie „za” i „przeciw” i dokonać szczegółowego rachunku kosztów.
Zalety i wady wykorzystania Oracle PL/SQL jako narzędzia ETL:
koszty – PL/SQL jest dostarczany wraz z licencją bazy danych Oracle i może zostać wykorzystany bez dodatkowych kosztów licencji oraz bardzo często bez dodatkowych nakładów na dodatkowe serwery czy rozszerzenie istniejących.
Należy jednak pamiętać o tym, że implementacja procesu ETL w PL/SQL z pewnością pochłonie znacznie więcej czasu i zasobów ludzkich. Dotyczy to zarówno fazy wdrożenia, jak i w późniejszym czasie utrzymania i rozszerzania funkcjonalności.
Do kosztów można zaliczyć również fakt, że aby zdobyć gruntowną wiedzę z oracle PL/SQL, wymaga to wielu miesięcy nauki i projektanci rozwiązania muszą mieć solidne podstawy informatyczne. Nauka narzędzia ETL typu Datastage lub Informatica odbywa się podczas 2-3 kilkudniowych szkoleń i po takich szkoleniach projektanci mogą zacząć tworzyć złożone systemy przetwarzające dane. Deweloperzy ETL nie muszą koniecznie posiadać niskopoziomowej wiedzy IT z języków programowania i pisania kodów.
Z drugiej strony, konsultanci oraz źródła wiedzy na temat Oracle PL/SQL są dużo łatwiej dostępne i jest ich znacznie więcej, co z całą pewnością przemawia na korzyść za technologią Oracle.
czas i nakłady pracy – ten czynnik jest bezpośrednio związany z kosztami. Komercyjne narzędzie ETL z reguły zawiera w sobie cały “szkielet” aplikacji, czyli panel administracyjny, graficzny interfejs użytkownika, moduł tworzenia dokumentacji, zarządzanie codziennym przetwarzaniem danych, obsługę błędów, moduł logów i raportowania, zarządzanie użytkownikami, połączenia do różnych źródeł danych, pluginy, itp. W PL/SQL większość z wymienionych powyżej elementów musi zostać zaprogramowana manualnie, co znacznie może zwiększyć czas implementacji wdrożenia.
elastyczność – aplikacja ETL jest zbiorem zdefiniowanych przez producenta elementów przetwarzania i dosyć trudno zwiększyć jej możliwości i poradzić sobie w sytuacji, gdy wymagane przetwarzanie nie do końca zgodne jest z koncepcją narzędzia ETL. Przykładowo, gdy wymagane jest przetwarzanie nietypowych plików (jak w formacie EDI, EPIC) i przetwarzanie to ma się odbyć w nietypowy sposób, to z pewnością rozwiązanie w PL/SQL będzie dużo łatwiejsze i nieograniczone do dalszego rozwoju w przyszłości.
wydajność – jeżeli w firmie jest używana bazy danych Oracle, dla której natywnym językiem programowania jest PL/SQL, to z pewnością przetwarzanie sterowane tym językiem będzie wydajniejsze od narzędzia ETL. Nie ma szybszej metody przetwarzania danych od dobrze zoptymalizowanych zapytań SQL, które przetwarzają dane w obszarze tej samej technologii. Do tego dochodzi fakt, że narzędzie ETL przeważnie jest zainstalowany i działa na innym serwerze niż serwer bazy danych i przetwarzanie jest dodatkowo spowolnione przez konieczność przesyłu danych przez sieć.
integracja - komercyjne narzędzia ETL mają możliwość integracji z różnymi systemami, w tym łączenia się równolegle do baz danych różnych producentów. Są też zintegrowane z systemem operacyjnym, mają obsługę FTP, gotowe pluginy do systemów ERP/CRM. PL/SQL brakuje większości z tych możliwości i możliwości te muszą być uzupełniane poprzez użycie innych rozwiązań zewnętrznych.
Wniosek rozważań na temat wyższości PL/SQL nad ETL i odwrotnie jest taki, że nie ma łatwej, jednoznacznej odpowiedzi na pytanie które podejście jest lepsze. Najważniejsze jest, aby przeanalizować dokładnie potrzeby przedsiębiorstwa, przeliczyć koszty, założyć cele do osiągnięcia i wtedy dopiero dokonać wyboru pomiędzy ETL a PL/SQL.