Załaduj dane do pamięci za pomocą rxImport (tutorial SQL Server i RevoScaleR)

Dotyczy: SQL Server 2016 (13.x) i nowsze wersje

To jest tutorial 10 z serii tutoriali RevoScaleR, jak korzystać z funkcji RevoScaleR z SQL Server.

W tym samouczku nauczysz się, jak pobrać dane z SQL Server, a następnie użyć funkcji rxImport, aby umieścić interesujące dane w pliku lokalnym. Dzięki temu możesz wielokrotnie analizować ją w lokalnym kontekście obliczeniowym, bez konieczności ponownego zapytywania bazy danych.

Funkcja rxImport może być używana do przenoszenia danych ze źródła danych do ramki danych w pamięci sesji lub do pliku XDF na dysku. Jeśli nie określisz pliku jako celu, dane są umieszczane w pamięci jako ramka danych.

Wyodrębnij podzbiór danych z SQL Server do pamięci lokalnej

Postanowiłeś, że chcesz dokładniej zbadać tylko osoby wysokiego ryzyka. Tabela źródłowa w SQL Server jest duża, więc chcesz uzyskać informacje tylko o klientach wysokiego ryzyka. Następnie ładujesz te dane do ramki danych w pamięci lokalnej stacji roboczej.

  1. Zresetuj kontekst obliczeniowy do lokalnej stacji roboczej.

    rxSetComputeContext("local")
    
  2. Utworzenie nowego obiektu źródłowego SQL Server, dostarczającego prawidłowe zapytanie SQL w parametrze sqlQuery. Ten przykład otrzymuje podzbiór obserwacji o najwyższych wynikach ryzyka. Dzięki temu tylko dane, których naprawdę potrzebujesz, trafiają do pamięci lokalnej.

    sqlServerProbDS \<- RxSqlServerData(
        sqlQuery = paste("SELECT * FROM ccScoreOutput2",
        "WHERE (ccFraudProb > .99)"),
        connectionString = sqlConnString)
    
  3. Wywołaj funkcję rxImport , aby odczytać dane do ramki danych w lokalnej sesji R.

    highRisk <- rxImport(sqlServerProbDS)
    

    Jeśli operacja zakończyła się powodzeniem, powinieneś zobaczyć komunikat o stanie taki jak ten: "Odczytane wiersze: 35, Łączna liczba przetworzonych wierszy: 35, Łączny czas przetwarzania porcji: 0,036 sekundy"

  4. Teraz, gdy obserwacje wysokiego ryzyka znajdują się w ramce danych w pamięci, możesz użyć różnych funkcji R do manipulacji ramką danych. Na przykład możesz uporządkować klientów według ich oceny ryzyka i wydrukować listę tych, którzy stanowią największe ryzyko.

    orderedHighRisk <- highRisk[order(-highRisk$ccFraudProb),]
    row.names(orderedHighRisk) <- NULL
    head(orderedHighRisk)
    

Results

ccFraudLogitScore   state gender cardholder balance numTrans numIntlTrans creditLine ccFraudProb1
9.786345    SD   Male  Principal   23456       25            5 75   0.99994382
9.433040    FL Female  Principal   20629       24           28 75   0.99992003
8.556785    NY Female  Principal   19064       82           53 43   0.99980784
8.188668    AZ Female  Principal   19948       29            0 75   0.99972235
7.551699    NY Female  Principal   11051       95            0 75   0.99947516
7.335080    NV   Male  Principal   21566        4            6  75   0.9993482

Więcej o rxImport

Możesz używać rxImport nie tylko do przenoszenia danych, ale także do transformacji danych podczas ich odczytu. Na przykład możesz określić liczbę znaków dla kolumn o stałej szerokości, podać opis zmiennych, ustawić poziomy dla kolumn czynników, a nawet stworzyć nowe poziomy do użycia po imporcie.

Funkcja rxImport przypisuje nazwy zmiennych kolumnom podczas procesu importu, ale możesz wskazać nowe nazwy zmiennych za pomocą parametru colInfo lub zmienić typy danych za pomocą parametru colClasses .

Określając dodatkowe operacje w parametrze transformacji , można przeprowadzić podstawowe przetwarzanie każdego fragmentu danych, który jest odczytywany.

Następny krok