Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2016 (13.x) en latere versies
Dit is tutorial 10 van de RevoScaleR-tutorialserie over hoe je RevoScaleR-functies gebruikt met SQL Server.
In deze tutorial leer je hoe je data uit SQL Server haalt, en gebruik je vervolgens de rxImport-functie om de data van belang in een lokaal bestand te zetten. Op die manier kun je het herhaaldelijk analyseren in de lokale computecontext, zonder de database opnieuw te hoeven navragen.
De rxImport-functie kan worden gebruikt om gegevens van een databron naar een dataframe in het sessiegeheugen te verplaatsen, of naar een XDF-bestand op de schijf. Als je een bestand niet als bestemming specificeert, wordt de data als een dataframe in het geheugen geplaatst.
Haal een subset van de data uit SQL Server naar het lokale geheugen
Je hebt besloten dat je alleen de risicovolle personen in meer detail wilt onderzoeken. De brontabel in SQL Server is groot, dus je wilt informatie krijgen over alleen de risicovolle klanten. Vervolgens laad je die data in een dataframe in het geheugen van het lokale werkstation.
Stel de computecontext opnieuw in op je lokale werkstation.
rxSetComputeContext("local")Maak een nieuw SQL Server databronobject aan, dat een geldige SQL-instructie in de sqlQuery-parameter geeft. Dit voorbeeld krijgt een subset van de observaties met de hoogste risicoscores. Op die manier wordt alleen de data die je echt nodig hebt in lokaal geheugen opgeslagen.
sqlServerProbDS \<- RxSqlServerData( sqlQuery = paste("SELECT * FROM ccScoreOutput2", "WHERE (ccFraudProb > .99)"), connectionString = sqlConnString)Roep de functie rxImport aan om de data in een dataframe in de lokale R-sessie te lezen.
highRisk <- rxImport(sqlServerProbDS)Als de operatie succesvol was, zou je een statusbericht moeten zien zoals deze: "Rijen gelezen: 35, Totaal aantal bewerkte rijen: 35, Totale Chunk-tijd: 0,036 seconden"
Nu de risicovolle waarnemingen in een in-memory dataframe zitten, kun je verschillende R-functies gebruiken om het dataframe te manipuleren. Je kunt bijvoorbeeld klanten bestellen op hun risicoscore en een lijst afdrukken van de klanten die het hoogste risico vormen.
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
Meer over rxImport
Je kunt rxImport niet alleen gebruiken om data te verplaatsen, maar ook om data te transformeren tijdens het lezen. Je kunt bijvoorbeeld het aantal tekens voor kolommen met vaste breedte specificeren, een beschrijving van de variabelen geven, niveaus instellen voor factorkolommen en zelfs nieuwe niveaus aanmaken om na importeren te gebruiken.
De rxImport-functie wijst variabelenamen toe aan de kolommen tijdens het importproces, maar je kunt nieuwe variabelenamen aangeven met de colInfo-parameter , of datatypes wijzigen met de colClasses-parameter .
Door extra bewerkingen in de transformatieparameter te specificeren, kun je elementaire verwerking uitvoeren op elk gelezen datablok.