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 13 de la série de tutoriels RevoScaleR qui traite de l’utilisation des fonctions RevoScaleR avec SQL Server.
Dans ce tutoriel, vous allez apprendre à utiliser un fichier XDF pour transférer des données entre des contextes de calcul locaux et distants. Le stockage des données dans un fichier XDF vous permet d’effectuer des transformations sur les données.
Quand vous aurez terminé, vous utiliserez les données du fichier pour créer une table SQL Server. La fonction rxDataStep peut appliquer des transformations aux données et effectue la conversion entre les trames de données et les fichiers .xdf.
Créer une table SQL Server à partir d’un fichier XDF
Pour cet exercice, vous allez réutiliser les données de fraude à la carte de crédit. Dans ce scénario, vous avez été invité à effectuer des analyses supplémentaires sur les utilisateurs dans les États de la Californie, de l’Oregon et de Washington. Pour être plus efficace, vous avez décidé de stocker les données de ces seuls États sur votre ordinateur local et vous utilisez uniquement les variables gender, cardholder, state et balance (sexe, détenteur de la carte, état et solde).
Réutilisez la variable
stateAbbque vous avez créé pour identifier les niveaux à inclure, puis écrivez-les dans une nouvelle variable,statesToKeep.statesToKeep <- sapply(c("CA", "OR", "WA"), grep, stateAbb) statesToKeepRésultats
CA OR WA 5 38 48 Définissez les données que vous souhaitez déplacer à partir de SQL Server, à l’aide d’une requête Transact-SQL. Plus tard, vous utiliserez cette variable en tant qu’argument inData pour rxImport.
importQuery <- paste("SELECT gender,cardholder,balance,state FROM", sqlFraudTable, "WHERE (state = 5 OR state = 38 OR state = 48)")Vérifiez que la requête ne contient aucun caractère masqué, tel qu’un saut de ligne ou une tabulation.
Ensuite, définissez les colonnes à utiliser lors de l’utilisation des données dans le langage R. Par exemple, dans le jeu de données le plus petit, vous n’avez besoin que de trois niveaux de facteur, car la requête retourne les données de seulement trois états. Appliquez la variable
statesToKeeppour identifier les niveaux corrects à inclure.importColInfo <- list( gender = list( type = "factor", levels = c("1", "2"), newLevels = c("Male", "Female")), cardholder = list( type = "factor", levels = c("1", "2"), newLevels = c("Principal", "Secondary")), state = list( type = "factor", levels = as.character(statesToKeep), newLevels = names(statesToKeep)) )Définissez le contexte de calcul sur local, car vous souhaitez toutes les données disponibles sur votre ordinateur local.
rxSetComputeContext("local")La fonction rxImport permet d’importer des données à partir d’une source de données prise en charge dans un fichier XDF local. Utiliser une copie locale des données peut être pratique lorsque vous souhaitez effectuer de nombreuses analyses différentes sur les données sans avoir à exécuter la même requête à maintes reprises.
Créez l’objet de source de données en passant les variables que vous avez définies en tant qu’arguments à RxSqlServerData.
sqlServerImportDS <- RxSqlServerData( connectionString = sqlConnString, sqlQuery = importQuery, colInfo = importColInfo)Appelez rxImport pour écrire les données dans un fichier nommé
ccFraudSub.xdf, situé dans le répertoire de travail actuel.localDS <- rxImport(inData = sqlServerImportDS, outFile = "ccFraudSub.xdf", overwrite = TRUE)L’objet
localDsretourné par la fonction rxImport est un objet de source de données RxXdfData léger qui représente le fichier de donnéesccFraud.xdfstocké localement sur le disque.Appelez rxGetVarInfo dans le fichier XDF pour vérifier que le schéma de données est le même.
rxGetVarInfo(data = localDS)Résultats
rxGetVarInfo(data = localDS) Var 1: gender, Type: factor, no factor levels available Var 2: cardholder, Type: factor, no factor levels available Var 3: balance, Type: integer, Low/High: (0, 22463) Var 4: state, Type: factor, no factor levels availableVous pouvez maintenant appeler différentes fonctions R pour analyser l’objet localDs , comme vous le feriez avec les données sources sur SQL Server. Par exemple, vous pouvez résumer par sexe :
rxSummary(~gender + cardholder + balance + state, data = localDS)
Étapes suivantes
Ce tutoriel conclut la série de tutoriels en plusieurs parties sur RevoScaleR et SQL Server. Elle vous a présenté de nombreux concepts liés aux données et au calcul, ce qui vous donne une base pour appliquer vos propres exigences en matière de données et de projet.
Pour approfondir vos connaissances sur RevoScaleR, vous pouvez revenir à la liste des tutoriels R pour parcourir les exercices que vous avez pu manquer. Vous pouvez également consulter les articles de procédure de la table des matières pour en savoir plus sur les tâches générales.