2013-02-21 25 views
6

tła (przepraszam, że tak długo):R vs Pentaho Łyżka jako narzędzie ETL

Mam za zadanie utrzymywanie ETL, który zbiera różne dane reklamowych, około 20-30 MBs dziennie, a dołącza go do tabel w MySQL. Zewnętrzni wykonawcy zbudowali ETL z Pentaho Spoon (kuchnia, czajnik?). ETL składa się z około 250 zadań i przekształceń (.ktr, .kjb), każdy z około 5 do 25 kroków. Bardzo często zdarza się, że coś dzieje się źle w tym dużym procesie. Odkryłem, że pisanie skryptów R w celu przeprowadzenia transformacji i ładowania jest znacznie wydajniejsze. W rzeczywistości, myślę, że ETL może być zredukowany do znacznie poniżej 1000 linii kodu oprócz połączeń z RMySQL (to jest plyr!). Być może Python zostanie użyty do wyodrębnienia danych z sieci.

Moje użycie R doprowadziło do pewnego oporu. Programiści komputerowi, którzy zaprojektowali ETL, nie znają R, więc nie można by tego nazwać, gdybym odszedł, a ponadto zainwestowano dużo czasu w ETL Łyżki. Również laika może łatwiej obserwować kroki wizualnie w Spoon, niż w skryptach R. Z mojej strony myślę, że grzęźnie ETL. Jednak nie mam dużego głosu w tej kwestii, ponieważ nie mam wykształcenia informatycznego.

Prosimy o komentarz, jeśli masz jakiekolwiek spostrzeżenia na temat poniższych. Należy wiedzieć, że zostały badania tego przez kilka miesięcy i przeczytałem wiele opinii, ale nic tak zwięzły i niezawodny jak zwykle zapewnia SO:

  1. R nie został nazywany przez niektórych jako skalowalne w firmie. Myślę, że odwrotnie, głównie z powodu możliwości logowania. Łyżka ma ograniczone wyniki czystego rejestrowania, podczas gdy wszystkie skrypty R można zatopić w dzienniku. Naprawianie i unikanie błędów w .ktrs jest bardzo uciążliwe, ale łatwe w ustawianiu flag i/lub przeszukiwaniu logu R. Jakieś przemyślenia na ten temat?

  2. To prowadzi do pytania o duże zdjęcie. Jaki jest sens ETL-ów, takich jak Pentaho? Ten post Do I need a ETL? prowadzi mnie do przekonania, że ​​jeśli używasz R lub innego tak zwanego OOL, nie ma powodu, aby mieć narzędzie takie jak Pentaho. Czy ktoś może to potwierdzić, jeśli tak? Naprawdę potrzebuję tutaj drugiej opinii. Jeśli tak, to kto używa narzędzi takich jak Pentaho? Czy to po prostu ludzie bez tła programowania, czy ktoś inny? Widzę sporo pytań Pentaho na SO.

  3. To prawda, że ​​o wiele więcej osób używa R, a nie Pentaho, prawda? Ten http://www.kdnuggets.com/2012/05/top-analytics-data-mining-big-data-software.html sprawia, że ​​tak wygląda. Szczerze mówiąc byłem zaskoczony, że Pentaho był piąty, co sprawia, że ​​zastanawiam się podwójnie, kto używa Pentaho i jeśli moje wątpliwości co do wykorzystania w mojej pracy są niewłaściwie umieszczone.

Dzięki za wszelkie odpowiedzi. Nie mam na myśli żadnej protekcjonalności wobec użytkowników Łyżki lub Łyżki; Jestem po prostu zdezorientowany i potrzebuję opinii zewnętrznych.

+1

Zasugeruj, aby zadać to pytanie dalej na temat quory - to wydaje się być lepszym miejscem do subiektywnej dyskusji/debaty. Myślę, że to świetny temat i że warto się gdzieś zastanowić. – Codek

+0

Interesujące, nie jestem jedynym, który myśli o tym: BARUG chce skupić na nim spotkanie. http://www.meetup.com/R-Users/events/47885552/?a=md1_evn&rv=md1&_af_eid=47885552&_af=event. FWIW, rzuciłem pracę po zaledwie 1 roku, ponieważ nieskuteczność doprowadzała mnie do szaleństwa. Szczęśliwie i myślę, że skutecznie teraz używam R w środowisku startowym. – StatSandwich

+0

Już używam data.table dla procesów ETL w R, jego składnia jest przyjazna, a każde nawiasy DT [,] można porównać do bloku transformacji pod względem ETL. W odniesieniu do pytania 1. można wykonać proces logowania, aby rejestrować wszystko, co chcesz: czas transformacji, przetworzony nrow, komunikat o błędzie z catched. Po prostu upuść obiekt log_dt (data.table/data.frame) do dbWriteTable. – jangorecki

Odpowiedz

4

R jako narzędzie ETL? To nowy, ale cokolwiek pływa po twojej łodzi.

Powiedziałbym jednak, że jeśli uda ci się uzyskać 250 zleceń i transformacji poniżej 1000 linii R, powiedziałbym, że Twój ETL jest źle napisany.

Wraz z tym trzeba pomyśleć o wsparcie i skalowalności. Mogę sobie wyobrazić, że byłoby to o wiele łatwiejsze dzięki narzędziom graficznym, takim jak Łyżka, a nie kod R.

Osobiście uważam, że jesteście nierozsądni, a pytanie, które zadajecie, jest słabo napisane, ale to inna argumentacja.

Jeśli chodzi o twoje punkty, rejestracja PDI jest bardzo dobra i możesz logować się w dowolny sposób, wszystko do jednej dużej tabeli bazy danych, jeśli chcesz skonsolidowany dziennik.

ETL nie odejdzie, nawet z nadejściem miłości do niestrukturalnych pul pamięci masowych, takich jak HDFS, pomyśli również o analizie danych wykonanej poza R, jeśli chcesz raportować lub OLAP nad najwyższymi danymi, to nadal będzie potrzebuję transformacji niezależnie.

Czy to prawda, że ​​więcej osób używa R zamiast Pentaho? Jakie to pytanie? Według Pentaho zakładam, że masz na myśli PDI? Jak można to porównać? Narzędzie analizy danych kontra narzędzie ETL i chcesz policzyć użytkowników? co? Jeśli z drugiej strony masz na myśli R vs Pentaho jako całość, to zgaduję, że nie. Patrzysz na raport o R vs Weka i czynisz go dopasowanym do twojej argumentacji ETL. To nie jest pranie w miesiącu niedziel.

== EDYCJA == OK, więc masz obecnie około 1000 linii R & kodu Pythona. W miarę, jak wymagania Twoich szefów rozszerzają się powoli, wraz z upływem czasu, a także dlatego, że próbujesz dotrzymywać terminów, nowy kod jest napisany tak czysto lub tak dobrze, jak dokument, który obecnie posiadasz. Z biegiem czasu liczba ta rośnie do 5000 linii plus kilka skryptów Pythona. Pewnego dnia zostaniesz potrącony przez autobus i pojawi się jakaś nowa osoba, która zajmie się twoim kodem ... gdzie zaczynają, jak wprowadzają zmiany?

Praktycznie każdy, kto ma odrobinę doświadczenia w danych, może dokonać zmiany w ETL PDI, jeśli będzie to wymagane. Gdzie to zajmie trochę z dostateczną dogłębnością wiedzy R, aby dokonać zmian w tym, co zrobiłeś.

Narzędzia ETL zostały zaprojektowane tak, aby były szybkie i łatwe w użyciu, oferują także o wiele więcej, niż R może zapewnić łączność danych z różnymi systemami (na przykład bez bazy danych lub plików), ale wydaje mi się, że właśnie dlatego ludzie uciekają się do pythona itp. Powiedzieli, że jest miejsce dla obu, istnieje wtyczka R dla PDI kopiącej w społeczności, którą widziałem.

Ponadto widziałem wystarczająco dużo TSQL do migracji ETL przez lata, aby wiedzieć z doświadczenia, że ​​nawet jeśli utrzymanie ETL w kodzie może wydawać się praktyczne w krótkim czasie, w dłuższej perspektywie to tylko przynosi więcej bólu .

Z drugiej strony, jeśli można zakodować 250 przekształceń PDI w dół do 1000 linii R, to Twój ETL prawdopodobnie zostanie nadpisany przez zły projekt poprzednika.

Jeśli chcesz, żebym wyraził opinię na temat twojej istniejącej struktury PDL PDI, można to również zaaranżować.

Tom

+0

Dzięki za odpowiedź, Tom. Wiedziałem, że moje pytanie nie zostało napisane dobrze, nawet z tygodniami, w których robiłem to w mojej głowie.Masz całkowitą rację, że jestem nierozsądny - nie mam zielonego pojęcia, co robię! Chodzi o to, że to moja pierwsza praca. Wiem, jak używać R. Nigdy nie korzystałem z narzędzia ETL. Wygląda na to, że R robi to, co ma robić narzędzie ETL, oraz oczywiście analizę danych. Opisz, dlaczego fraza "R jako narzędzie ETL" jest szalona. Mimo wszystkich moich badań nie wiem, co to jest narzędzie ETL w porównaniu z R i Pythonem. Proszę doradzić, jeśli potrzebujesz więcej informacji. – StatSandwich

+0

Będę edytować moją odpowiedź .... –

+0

Zgadzam się, że brak dokumentacji w narzędziach ETL nie jest tak bolesny jak brak dokumentu w R, ale robiąc to w R będziesz miał więcej czasu na napisanie lepszego dokumentu, lepsze debugowanie możliwości, łatwiejsze opracowywanie żądań zmian. Możesz uporządkować swój kod w dobrze udokumentowane pakiety, mieć dobrą wersję, a także łatwo zmieniać repozytoria między DEV/QA/PROD. – jangorecki