Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2016 (13.x) i nowsze wersje
To jest piąty samouczek z serii RevoScaleR, jak korzystać z funkcji RevoScaleR z SQL Server.
Ten samouczek wykorzystuje ustalone źródła danych i konteksty obliczeniowe stworzone w poprzednich tutorialach do uruchamiania zaawansowanych skryptów R. W tym samouczku wykorzystasz lokalne i zdalne konteksty obliczeniowe serwera do następujących zadań:
- Zmień kontekst obliczeniowy na SQL Server
- Uzyskaj podsumowanie statystyk dotyczących zdalnych obiektów danych
- Obliczaj lokalne podsumowanie
Jeśli ukończyłeś poprzednie tutoriale, powinieneś mieć te zdalne konteksty obliczeniowe: sqlCompute i sqlComputeTrace. Od tej pory w kolejnych samouczkach będziesz używać sqlCompute oraz lokalnego kontekstu obliczeniowego.
Użyj R IDE lub Rgui , aby uruchomić skrypt R w tym tutorialu.
Oblicz statystyki podsumowania danych zdalnych
Zanim będziesz mógł uruchomić jakikolwiek kod R zdalnie, musisz określić zdalny kontekst obliczeniowy. Wszystkie kolejne obliczenia odbywają się na komputerze SQL Server określonym w parametrze sqlCompute.
Kontekst obliczeniowy pozostaje aktywny, dopóki go nie zmienisz. Jednak wszelkie skrypty R, które nie mogą działać w kontekście zdalnego serwera, będą działać automatycznie lokalnie.
Aby zobaczyć, jak działa kontekst obliczeniowy, wygeneruj podsumowanie statystyk ze źródła danych sqlFraudDS na zdalnym SQL Server. Ten obiekt źródłowy został utworzony w drugim samouczku i reprezentuje tabelę ccFraudSmall w bazie danych RevoDeepDive.
Zmień kontekst obliczeniowy na sqlCompute utworzony w poprzednim samouczku:
rxSetComputeContext(sqlCompute)Wywołaj funkcję rxSummary i przekaż wymagane argumenty, takie jak wzór i źródło danych, i przypisz wyniki zmiennej
sumOut.sumOut <- rxSummary(formula = ~gender + balance + numTrans + numIntlTrans + creditLine, data = sqlFraudDS)Język R oferuje wiele funkcji podsumowujących, ale rxSummary w RevoScaleR obsługuje wykonywanie w różnych zdalnych kontekstach obliczeniowych, w tym w SQL Server. Informacje o podobnych funkcjach można znaleźć w podsumowaniach danych z użyciem RevoScaleR.
Wydrukuj zawartość sumOut na konsoli.
sumOutNote
Jeśli pojawi się błąd, poczekaj kilka minut na zakończenie wykonania przed ponowną próbą wykonania polecenia.
Results
Summary Statistics Results for: ~gender + balance + numTrans + numIntlTrans + creditLine
Data: sqlFraudDS (RxSqlServerData Data Source)
Number of valid observations: 10000
Name Mean StdDev Min Max ValidObs MissingObs
balance 4075.0318 3926.558714 0 25626 100000
numTrans 29.1061 26.619923 0 100 10000 0 100000
numIntlTrans 4.0868 8.726757 0 60 10000 0 100000
creditLine 9.1856 9.870364 1 75 10000 0 100000
Category Counts for gender
Number of categories: 2
Number of valid observations: 10000
Number of missing observations: 0
gender Counts
Male 6154
Female 3846
Stwórz lokalne podsumowanie
Zmień kontekst obliczeniowy, aby całą pracę wykonywał lokalnie.
rxSetComputeContext ("local")Podczas wyodrębniania danych z SQL Server często można uzyskać lepszą wydajność, zwiększając liczbę wierszy wyodrębnianych dla każdego odczytu, zakładając, że większy rozmiar bloku można pomieścić w pamięci. Wykonaj następujące polecenie, aby zwiększyć wartość parametru rowsPerRead na źródle danych. Wcześniej, wartość rowsPerRead była ustawiona na 5000.
sqlServerDS1 <- RxSqlServerData( connectionString = sqlConnString, table = sqlFraudTable, colInfo = ccColInfo, rowsPerRead = 10000)Wywołaj rxSummary dla nowego źródła danych.
rxSummary(formula = ~gender + balance + numTrans + numIntlTrans + creditLine, data = sqlServerDS1)Rzeczywiste wyniki powinny być takie same jak przy uruchamianiu rxSummary w kontekście komputera SQL Server. Jednak operacja może być szybsza lub wolniejsza. Wiele zależy od połączenia z bazą danych, ponieważ dane są przesyłane do lokalnego komputera do analizy.
Przełącz się z powrotem do kontekstu zdalnego środowiska obliczeniowego na potrzeby kolejnych samouczków.
rxSetComputeContext(sqlCompute)