luktom.net
  • blog
  • kontakt
  • english





Jak podłączyć program R do SQL Servera?

11 gru, 2010
SQL Server
4 komentarze
Odsłony : 37575

O 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:

  1. Utworzenie w systemie źródła danych ODBC
  2. Instalacji biblioteki dla R służącej do połączenia ze wspomnianym źródłem
  3. 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

  1. Otwieramy Panel sterowania
  2. Wybieramy Narzędzia administracyjne a następnie Źródła danych ODBC
  3. Na zakładce DSN Użytkownika klikamy na Dodaj
  4. Jako sterownik wybieramy SQL Server Native Client
  5. Podajemy nazwę dla połączenia oraz wybieramy serwer, z którym chcemy się połączyć a następnie przechodzimy dalej
  6. Wybieramy sposób autentykacji oraz podajemy wymagane dane
  7. 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ć
  8. 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:

  1. Z menu Packages wybieramy Install Packages
  2. Możliwe, że zostaniemy zapytani o wybór mirroru, z którego chcemy pobrać bibliotekę
  3. Następnie, z listy paczek wybieramy RODBC i akceptujemy
  4. 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.



Tagi :   odbcrsql server

Powiązane wpisy

  • „SQL Server w AWS” – na PLSSUG Kraków – zapraszam

  • SmogBot – kilka dobrych praktyk z zakresu bezpieczeństwa bazy danych

  • SQL Server – katalog domyślnej filegroupy

  • SQL Server – walidacja numerów PESEL i NIP

  • 4 komentarze

    • Paweł P. gru 14 , 2010 at 11:02 /

      „db<-*" – no nie, strzałka na odwrót.
      Na tych bazkach się nie znam, ale jak to wygląda?
      Tak jakbyśmy chcieli „cofnąć się do tyłu” …
      Pozdrawiam serdecznie!

    • Hołek gru 27 , 2010 at 21:25 /

      To ja mam pytanie. Jesteś w stanie wymienić jakieś przewagi systemu R nad innymi narzędziami do profesjonalnej analizy statystycznej? Poza tym, że R jest darmowy oczywiście.
      Korzystałeś z innych aplikacji?

    • luktom gru 28 , 2010 at 00:58 /

      O dokładną analizę się nie pokuszę, bo dłużej używałem w praktyce tylko R i Gretla, choć bawiłem się też Matlabem i Mathematicą – więc jeśli poszukujesz porównania pakietów statystycznych to odsyłam do http://en.wikipedia.org/wiki/Comparison_of_statistical_packages

    • R sty 24 , 2011 at 01:07 /

      Trudno mówić o „przewadze”. Istotną zaletą może być to, że R to język programowania, który pozwala pisać własne procedury statystyczne, gdy brak takowych w dostępnych pakietach (jak odmiana Basica w Statistice). R jest ciągle nadzorowany przez tysiące userów (patrząc po maillistach wielu z nich to doktorzy i profesorowie statystyki), więc jak znajdą błąd, to jest on szybko rozwiązywany. Kiedyś martwiłem się o to, na ile mogę „zaufać” R, a teraz śpię spokojnie, chociaż przy nowo poznanych pakietach porównuję wyrywkowo wyniki z innymi pakietami. Nie zawsze różnice oznaczają błędy, a np. inny algorytm i wtedy trzeba rozumieć, dlaczego jest taki wynik a nie inny. Dla początkujących to spore utrudnienie. Jednak w komercyjnych pakietach z poprawą błędów obliczeniowych bywa naprawdę różnie – nie chcę tu robić antyreklamy znanym firmom, ale pewne błędy i czas ich usunięcia jest już legendą. Zalety są takie, że R jest darmowy, ma gigantyczną liczbę zaprogramowanych procedur statystycznych i w miarę łatwy do opanowania język, a także posiada najszybszy czas reakcji społeczności i developerów na błędy. Wady są takie, że niewiele da się wyklikać (np. takim RCommanderem), praktycznie wszystko trzeba wpisać z palca. Przy analizie dataminingowej to może być wręcz dramat z kilobajtami kodu w tle. W takich zastosowaniach sprawdzają się „workbenche”, takie, jak RapidMiner, KNIME czy DataMiner ze Statistiki. Z drugiej strony każdy szanujący się pakiet (WEKA, RapidMiner, KNIME) współpracuje z R i może wykorzystywać jego możliwości, nawet komercyjna Statistica, SPSS czy nawet Excel. Właśnie ze względu na współpracę z tym ostatnim (pakiet RExcel + RCommander) R jest bardzo fajny, bo wzbogaca się o cechy arkusza kalkulacyjnego. Dalej, jeśli chodzi o wady, to niestety, składnia funkcji w wielu pakietach robiących to samo bywa niespójna. Dodatkowo dokumentacja do nich jest często bardzo oszczędna, więc nierzadko wymagana jest dobra znajomość zagadnień statystycznych. Można rzec, że obowiązuje zasada „profesjonaliści dla profesjonalistów”, aczkolwiek wiele ustawień ma wartości domyślne. Co prawda tak samo jest np. w Statistice, gdzie parametrów są dziesiątki, ale „help” do niej to chyba jedna z większych bibliotek statystycznych w sieci. Co do popularności w świecie nauki, to w wielu zachodnich ośrodkach naukowych, głównie we Francji, jak śledzę literaturę, jest wiodącym narzędziem analitycznym i wstawienie „citation”, że wykonano coś z użyciem R jest dobrze widziane przez recenzentów. Zapewne sugeruje, że analityk chwilę pomyślał nad tym, co robi, zanim nacisnął „enter”, czy przeklikał „next, next, OK”. Do Matlaba czy Mapple trudno go porównać, bo nie ma np. obliczeń symbolicznych, czy dedykowanych pakietów inżynierskich. Ma za to znacznie więcej pakietów statystycznych i dataminingowych. Np. na dzień dzisiejszy (styczeń 2011) tylko w tym języku można znaleźć implementację metody maszyn wektorów importujących (następca SVM). Aha, co do wykresów, to bardzo daleko im do artyzmu tych tworzonych przez Statisticę, ale z kolei są bardzo dobrze odbierane w zachodnich publikacjach. Często można spotkać się z takim „przykazaniem”: „If anything, there should be a Law: Thou Shalt Not Even Think Of Producing A Graph That Looks Like Anything From A Spreadsheet”. Podsumowując, nie ma rady i trzeba zainstalować kilka maszyn wirtualnych, zainstalować na nich wersje testowe wybranych pakietów i testować. Jeśli zachodzi potrzeba wykorzystania R jako silnika obliczeń z poziomu języków programowania, to można po gniazdach TCP albo przez OLE COM. Polecam tutaj pakiet RDCOM (ta sama strona www, co RExcel). Zwłaszcza sprawdzi się tutaj platforma MS .NET. Mam nadzieję, że choć odrobinę pomogłem.


    Dodaj komentarz

    Click here to cancel reply

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>





    Łukasz Tomaszkiewicz

    Łukasz Tomaszkiewicz

    Pasjonat chmury, szczególnie AWSa, który nieustannie automatyzuje powtarzające się czynności i optymalizuje procesy, przy okazji wdrażając dobre praktyki dotyczące bezpieczeństwa. Jego szerokie doświadczenie w zakresie tworzenia oprogramowania, projektowania baz danych, a także wirtualizacji serwerów i zarządzania infrastrukturą w chmurze pozwala mu spojrzeć przekrojowo na współczesny stack technologiczny.

    W wolnym czasie fotograf, sporadycznie piszący blogger :) a także regularny prelegent na krakowskich grupach związanych z IT.

    Wyznawca Vim'a :)

    Kategorie

    • Ansible
    • AWS
    • C#
    • Chatboty
    • Cloud
    • Daj się poznać 2017
    • Docker
    • Inne
    • Linux
    • Open source
    • Organizacyjne
    • Prelekcje
    • Sieci komputerowe
    • SQL Server
    • Windows
    • Windows Server
    • Wirtualizacja

    Najczęściej czytane

    • Creating single node VSAN cluster
    • SQL Server – walidacja numerów PESEL i NIP
    • Konfiguracja serwera DHCP na routerach Cisco
    • Aktywacja routingu IP w Windows 7 / Windows Server 2008
    • Konwersja maszyn wirtualnych z ESXi do Hyper-V przy użyciu SCVMM 2012
    • Problem ze startem SQL Server Agent

    Tagi

    .net ai ansible asp.net mvc aws aws cli bot builder bot framework c# centos certyfikaty chatbot chatboty cisco cmd docker dsp2017 esxi hyperv kontenery konteneryzacja linux mvc nlp openvpn plssug pobieranie powershell prelekcje rancher redhat router sieci smogbot sql server ssd ssl vmware vsphere windows windows mobile windows server wirtualizacja wit.ai wrzuta

    Copyright © 2006-2018 by Łukasz Tomaszkiewicz. Wszelkie prawa zastrzeżone