Freigeben über


Berechnen von Zusammenfassungstatistiken in R (SQL Server- und RevoScaleR-Tutorial)

Gilt für: SQL Server 2016 (13.x) und höhere Versionen

Bei diesem Tutorial handelt es sich um das 5. Tutorial der Tutorialreihe zu RevoScaleR. In diesem Tutorial erfahren Sie, wie Sie RevoScaleR-Funktionen mit SQL Server verwenden.

In diesem Tutorial werden die in den vorherigen Tutorials erstellten Datenquellen und Computekontexte verwendet, um leistungsstarke R-Skripts auszuführen. In diesem Tutorial verwenden Sie Computekontexte von lokalen und Remoteservern für die folgenden Aufgaben:

  • Wechseln des Computekontexts auf SQL Server
  • Abrufen von Zusammenfassungsstatistiken für Remotedatenobjekte
  • Berechnen einer lokalen Zusammenfassung

Wenn Sie die vorherigen Tutorials abgeschlossen haben, sollten Sie über die folgenden Remotecomputekontexte verfügen: sqlCompute und sqlComputeTrace. In den nachfolgenden Tutorials verwenden Sie sqlCompute und den lokalen Computekontext.

In diesem Tutorial verwenden Sie eine R-IDE oder Rgui zum Ausführen des R-Skripts.

Berechnen von Zusammenfassungsstatistiken für Remotedaten

Bevor Sie einen R-Code ausführen können, müssen Sie den Remotecomputekontext angeben. Alle nachfolgenden Berechnungen erfolgen auf dem SQL Server-Computer, der im sqlCompute-Parameter angegeben ist.

Ein Computekontext bleibt so lange aktiv, bis Sie ihn ändern. Alle R-Skripts, die nicht in einem Remoteserverkontext ausgeführt werden können, werden automatisch lokal ausgeführt.

Um die Funktionsweise eines Computekontexts besser zu verstehen, generieren Sie eine Zusammenfassungsstatistik für die sqlFraudDS-Datenquelle auf der SQL Server-Remoteinstanz. Dieses Datenquellenobjekt wurde in Tutorial 2 erstellt und stellt die ccFraudSmall-Tabelle in der RevoDeepDive-Datenbank dar.

  1. Wechseln Sie zum im vorherigen Tutorial erstellten Computekontext „sqlCompute“:

    rxSetComputeContext(sqlCompute)
    
  2. Rufen Sie die Funktion rxSummary auf, und übergeben Sie alle erforderlichen Argumente, wie z. B. die Formel und die Datenquelle, und weisen Sie die Ergebnisse der Variablen sumOut zu.

    sumOut <- rxSummary(formula = ~gender + balance + numTrans + numIntlTrans + creditLine, data = sqlFraudDS)
    

    Die R-Sprache stellt zahlreiche Zusammenfassungsfunktionen bereit, rxSummary in RevoScaleR unterstützt jedoch die Ausführung auf verschiedenen Remotecomputekontexten, einschließlich SQL Server. Weitere Informationen zu ähnlichen Funktionen finden Sie unter Datenzusammenfassungen unter Verwendung von RevoScaleR.

  3. Gibt den Inhalt von sumOut in der Konsole aus.

    sumOut
    

    Hinweis

    Wenn Sie eine Fehlermeldung erhalten, warten Sie einige Minuten, bis die Ausführung abgeschlossen ist, und führen Sie dann den Befehl erneut aus.

Ergebnisse

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

Erstellen einer lokalen Zusammenfassung

  1. Ändern Sie den Computekontext, damit all Ihre Arbeit lokal ausgeführt wird.

    rxSetComputeContext ("local")
    
  2. Wenn Sie Daten aus SQL Server extrahieren, können Sie häufig eine bessere Leistung erzielen, indem Sie die Anzahl der für jeden Lesevorgang extrahierten Zeilen erhöhen, vorausgesetzt, es ist ausreichend Arbeitsspeicher für die größere Blockgröße vorhanden. Führen Sie den folgenden Befehl aus, um den Wert für den Parameter rowsPerRead in der Datenquelle zu erhöhen. Zuvor war der Wert von rowsPerRead auf 5000 festgelegt.

    sqlServerDS1 <- RxSqlServerData(
       connectionString = sqlConnString,
       table = sqlFraudTable,
       colInfo = ccColInfo,
       rowsPerRead = 10000)
    
  3. Rufen Sie rxSummary für die neue Datenquelle auf.

    rxSummary(formula = ~gender + balance + numTrans + numIntlTrans + creditLine, data = sqlServerDS1)
    

    Die tatsächlichen Ergebnisse sollten denen entsprechen, die beim Ausführen von rxSummary im Kontext des SQL Server -Computers ausgegeben werden. Der Vorgang kann jedoch schneller oder langsamer sein. Dies hängt hauptsächlich von der Verbindung zu Ihrer Datenbank ab, da die Daten für die Analyse auf Ihren lokalen Computer übertragen werden.

  4. Wechseln Sie für die nächsten Tutorials wieder zum Remotecomputekontext.

    rxSetComputeContext(sqlCompute)
    

Nächste Schritte