Data Science con Microsoft R Server y SQL Server 2016
1. DataScience con Microsoft R Server y SQL Server 2016
09 de Marzo 2016 (12 pm GMT -5)
Eduardo Castro
Resumen:
En esta charla veremos las características del Microsoft R Server y
también la integración de R Scripts con SQL Server 2016.
Está por comenzar:
Moderador: Carlos Ulate
Próximos Eventos
AlwaysOn lecciones aprendidas
16 de Marzo
Julian Castiblanco
Introducción a Polybase en SQL
Server 2016
23 de Marzo
Eladio Rincón
2. Mantengase Conectado a Nosotros!
Visítenos en http://globalspanish.sqlpass.org
/SpanishPASSVC
lnkd.in/dtYBzev
/usuario/SpanishPASSVC
/SpanishPASSVC
4. 4
Oportunidades de Voluntariado
Aprueba No Pudiera Existir pecado Personas
Dedicadas Apasionadas y de Todas contradictorio del
Mundo Que dan de Su Tiempo Como Voluntarios.
Se un voluntario Ahora !!
Para identificar Oportunidades locales visita
volunteer.sqlpass.org
Recuerda Actualizar tu Perfil en las Secciones de
"MyVolunteering" y Mi pase para mas detalles.
6. DataScience con Microsoft R Server y SQL Server 2016
09 de marzo de 2016
Ing. Eduardo Castro, PhD
Datos Plataforma MVP
Moderador: Carlos Ulate
7. Fuentes consultadas
Esta presentación include slides tomados de las siguientes fuentes:
Revolution R Enterprise. Hong Ooi.
Data Science with Azure Machine Learning, SQL Server and R. Lukawiecki
Tutoriales y Demostraciones
https://msdn.microsoft.com/en-us/library/mt590536.aspx
7
8. La ciencia de datos
El método científico de
razonamiento aplicado
de decisiones basadas
en datos
Hipótesis,
experimentos, hechos,
lógico razonamiento
+ Ingeniería de datos.
14. Metodología sugerida
SSAS Data
Mining
R Azure ML
Fácil, visual,
intuitiva, Excel,
simplemente
funciona
Estadísticas
descriptivas,
“sentir” sus
datos, más
algoritmos
Los algoritmos
avanzados, el
auto-tuning,
servicios web,
nube!
15. Otras herramientas de las ciencias de datos de
Microsoft
Hadoop en la nube
+ Storm (análisis en tiempo real)
+HBase (NoSQL)
+Mahoot (ML!)
Streaming Data procedentes de la nube
Basado en HDInsight/ Hadoop
Power BI: Power Query, Power View, and
Dashboards
Excel
Azure Data Factory (ETL in the cloud)
Analytics Platform System (SQL Server on
steroids + Hadoop + hardware)
16. ¿Qué es R?
Mejor
http://www.rstudio.com/
Rattle y OnePageR hace que sea aún más fácil
R Core: la versión más pura: http://cran.r-project.org/
Revolution Analytics: paralelismo y Rendimiento: http://www.revolutionanalytics.com/
Azure ML: built-in
17. Limitaciones del open source R
R necesita datos en memoria R solo tiene un hilo
de ejecución
R require habilidades
especializadas para
crear cluster
R Open es soportado por la
comunidad
Revolution R Enterprise brinda una solución a
esto!
19. Revolution R vs open source R
NO tiene límites de RAM
• Open source R llena la
memoria y falla
• RRE escala lineamiente aunque
sobrepase el límite de RAM
Algoritmos más rápidos
• RRE optimizado para gran
cantidad de datos
File Name
Compressed
File Size
(MB) No. Rows
Open
Source R
(secs)
Revolution R
(secs)
Tiny 0.3 1,235 0.00 0.05
V. Small 0.4 12,353 0.21 0.05
Small 1.3 123,534 0.03 0.03
Medium 10.7 1,235,349 1.94 0.08
Large 104.5 12,353,496 60.69 0.42
Big (full) 12,960.0
123,534,96
9 Memory! 4.89
V.Big 25,919.7
247,069,93
8 Memory! 9.49
Huge 51,840.2
494,139,87
6 Memory! 18.92
Public US Flight Data
Linear Regression sobre el campo Arrival Delay
Ejecución en 4 core laptop, 16GB RAM and 500GB
SSD
20. Revolution R vs SAS
• Pruebas realizadas por consultores
independientes – 5 x 4 core maquinas
ejecutando sobre CentOS
• SAS 9.4: Base SAS, SAS/STAT, Grid Mgr
• Revolution R Enterprise ScaleR, con IBM
Platform LSF, Platform MPI Release 9
• Data set: 591 columnas y 5,000,000 filas
21. Cientificos de datos
interactuar directamente con
datos
Incorporado a SQL
Server
Desarrollador de datos /
DBA
Manejo de datos y
analíticas en el mismo motor
Incorporando el análisis avanzado
Dentro de la base de datos de análisis
Ejemplo de soluciones
• La detección del fraude
• Pronósticodeventas
• la eficiencia del inventario
• Mantenimiento predictivo
datos relacional
Biblioteca
analítica
T-SQL Interface
Extensibilid
ad
?
R
Integración R
010010
100100
010101
Microsoft Azure
Machine Learning Marketplace
R nuevas
secuencias de
comandos
010010
100100
010101
010010
100100
010101
010010
100100
010101
010010
100100
010101
010010
100100
010101
22. Integración con R Scripts
Fuente: https://visualstudiomagazine.com/articles/2015/05/04/sql-server-2016-preview.aspx
23. Revolution R vs SAS
• Pruebas realizadas por empresa
independiente – 5 x 4 core machines
ejecutando CentOS
• SAS 9.4: Base SAS, SAS/STAT, Grid Mgr
• Revolution R Enterprise ScaleR, IBM Platform
LSF, Platform MPI Release 9
• Data set: 591 columnas con 5,000,000 filas
24. Revo product suite
• Distribución gratis y open source R
• Mejorado y distribuido por Revolution Analytics
Revolution R Open
• Seguridad, Escalable una Distribución de R con soporte
• Incluye componentes propietarios creados por Revolution
Analytics
Revolution R Enterprise
25. Revolution R Enterprise (RRE)
Distribución Open Source de R:
• Conectivida con objetos big-data
• Big-data advanced analytics
• Soporte multiplataforma
• Análisis Predictivo In-Hadoop in-Teradata
• Soporte para ambientes de desarrollo y producción
• Servicios de soporte técnico y entrenamiento DistributedR
DeployR DevelopR
ScaleR
ConnectR
26. La Plataforma RRE
ConnectR
• Contiene High-speed &
direct connectors
Available for:
• High-performance XDF
• Formato de archivos SAS,
SPSS, delimited & fixed
format text
• Hadoop HDFS (texto & XDF)
• Teradata Database & Aster
• EDWs and ADWs
• ODBC
ScaleR
• Incluye características
Ready-to-Use high-
performance para
big data big analytics
• Procesamiento analítico
Fully-parallelized
• Estadística descriptive &
pruebas estadísticas
• Incluye funciones adicionales
de análisis predictivo
• Herramientas para distribuir
R algorithms entre nodos
• Soporte para Wide data –
miles de variables
DistributedR
• Framework de computación
distribuidad
• Portabilidad multiplataforma
Disponible en:
• Windows Servers
• Red Hat and SuSE Linux Servers
• Teradata Database
• Cloudera Hadoop
• Hortonworks Hadoop
• MapR Hadoop
R+CRAN
• Open source R interpreter
• R 3.2.2
• Gran cantidad de algoritmos
gratuitos
• Algoritmos utilizados por RevoR
• Embeddable R scripts
• 100% Compatible con R scripts, funciones
y paquetes
RevoR
• Intérprete de R con mejora
de desempeño
• Basado en el open source R
• Agrega high-performance
math library acelerar las
funciones de algebra lineal
27. Integración de R dentro de SQL Server 2016
27
exec sp_configure 'external scripts enabled', 1; reconfigure;
"C:Program filesRRORRO-3.2.2-for-RRE-7.5.0R-
3.2.2libraryRevoScaleRrxLibsx64registerRext.exe" /install
28. Integración de R dentro de SQL Server 2016
28
USE <target database name>
GO
CREATE LOGIN [<login name>] WITH PASSWORD= '<password>',
CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF;
CREATE USER [<user name>] FOR LOGIN [<login name>] WITH
DEFAULT_SCHEMA=[db_datareader]
ALTER ROLE [db_datareader] ADD MEMBER [<user name>]
29. Integración de R dentro de SQL Server 2016
29
USE [master]
GO
CREATE USER [<user name>] FOR LOGIN [<login name>] WITH
DEFAULT_SCHEMA=[db_rrerole]
ALTER ROLE [db_rrerole] ADD MEMBER [<user name>]
36. RRE: cómputo distribuido
Ningún movimiento de datos
Establecer el contexto de cálculo determina donde se
realiza la transformación
VAMPs
Teradata
Database
ODBC
Revolution R
Enterprise
Data
Segments
Database Nodes
Hybrid Storage
Parse
Engine
External Stored
Procedure
Table
Operator
Table
Operator
Table
Operator
Table
Operator
Desktops &
Servers
37. Contexto de cómputo local
### LOCAL COMPUTE CONTEXT ###
rxSetComputeContext("local")
### CREATE DIRECTORY AND FILE OBJECTS ###
AirlineDatabase <-file.path("datasets","AirlineDemoSmall")
AirlineDataSet <- RxXdfData(file.path(AirlineDatabase,"AirlineDemoSmall.xdf"))
### ANALYTICAL PROCESSING ###
### Statistical Summary of the data
rxSummary(~ArrDelay+DayOfWeek, data= AirlineDataSet, reportProgress=1)
### CrossTab the data
rxCrossTabs(ArrDelay ~ DayOfWeek, data= AirlineDataSet, means=T)
### Linear Model and plot
arrLateLinMod <- rxLinMod(ArrDelay ~ DayOfWeek + 0 , data = AirlineDataSet)
plot(arrLateLinMod$coefficients)
38. Remote Compute: Teradata
### SETUP TERADATA ENVIRONMENT VARIABLES ###
dbConnStr <- "Driver=Teradata; Server=dbHostName; Database=RevoDb; Uid=xxxx; pwd=xxxx"
myTeradataCC <- RxInTeradata(connectionString = dbConnStr, shareDir = "/tmp",
remoteShareDir = "/tmp/revoJobs", revoPath = "/usr/lib64/Revo-7.0/R-3.0.2/lib64/R")
### TERADATA COMPUTE CONTEXT ###
rxSetComputeContext(myTeradataCC)
### CREATE TERADATA DATA SOURCE ###
AirlineDemoQuery <- "SELECT * FROM AirlineDemoSmall;"
AirlineDataSet <- RxTeradata(connectionString = dbConnStr, sqlQuery = AirlineDemoQuery)
### ANALYTICAL PROCESSING ###
### Statistical Summary of the data
rxSummary(~ArrDelay+DayOfWeek, data= AirlineDataSet, reportProgress=1)
### CrossTab the data
rxCrossTabs(ArrDelay ~ DayOfWeek, data= AirlineDataSet, means=T)
### Linear Model and plot
arrLateLinMod <- rxLinMod(ArrDelay ~ DayOfWeek + 0 , data = AirlineDataSet)
plot(arrLateLinMod$coefficients)
39. Remote compute: Hadoop
### SETUP HADOOP ENVIRONMENT VARIABLES ###
myNameNode <- "master"
myUser <- "root"
myPort <- 8020
myHadoopCluster <- RxHadoopMR(sshUsername = myUser, sshHostname = myNameNode, port = myPort)
### HADOOP COMPUTE CONTEXT USING HDFS ###
rxSetComputeContext(myHadoopCluster)
### CREATE HDFS, DIRECTORY AND FILE OBJECTS ###
hdfsFS <- RxHdfsFileSystem(hostName=myNameNode, port=myPort)
AirlineDatabase <-file.path("datasets","AirlineDemoSmall")
AirlineDataSet <- RxXdfData(file.path(AirlineDatabase,"AirlineDemoSmall.xdf"), fileSystem = hdfsFS)
### ANALYTICAL PROCESSING ###
### Statistical Summary of the data
rxSummary(~ArrDelay+DayOfWeek, data= AirlineDataSet, reportProgress=1)
### CrossTab the data
rxCrossTabs(ArrDelay ~ DayOfWeek, data= AirlineDataSet, means=T)
### Linear Model and plot
arrLateLinMod <- rxLinMod(ArrDelay ~ DayOfWeek + 0 , data = AirlineDataSet)
plot(arrLateLinMod$coefficients)
40. Contexto remoto: SQL Server *
### SETUP SQL SERVER ENVIRONMENT VARIABLES ###
dbConnStr <- "Driver=SQL Server; Server=dbHostName; Database=RevoDb; Uid=xxxx; pwd=xxxx"
mySqlServerCC <- RxInSqlServer(connectionString = dbConnStr, consoleOutput = TRUE)
### SQL SERVER COMPUTE CONTEXT ###
rxSetComputeContext(mySqlServerCC)
### CREATE SQL SERVER DATA SOURCE ###
AirlineDemoQuery <- "SELECT * FROM AirlineDemoSmall;"
AirlineDataSet <- RxSqlServer(connectionString = dbConnStr, sqlQuery = AirlineDemoQuery)
### ANALYTICAL PROCESSING ###
### Statistical Summary of the data
rxSummary(~ArrDelay+DayOfWeek, data= AirlineDataSet, reportProgress=1)
### CrossTab the data
rxCrossTabs(ArrDelay ~ DayOfWeek, data= AirlineDataSet, means=T)
### Linear Model and plot
arrLateLinMod <- rxLinMod(ArrDelay ~ DayOfWeek + 0 , data = AirlineDataSet)
plot(arrLateLinMod$coefficients) * In 2016
41. ScaleR funciones y algoritmos
Data step
Data import – delimited, fixed, SAS, SPSS, ODBC
Variable creation & transformation
Recode variables
Factor variables
Missing value handling
Sort, merge, split
Aggregate by category (means, sums)
Descriptive statistics
Min / Max, Mean, Median (approx.)
Quantiles (approx.)
Standard deviation
Variance
Correlation
Covariance
Sum of squares (cross product matrix for set
variables)
Pairwise cross tabs
Risk ratio & odds ratio
Crosstabulation of data (standard tables & long
form)
Marginal summaries of crosstabulations
Statistical tests
Chi square test
Kendall rank correlation
Fisher’s exact test
Student’s t-test
Sampling
Subsample (observations & variables)
Random sampling
Predictive models
Sum of squares (cross product matrix for set
variables)
Multiple linear regression
Generalized linear models (GLM) exponential
family distributions: binomial, Gaussian, inverse
Gaussian, Poisson, Tweedie. Standard link
functions: cauchit, identity, log, logit, probit. User
defined distributions & link functions.
Covariance & correlation matrices
Logistic regression
Classification & regression trees
Predictions/scoring for models
Residuals for all models
Variable selection
Stepwise regression
Simulation
Simulation (eg Monte Carlo)
Parallel random number generation
Cluster analysis
K-means clustering
Classification
Decision forests (random forests)
Decision trees
Gradient boosted decision trees
Naïve Bayes
Combination
PEMA API
rxDataStep
rxExec
44. DataScience con Microsoft R Server y SQL Server 2016
09 de Marzo 2016 (12 pm GMT -5)
Eduardo Castro
Resumen:
En esta charla veremos las características del Microsoft R Server y
también la integración de R Scripts con SQL Server 2016.
Está por comenzar:
Moderador: Kenneth Ureña
Próximos Eventos
AlwaysOn lecciones aprendidas
16 de Marzo
Julian Castiblanco
Introducción a Polybase en SQL
Server 2016
23 de Marzo
Eladio Rincón