2015-10-26 21 views
5

Chciałem wykonać kod R z pakietu SSIS. Jak mogę dodać krok kontroli danych, który wykonuje kod R? SSIS obsługuje tylko vb.net i asp.net.Wykonanie skryptu R z pakietu SSIS

SSIS ma wiele transformacji danych, ale R jest bardzo przyjazny, jeśli chodzi o manipulacje danymi.

Chcę uruchomić kod R ze skryptów SSIS lub w jakiś inny sposób. Zasadniczo próbuję zintegrować R w procesie ETL.

Chciałem wyodrębnić dane (E) z pliku CSV.

Przekształć (T) w R i załaduj (L) w bazie danych Microsoft. Czy można uzyskać ten przepływ pracy w pakiecie SSIS, wykonując skrypt R używając elementów sterujących SSIS? Dzięki!

+1

Witamy w stackoverflow (SO)! Bardziej prawdopodobne jest, że będziemy w stanie Ci pomóc, jeśli stworzysz powtarzalny przykład pasujący do Twojego pytania. Coś, z czego możemy pracować i użyć, aby pokazać, jak to możliwe, aby rozwiązać twój problem. Możesz rzucić okiem na [ten post SO, jak zrobić świetny powtarzalny przykład w R] (https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) . Co więcej, pomocne byłoby również opisanie tego, co już wypróbowałeś. –

+0

Na razie SSIS akceptuje tylko skrypt VB i język C#.Jeśli chcesz załadować csv do bazy danych, możesz bezpośrednio użyć zadania przepływu danych, a menedżery połączeń powinny być dynamiczne, a nie statyczne –

Odpowiedz

5

Oto kilka sposobów integracji R z procesem ETL.

  1. surowy, szybki i brudny - Execute Process zadania w przepływ sterowania. Byłoby to podobne do wywoływania RScript z wiersza poleceń. Najprawdopodobniej dokonasz transformacji, zapiszesz ją w pliku na dysku i pobierzesz tę nazwę pliku z Zadanie wykonania procesu, aby można było je przenieść do zadania Przepływ danych. Plusem jest utrzymywanie R w czystości i oddzielenie od C#/VB.

  2. Zintegrowany poprzez Rdotnet - można użyć RDotNet library (wierzę, że nie starał się go zintegrować). Będziesz musiał zarejestrować biblioteki DLL w GAC, a następnie możesz pracować z obiektami .NET w skryptach SSIS lub call R scripts directly.

  3. Zintegrowany z SQL Server 2016 - Microsoft dodał obsługę R dzięki rozszerzonym procedurom przechowywanym. Wywołujesz skrypt R za pośrednictwem przechowywanego procesu i używasz kwerendy sql dla danych wejściowych i możesz przechowywać wynik. Zobacz more detail here. Oznaczałoby to wykorzystanie zadania Execute SQL w SSIS.

0

Mam nadzieję, że to pomaga lub kogoś innego, ponieważ chcesz przetwarzania danych może przynieść zbiór danych do pliku CSV (throught zadanie przepływu danych), uruchom plik za pomocą: „Rscript” (może to być wykonywany jako polecenie z zadaniem procesu wykonywania), wewnątrz pliku musisz przesłać zestaw danych do ramki danych (wywołując go za pomocą funkcji readLines()), a następnie wykonaj wszystkie matematyczne/obliczenia, których zażądasz, zapisz dane lub wyniki obliczeń w plik CSV odczytuje go ponownie z SSIS.

To nie jest eleganckie rozwiązanie, ale działa :), Przynajmniej do czasu, gdy Microsoft zacznie integrację R jako proces sterowania/przepływu danych.

CYA

PS. tutaj, jak wykonać pliki z wiersza poleceń: Run R script from command line

Powiązane problemy