Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : SQL Server 2016 (13.x) et versions ultérieures
Il s’agit du tutoriel 10 de la série de tutoriels RevoScaleR qui traite de l’utilisation des fonctions RevoScaleR avec SQL Server.
Dans ce tutoriel, vous allez apprendre à obtenir des données à partir de SQL Server, puis à utiliser la fonction rxImport pour placer les données dignes d’intérêt dans un fichier local. De cette façon, vous pouvez les analyser dans le contexte de calcul local à plusieurs reprises, sans devoir réinterroger la base de données.
La fonction rxImport peut être utilisée pour déplacer les données d’une source de données dans une trame de données située dans la mémoire de session de R, ou dans un fichier XDF sur disque. Si vous ne spécifiez pas de fichier de destination, les données sont placées en mémoire sous la forme d’une trame de données.
Extraire un sous-ensemble de données de SQL Server vers la mémoire locale
Vous avez décidé d’examiner plus en détail les individus à haut risque uniquement. La table source de SQL Server est volumineuse, donc vous souhaitez obtenir des informations sur les clients à haut risque uniquement. Vous chargez ensuite ces données dans une trame de données dans la mémoire de la station de travail locale.
Réinitialisez le contexte de calcul sur votre station de travail locale.
rxSetComputeContext("local")Créez un objet de source de données SQL Server en fournissant une instruction SQL valide dans le paramètre sqlQuery . Cet exemple récupère une partie des observations ayant les scores de risque les plus élevés. De cette façon, seules les données dont vous avez vraiment besoin sont placées dans la mémoire locale.
sqlServerProbDS \<- RxSqlServerData( sqlQuery = paste("SELECT * FROM ccScoreOutput2", "WHERE (ccFraudProb > .99)"), connectionString = sqlConnString)Appelez la fonction rxImport pour lire les données dans une trame de données située dans la session R locale.
highRisk <- rxImport(sqlServerProbDS)Si l’opération a réussi, vous devez voir un message d’état semblable à celui-ci : « Lignes lues : 35, Nombre total de lignes traitées : 35, durée totale de la segmentation : 0,036 seconde »
Les observations sur les clients à haut risque se trouvant maintenant dans une trame de données en mémoire, vous pouvez utiliser différentes fonctions R pour manipuler la trame de données. Vous pouvez par exemple classer les clients en fonction de leur score de risque et imprimer une liste de ceux qui présentent le risque le plus élevé.
orderedHighRisk <- highRisk[order(-highRisk$ccFraudProb),] row.names(orderedHighRisk) <- NULL head(orderedHighRisk)
Résultats
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
En savoir plus sur rxImport
Vous pouvez utiliser rxImport non seulement pour déplacer des données, mais aussi pour transformer les données pendant leur lecture. Par exemple, vous pouvez spécifier le nombre de caractères pour les colonnes à largeur fixe, fournir une description des variables, définir des niveaux pour les colonnes de facteur et même créer des niveaux à utiliser après l’importation.
La fonction rxImport attribue des noms de variables aux colonnes pendant le processus d’importation, mais vous pouvez indiquer de nouveaux noms de variables à l’aide du paramètre colInfo ou modifier les types de données à l’aide du paramètre colClasses.
En spécifiant des opérations supplémentaires dans le paramètre transforms , vous pouvez effectuer un traitement élémentaire sur chaque segment de données lu.