-
Jak podłączyć program R do SQL Servera?
Kategoria: SQL Server | 11 gru 2010 o 19:01 | Odpowiedzi: 4 | PermalinkO wadach i zaletach przechowywania danych finansowych w hurtowni danych można by napisać co najmniej serię wpisów (może kiedyś :]), w tym wpisie założę jednak, że posiadamy już takową hurtownię i chcemy się do niej podłączyć z poziomu programu R w celu przeprowadzenia analiz na danych pobranych z hurtowni.
Podłączenie sprowadza się do trzech etapów:
- Utworzenie w systemie źródła danych ODBC
- Instalacji biblioteki dla R służącej do połączenia ze wspomnianym źródłem
- Wykonaniem zapytania i pobraniem danych
W dalszej części wpisu, krok po kroku przeprowadzę Was przez powyższe punkty.
Utworzenie źródła danych ODBC
- Otwieramy Panel sterowania
- Wybieramy Narzędzia administracyjne a następnie Źródła danych ODBC
- Na zakładce DSN Użytkownika klikamy na Dodaj
- Jako sterownik wybieramy SQL Server Native Client
- Podajemy nazwę dla połączenia oraz wybieramy serwer, z którym chcemy się połączyć a następnie przechodzimy dalej
- Wybieramy sposób autentykacji oraz podajemy wymagane dane
- W kolejnych krokach możemy ustawić dodatkowe opcje, jak na przykład wybór domyślnej bazy danych, do której chcemy się podłączyć
- Po podaniu informacji, klikamy na przycisk „Test Data Source” celem sprawdzenia poprawności wprowadzonych ustawień połączenia
Instalacja biblioteki RODBC
Zakładając, że korzystamy z interfejsu graficznego RGui:
- Z menu Packages wybieramy Install Packages
- Możliwe, że zostaniemy zapytani o wybór mirroru, z którego chcemy pobrać bibliotekę
- Następnie, z listy paczek wybieramy RODBC i akceptujemy
- Po chwili biblioteka zostanie zainstalowana
Pobranie danych z bazy
Pobieranie danych z bazy sprowadza się do załadowania biblioteki RODBC, połączenia się ze źródłem danych oraz wykonania kwerendy na bazie danych celem pobrania danych. Przykładowa sesja z programem R mająca na celu pobranie historii transakcji i wyświetlenie krzywej kapitału prezentuje się następująco:
library("RODBC") db<-odbcConnect("StrategiesResults","user","password") profits<-sqlQuery(db,"SELECT Profit FROM Trades WHERE StrategyId=1 ORDER BY CloseTime")[,1] plot(cumsum(profits),type="l")W pierwszej linijce ładujemy bibliotekę RODBC, druga linijka tworzy nowe połączenie ze źródłem danych ODBC o nazwie StrategiesResults przy użyciu poświadczeń user oraz password. W trzeciej linijce przy użyciu sqlQuery wykonujemy kwerendę na bazie danych, którą od razu obrabiamy wybierając tylko pierwszą kolumnę (końcówka [,1]). Ostatnia linijka odpowiada za narysowania wykresu liniowego (type=”l”) skumulowanych sum na podstawie danych pobranych z tabeli.
Zobacz także
Łukasz Tomaszkiewicz
Paweł P.
Hołek
luktom
R