Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: SQL Server 2016 (13.x) y versiones posteriores
Este es el tutorial 10 de la serie de tutoriales de RevoScaleR sobre el uso de las funciones de RevoScaleR con SQL Server.
En este tutorial, aprenderá cómo obtener datos de SQL Servery, después, usar la función rxImport para colocar los datos de interés en un archivo local. De este modo, puede analizarlos en el contexto de cálculo local varias veces, sin tener que volver a consultar la base de datos.
La función rxImport se puede usar para mover datos desde un origen de datos a una trama de datos en una memoria de sesión o en un archivo XDF en disco. Si no especifica un archivo como destino, los datos se colocan en memoria como una trama de datos.
Extracción de un subconjunto de datos desde SQL Server a la memoria local
Ha decidido que solo quiere examinar los individuos de alto riesgo con más detalle. La tabla de origen de SQL Server es grande, por lo que quiere obtener información única y exclusivamente sobre los clientes de alto riesgo. Luego, cargará los datos en una trama de datos en la memoria de la estación de trabajo local.
Restablezca el contexto de cálculo a su estación de trabajo local.
rxSetComputeContext("local")Cree un nuevo objeto de origen de datos de SQL Server proporcionando una instrucción de SQL válida en el parámetro rxImport . En este ejemplo se obtiene un subconjunto de las observaciones con las puntuaciones de riesgo más altas. De este modo, solo los datos que necesita realmente se colocan en la memoria local.
sqlServerProbDS \<- RxSqlServerData( sqlQuery = paste("SELECT * FROM ccScoreOutput2", "WHERE (ccFraudProb > .99)"), connectionString = sqlConnString)Llame a la función rxImport para leer los datos en una trama de datos de la sesión de R local.
highRisk <- rxImport(sqlServerProbDS)Si la operación se realiza correctamente, debería aparecer un mensaje de estado similar al siguiente: "Filas leídas: 35, Total de filas procesadas: 35, Tiempo total de fragmentos: 0,036 segundos"
Ahora que las observaciones de alto riesgo están en una trama de datos en memoria, puede usar varias funciones de R para manipular esa trama de datos. En este ejemplo, puede ordenar los clientes por su puntuación de riesgo e imprimir una lista de aquellos que suponen un riesgo más alto.
orderedHighRisk <- highRisk[order(-highRisk$ccFraudProb),] row.names(orderedHighRisk) <- NULL head(orderedHighRisk)
Resultados
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
Más información sobre rxImport
Puede usar rxImport no solo para mover los datos, sino también para transformar los datos mientras se leen. Por ejemplo, puede especificar el número de caracteres para las columnas de ancho fijo, proporcionar una descripción de las variables, establecer niveles para las columnas de factor e incluso crear nuevos niveles para usar después de la importación.
La función rxImport asigna nombres de variable a las columnas durante el proceso de importación, pero puede indicar nombres de variable nuevos con el parámetro colInfo o cambiar los tipos de datos con el parámetro colClasses.
Mediante la especificación de operaciones adicionales en el parámetro transforms , puede realizar un procesamiento elemental en cada fragmento de datos que se lee.