2012-10-22 6 views
12

Pracuję nad aplikacją internetową i chciałbym wykonać dwa rodzaje operacji statystycznych/modelujących.Jak zintegrować R w aplikacji internetowej

(1) Analiza wsadowa z danych przechowywanych w zapleczu mojej aplikacji (klaster HBase). Zazwyczaj operacja ta musi być wykonywana regularnie, powiedzmy każdej nocy. Rozmiar danych może przekraczać to, co może być przechowywane w pamięci lokalnej, więc może to wymagać wywołania jakiegoś pakietu obsługującego obliczenia równoległe. (2) W locie wykonanie R uruchamiane przez żądanie użytkownika w interfejsie użytkownika. Typowy przypadek użycia obejmuje prognozowanie małych szeregów czasowych. Użytkownicy mogą wysyłać żądania w tym samym czasie, więc nie powinno być wsparcie dla współbieżności. Wydajność ma ogromne znaczenie, ponieważ użytkownik nie może czekać w nieskończoność na odpowiedź.

Moje pytanie brzmi: jaka byłaby najlepsza kombinacja technologii/pakietu CRAN, aby rozwiązać te dwa problemy? Mój pomysł na tę chwilę jest następujący:

  • Używanie Rserver w połączeniu z klientem Ruby. Alternatywnie, myślę o napisaniu sobie serwera w Javie i użyciu istniejących powiązań R/Java.
  • Używanie RHadoop do obsługi zadań na dużych zbiorach danych.

Widziałem RevoDeployR jest doskonałym narzędziem, ale nie jest open source, prawda?

Dziękuję za pomoc

Odpowiedz

4

Spójrz na Rook package. Może przekształcić dowolną sesję R w serwer sieciowy. Jest to quite simple i, w rzeczywistości, używane w Rapache.

EDIT

Od mojej pierwszej odpowiedzi, zacząłem używać shiny. To świetny pakiet do tworzenia dynamicznych, złożonych stron internetowych opartych na technologii AJAX z interfejsem R wysokiego poziomu, bez konieczności wchodzenia w HTML lub prawie wcale.

+0

Dzięki za odpowiedź, RApache jest naprawdę świetny. Chciałbym też rzucić okiem na RServe, który pozwala uruchomić wywołanie R z klienta Java. –

0

Próbowałem błyszczący od RStudio i działa jak urok