Beräkningssammanfattning av statistik i R (SQL Server och RevoScaleR-handledning)

gäller för: SQL Server 2016 (13.x) och senare versioner

Detta är handledning 5 i RevoScaleR-handledningsserien om hur man använder RevoScaleR-funktioner med SQL Server.

Denna handledning använder etablerade datakällor och beräkningskontexter som skapats i tidigare handledningar för att köra kraftfulla R-skript. I denna handledning kommer du att använda lokala och fjärrserverberäkningskontexter för följande uppgifter:

  • Byt beräkningskontext till SQL Server
  • Erhåll sammanfattande statistik på fjärrdata objekt
  • Beräkna en lokal sammanfattning

Om du har slutfört de tidigare handledningarna bör du ha dessa fjärrberäkningskontexter: sqlCompute och sqlComputeTrace. Framöver använder du sqlCompute och den lokala beräkningskontexten i efterföljande handledningar.

Använd en R-IDE eller Rgui för att köra R-skriptet i denna handledning.

Beräkna sammanfattande statistik på fjärrdata

Innan du kan köra någon R-kod på distans behöver du specificera den fjärrberäkningskontexten. Alla efterföljande beräkningar sker på SQL Server-datorn som anges i sqlCompute-parametern.

En beräkningskontext förblir aktiv tills du ändrar den. Dock kommer alla R-skript som inte kan köras i en fjärrserverkontext automatiskt att köras lokalt.

För att se hur en beräkningskontext fungerar, generera sammanfattningsstatistik över sqlFraudDS-datakällan på den fjärrstyrda SQL Server. Detta datakällasobjekt skapades i handledning två och representerar ccFraudSmall-tabellen i RevoDeepDive-databasen.

  1. Byt beräkningskontext till sqlCompute som skapades i föregående handledning:

    rxSetComputeContext(sqlCompute)
    
  2. Anropa funktionen rxSummary , skicka nödvändiga argument, såsom formeln och datakällan, och tilldela resultaten till variabeln sumOut.

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

    R-språket erbjuder många sammanfattningsfunktioner, men rxSummary i RevoScaleR stödjer exekvering i olika fjärrberäkningssammanhang, inklusive SQL Server. För information om liknande funktioner, se Datasammanfattningar med RevoScaleR.

  3. Skriv ut innehållet i sumOut till konsolen.

    sumOut
    

    Anmärkning

    Om du får ett felmeddelande, vänta några minuter tills exekveringen är klar innan du försöker använda kommandot igen.

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

Skapa en lokal sammanfattning

  1. Ändra beräkningskontexten så att allt ditt arbete görs lokalt.

    rxSetComputeContext ("local")
    
  2. När du extraherar data från SQL Server kan du ofta få bättre prestanda genom att öka antalet rader som extraheras för varje läsning, förutsatt att den ökade blockstorleken kan rymmas i minnet. Kör följande kommando för att öka värdet för parametern RowsPerRead på datakällan. Tidigare sattes värdet på radersPerRead till 5000.

    sqlServerDS1 <- RxSqlServerData(
       connectionString = sqlConnString,
       table = sqlFraudTable,
       colInfo = ccColInfo,
       rowsPerRead = 10000)
    
  3. Anropa rxSummary på den nya datakällan.

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

    De faktiska resultaten bör vara desamma som när du kör rxSummary i kontexten av SQL Server-datorn. Dock kan operationen gå snabbare eller långsammare. Mycket beror på anslutningen till din databas, eftersom datan överförs till din lokala dator för analys.

  4. Byt tillbaka till kontexten för fjärrberäkning för de följande handledningarna.

    rxSetComputeContext(sqlCompute)
    

Nästa steg