Python dentro de SQL Server

Eduardo Castro
Eduardo CastroArchitect em Comunidad Windows Costa Rica
Integración de Python dentro de SQL Server
Ing. Eduardo Castro, PhD
Agenda
•Intro
•Operacionalización
Aprendizaje de máquina
•Demo
•Intro
Servicios de aprendizaje de máquina de SQL Server
•Clasificación de productos
•Optimización de campañas
•Detección de fraudes usando puntuación nativa
Aprendizaje de clientes
Introducción
al aprendizaje
de máquina
• Predecir las propiedades de los nuevos datos
aprendiendo de una muestra
• Predecir las ventas de tiendas en una
región basada en ventas históricas
• Predecir la probabilidad de fraude en una
nueva transacción con tarjeta de crédito
• Predecir el valor predeterminado de un
nuevo préstamo basado en el historial de
préstamos/transacciones
• Predecir el sentimiento de un nuevo Tweet
• Clasificar nuevas imágenes basándose en
imágenes de ejemplo y atributos
• Clasificar los datos en grupos o clústeres
• Tecnologías populares de ML
• R & Python
Por qué Machine Learning con SQL Server?
Reducir o eliminar
movimiento de
datos con
analítica en base de
datos
Operacionalización
de modelos de
aprendizaje
automático
Obtenga
escalabilidad
empresarial,
desempeño y
seguridad
Base de datos regular + App Base de datos de inteligencia + App
Trayendo inteligencia a donde viven los datos
Aplicación +
inteligencia
Base
Aplicación
Inteligencia
+ Base de datos
Vs
Implementar análisis predictivos
Desarrollar Entrenar Implementar Consumir
Desarrollar, explore y
experimente en su IDE
favorito
Entrene modelos con
sp_execute_external_
y guarde los modelos
en la base de datos
Implementar ML con
sp_execute_external_
y predecir utilizando los
modelos
Haga que
aplicación/reportes
consumir las predicciones
Por qué el aprendizaje automático en SQL
Server?
Eliminar movimiento de datos
Aproveche la seguridad de la base de datos
Enviar ML Compute a la base de datos
Operacionalización de los scripts y modelos de ML
Llamar a los procedimientos almacenados de T-SQL
Administración de modelos en SQL Server
Rendimiento y escala de grado empresarial
Escala la analítica de R y Python con Multi-Threading y
procesamiento en paralelo
Seguridad de SQL Server, cumplimiento de normas, gobierno de
recursos, desempeño de consultas
Interactúa
directamente
con datos
Administrar datos y
Analytics juntos
Transformaciones SQL
Datos
relacionales
Biblioteca
analítica
Ejemplo
Segmentación
Agrupar clientes, productos y transacciones
en micro-segmentos según posibilidades de
pago
Optimización de precios
Aplicar algoritmos de optimización para
determinar el precio ' punto dulce ' en cada
segmento
Experto
Objetivo
Piso
Después
Selección de atributos
sp_execute_external_script
' R Code'
Herramienta de
selección de atributos
C++/R
Segmentación
Herramienta
C++/R
Segmentación
sp_execute_external_script
' R Code '
Puntuación
sp_execute_external_script
' R Code '
Tablas
de datos
SQL Server
SQL Server
Proc
almace
nado
Tablas
de datos
Antes
Servicios de
aprendizaje
de máquina
en SQL
Server
SQL Server 2016
Soporte de R (versión 3.2.2)
Microsoft R Server
SQL Server 2017
Native Scoring usando la función
de predicción (+ soporte para
Linux)
Biblioteca externa DDL para
administración de paquetes R
Soporte de ejecución de modo
batch para datos de entrada
R Support (versión 3.3.3)
Soporte de Python (Anaconda
3.5.2)
Azure SQL
Database y
los servicios
de
aprendizaje
de máquina
Scoring nativo mediante la función
predecir
Soporte para R (versión 3.3.3)
• Disponible en la región centro oeste de Estados
Unidos
• Niveles de servicio Premium y Premium RS
• Base R packages & RevoscaleR
• Entrenamiento y puntuación de modelos que
caben en la memoria
• Paralelismo trivial y soporte streaming
• Una ejecución concurrente de la escritura de R
Machine
Learning
Server
Soporte multi-
plataforma
Windows, Linux,
Hadoop, SQL Server
Microsoft R Server
RevoScaleR,
MicrosoftML, olapr,
sqlrutils paquetes
Operacionalización de
servicios Web
Microsoft machine
learning Server
Soporte de R & Python
revoscalepy, microsoftml
bibliotecas de Python
rxExecBy
Hadoop cambios
de licencia
5 nodos para cada SQL
Server EE Core bajo
garantía de software
Instalación de ML Services en SQL Server
Servicios de
SQL Server MLServicios de
SQL Server R
Proceso de instalación
Proceso de instalación
Proceso de instalación
Cualquier IDE de
R/Python
Científico de datos
Workstation
Script
Resultados
Ejecución
1
3
Científicos de datos - exploración de datos y
desarrollo de modelos
SQL Server
2
R/Python Runtime
Servicios de
aprendizaje de
máquinas
train <- RxSqlServerData(query,
connectionString, computeContext)
rxLogit(formula, train)
Aplicación exec sp_execute_external_script
@language = ' Python '
, @script =
--código Python--
El procedimiento
almacenado contiene
código R o Python y ejecuta
la base de datos
Desarrollador de aplicaciones-operacionalización del
modelo
Llamada de proc
almacenado
Resultados
1
3
Ejecución
SQL Server
2
R/Python Runtime
Servicios de
aprendizaje de
máquinas
Servicios de aprendizaje de
máquina en SQL Server
• Diseño de la integración de R/Python
• Invoca el tiempo de ejecución fuera del
proceso de SQL Server
• Operaciones orientadas por lotes
• Contexto de cálculo SQL
• Características de sp_execute_external_script
• Transmisión de datos desde SQL
• Ejecución paralela de secuencias de
comandos SQL Query & R/Python
• Scoring Nativo
Demo 01 Habilitar ML
Services
Cualquier IDE de
R/Python
Científico de datos
Workstation
Flujo de trabajo típico de aprendizaje automático contra base
de datos
SQL Server
Obtener
Datos
1
train <- sqlQuery(connection,
“select * from nyctaxi_sample”)
model <- glm(formula, train)
3
Salida del
modelo
2 Ejecución
Cualquier IDE de
R/Python
Científico de datos
Workstation RX* Output3
Flujo de trabajo de aprendizaje automático utilizando el
contexto de cálculo SQL
Ejecución2
SQL Server 2017
SQL Server
R/Python Runtime
Servicios de
aprendizaje de
máquinas
Script1
cc <- RxInSqlServer( connectionString,
computeContext)
rxLogit(formula, cc)
Modelo o
predicciones
4
Contexto de
cálculo SQL
desde
cliente
R/Python
Requisito
Uso de RX* Functions
Ventajas clave
Enviar el cálculo al servidor
Elimine el movimiento de datos
del servidor al cliente
Utilizar recursos de servidor para
la ejecución del script de ML
Ejecución dentro de SQL Server
sp_execute_external_script
@language = N'language' ,
@script = N'script',
@input_data_1 = ] 'input_data_1'
[ , @input_data_1_name = ] N'input_data_1_name' ]
[ , @output_data_1_name = 'output_data_1_name' ]
[ , @parallel = 0 | 1 ]
[ , @params = ] N'@parameter_name data_type [ OUT | OUTPUT ] [ ,...n ]'
[ , @parameter1 = ] 'value1' [ OUT | OUTPUT ] [ ,...n ]
[ WITH <execute_option> ]
[;]
<execute_option>::=
{
{ RESULT SETS UNDEFINED }
| { RESULT SETS NONE }
| { RESULT SETS ( <result_sets_definition> ) }
}
Integración
Python SQL
Server
Launchpad - The SQL Server Trusted Launchpad es un
servicio proporcionado por SQL Server 2017 para
apoyar la ejecución de scripts externos, similar a la
forma en que el servicio de indexación y consulta de
texto completo ejecuta motores separados para el
procesamiento de consultas de texto completo.
Binary Exchange Language (Bxl) Server - BxlServer es
un componente proporcionado por Microsoft que
administra la comunicación entre SQL Server y el
Runtime de Python.
SQL Satellite - Es una nueva API de extensibilidad en
SQL Server que es proporcionada por el motor de
base de datos para código externo. BxlServer utiliza el
SQL Satellite para comunicarse con SQL Server.
Integración Python SQL Server
Demo 02 Ejecución
de Script
Consideraciones
clave de rendimiento
• ¿Cuánto tiempo se tarda en movimiento de datos?
• Uso XEvents o exec sp_execute_external_script
• @language = N'R ', @script =
N ' ', @input_data_1 = <sql_query>
• ¿Cómo puedes separar CPU ¿uso de SQL & R/Python?
• Utilizar el EXTERNAL RESOURCE POOL para la afinidad de
CPU
• ¿Cómo puede asignar más memoria a R/Python?
• El valor predeterminado es 20%
• Utilizar el pool de recursos externos para ajustar el límite de
memoria
• Utilice ‘max server memory’ sp_configure
Enviar datos
de SQL
Server hacia
el External
Runtime
Requisitos:
Suficiente memoria para
los procesos de
R/Python para
almacenar y procesar los
datos
Ventajas clave:
Única opción para las
funciones Cran-R o
Python (no RX*)
El resultado completo de
la consulta se copia en
proceso de R/Python
Desventajas:
Limitado por memoria
asignada a procesos
R/Python
La simultaneidad puede
ser limitada
Enviar datos de SQL Server hacia el External
Runtime
sp_execute_external_
script
@input_data_1 = N’
SELECT * FROM
TrainingData’
InputDataset:
data.frame
OR
Pandas
dataframe
Enviar datos de una consulta a un Runtime Externo
exec sp_execute_external_script
@language = N'R'
, @script = N'
# build classification model to predict tipped or not
model_generation_duration <- system.time(
logitObj <- glm(tipped ~ passenger_count + trip_distance + trip_time_in_secs +
direct_distance, data = InputDataSet,
family = binomial(link=logit)))[3];
# First, serialize a model and put it into a database table
modelbin <- serialize(logitObj, NULL);
'
, @input_data_1 = N'SELECT * FROM nyctaxi_training_sample'
, @params = N'@modelbin varbinary(max) OUTPUT, @model_generation_duration float OUTPUT'
, @modelbin = @model OUTPUT
, @model_generation_duration = @model_generation_duration OUTPUT;
Demo 03 Integración de
datos en SQL Server con
Pyhton Script
Streamming
de ejecución
de scripts de
R/Python
Requisitos:
• No debe tener dependencia entre
filas (ej: scoring)
Ventajas:
• Ejecutar secuencias de comandos
sobre chunks de datos
• Procesar datos que no caben en la
memoria
• Puede ser utilizado desde el cliente
(RX* Function) o servidor
5000
5000
5000
Dataset = 15000 Rows
Sp_execute_external_script
@r_rowsPerRead = 5000
Predict()
Predict()
Predict()
Streaming
SQL Server
Execute R script
Execute R script
Streaming desde el servidor
exec sp_execute_external_script
@language = N'R’
, @script = N'
# unserialize model
logitObj <- unserialize(modelbin);
# build classification model to predict tipped or not
system.time(OutputDataSet <- data.frame(predict(logitObj, newdata = InputDataSet,
type = "response")))[3];
‘
, @input_data_1 = N’
SELECT tipped, passenger_count, trip_time_in_secs, trip_distance, d.direct_distance
FROM dbo.nyctaxi_sample TABLESAMPLE (50 PERCENT) REPEATABLE (98074)
CROSS APPLY [CalculateDistance](pickup_latitude, pickup_longitude,
dropoff_latitude, dropoff_longitude) as d’
, @params = N'@modelbin varbinary(max), @r_rowsPerRead int’
, @modelbin = @model
, @r_rowsPerRead = 5000;
Demo 04 Generación de gráficos con Python
Procesamiento
en paralelo
Requisitos:
Plan de consultas paralelas para
el estatuto SELECT
Sin dependencia entre filas (ej:
scoring) – paralelismo trivial
Utilice funciones rx* para el
entrenamiento en paralelo
Ventajas clave:
Escala a grandes conjuntos de
datos
Aproveche múltiples CPUs
Se integra con la ejecución de
consultas paralelas de SQL
Server
Procesamiento paralelo – paralelismo trivial
Predict()
Predict()
sp_execute_external_
script
@script =
N’Predict…’,
@parallel = 1
(MAXDOP = 2)
<Results>
<Results>
Paralelismo trivial
exec sp_execute_external_script
@language = N'R’
, @script = N'
# unserialize model
logitObj <- unserialize(modelbin);
# build classification model to predict tipped or not
system.time(OutputDataSet <- data.frame(predict(logitObj, newdata = InputDataSet,
type = "response")))[3];
‘
, @input_data_1 = N’
SELECT tipped, passenger_count, trip_time_in_secs, trip_distance, d.direct_distance
FROM dbo.nyctaxi_sample TABLESAMPLE (50 PERCENT) REPEATABLE (98074)
CROSS APPLY [CalculateDistance](pickup_latitude, pickup_longitude,
dropoff_latitude, dropoff_longitude) as d
OPTION(MAXDOP 2) -- Needed only to control DOP’
, @parallel = 1
, @params = N'@modelbin varbinary(max), @r_rowsPerRead int’
, @modelbin = @model
, @r_rowsPerRead = 5000;
Demo 05 Creación de
modelos con Python
Puntuación
nativa
mediante la
función
PREDICT
Requisitos:
• Sólo modelos RX*
• Modelo serializado de rxSerializeModel (R)
• Modelo serializado de rx_serialize_model
(Python)
Ventajas clave:
• Se ejecuta de forma nativa en SQL Server (sin
dependencia de R/Python)
• Baja latencia para la ejecución
• Ideal para la puntuación altamente
concurrente de pocas filas
• Puede ser utilizado en la instrucción
INSERT/UPDATE/MERGE
PREDICT
DECLARE @model varbinary(max) = (
SELECT native_model
FROM models
WHERE model_name = 'Fraud Detection Model’);
INSERT INTO dbo.potential_fraud_transactions
(score, transactionKey)
SELECT p.Label_prob, t.transactionKey
FROM PREDICT(MODEL = @model, DATA = new_transaction)
WITH(Label_prob float) as p;
Operacionalización de aprendizaje automático
Servidor analítico
Servicio separado o lógica
incrustada
• Fácil operacionalización
• Rendimiento
• Alta disponibilidad
• Gobernanza de los recursos
MEJORES
PRÁCTICAS
No
• Ejecutar R/Python script as-is
• Realizar transformaciones de
datos que se pueden lograr en
SQL
• Acceso a recursos de red
• Procesar/transformar archivos
como parte de la llamada al
procedimiento almacenado
• Incrustar el código R/Python
directamente en aplicaciones
• Desarrolle/pruebe de RTVS, PTVS,
Rstudio u otro IDE
• SQL Compute Context desde el cliente
• Procesamiento de datos y
transformaciones en SQL Server
• Integración de datos mediante
funciones de SQL Server
• Gestión de modelos en base de datos
SI
Resumen
• Mejore el rendimiento de sus
comandos ML utilizando:
• SQL Compute context del cliente
(Funciones RX)
• Streaming para reducir el uso de
memoria
• Paralelismo trivial para scoring
(predecir o rxPredict)
• Formación paralela y puntuación
utilizando RX* Functions
• Función de predicción nativa para
puntuación de baja latencia
1 de 46

Recomendados

Tema3 modelo relacional por
Tema3   modelo relacionalTema3   modelo relacional
Tema3 modelo relacionalAlvaro Loustau
842 visualizações18 slides
Especificación de requisitos de software por
Especificación de requisitos de softwareEspecificación de requisitos de software
Especificación de requisitos de softwareJhoselinQ
1.8K visualizações10 slides
Diccionario de Datos por
Diccionario de DatosDiccionario de Datos
Diccionario de DatosALONSO UCHIHA
11.6K visualizações10 slides
Documento arquitectura de software por
Documento arquitectura de softwareDocumento arquitectura de software
Documento arquitectura de softwareAURA SYSTEMS S.A.C
11.1K visualizações29 slides
Tecnología Orientada a Objetos por
Tecnología Orientada a ObjetosTecnología Orientada a Objetos
Tecnología Orientada a ObjetosErivan Martinez Ovando
6.2K visualizações67 slides
Fundamentos y metodos de analisis de requerimientos por
Fundamentos y metodos de analisis de requerimientosFundamentos y metodos de analisis de requerimientos
Fundamentos y metodos de analisis de requerimientoslexiherrera
1.2K visualizações15 slides

Mais conteúdo relacionado

Mais procurados

Diagramas de contexto para blog por
Diagramas de contexto para blogDiagramas de contexto para blog
Diagramas de contexto para blogmartinvazquez
9.7K visualizações5 slides
Lenguaje Unificado de Modelado (UML) por
Lenguaje Unificado de Modelado (UML)Lenguaje Unificado de Modelado (UML)
Lenguaje Unificado de Modelado (UML)AndreaPumarejo
10.9K visualizações51 slides
Evaluacion de arquitecturas por
Evaluacion de arquitecturasEvaluacion de arquitecturas
Evaluacion de arquitecturasSamis Ambrocio
4.9K visualizações42 slides
Unidad 10 Mad Diagrama De Clases por
Unidad 10 Mad Diagrama De ClasesUnidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesSergio Sanchez
7.1K visualizações38 slides
Software proyecto por
Software proyectoSoftware proyecto
Software proyectodannyvelasco
4.6K visualizações11 slides
Base de Dato Oracle por
Base de Dato OracleBase de Dato Oracle
Base de Dato OracleJose Antonio Espino Lopez
17.7K visualizações29 slides

Mais procurados(20)

Diagramas de contexto para blog por martinvazquez
Diagramas de contexto para blogDiagramas de contexto para blog
Diagramas de contexto para blog
martinvazquez9.7K visualizações
Lenguaje Unificado de Modelado (UML) por AndreaPumarejo
Lenguaje Unificado de Modelado (UML)Lenguaje Unificado de Modelado (UML)
Lenguaje Unificado de Modelado (UML)
AndreaPumarejo10.9K visualizações
Evaluacion de arquitecturas por Samis Ambrocio
Evaluacion de arquitecturasEvaluacion de arquitecturas
Evaluacion de arquitecturas
Samis Ambrocio4.9K visualizações
Unidad 10 Mad Diagrama De Clases por Sergio Sanchez
Unidad 10 Mad Diagrama De ClasesUnidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De Clases
Sergio Sanchez7.1K visualizações
Software proyecto por dannyvelasco
Software proyectoSoftware proyecto
Software proyecto
dannyvelasco4.6K visualizações
Puestos y responsabilidades del personal de base de datos por rumus1000
Puestos y responsabilidades del personal de base de datosPuestos y responsabilidades del personal de base de datos
Puestos y responsabilidades del personal de base de datos
rumus10008.5K visualizações
documento arquitectura por Marco Alvarez Bustos
documento arquitecturadocumento arquitectura
documento arquitectura
Marco Alvarez Bustos2.3K visualizações
Algebra y calculo relacional por Albert Sinergy
Algebra y calculo relacionalAlgebra y calculo relacional
Algebra y calculo relacional
Albert Sinergy4.5K visualizações
13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la... por Uriel Herrera
13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...
13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...
Uriel Herrera26.4K visualizações
Documentación de Proyecto de Software. por Edgard Ramirez Huaccha
Documentación de Proyecto de Software.Documentación de Proyecto de Software.
Documentación de Proyecto de Software.
Edgard Ramirez Huaccha61.7K visualizações
Tema 4. Diseño experimental para un factor por KarimeBalderas3
Tema 4. Diseño experimental para un factor Tema 4. Diseño experimental para un factor
Tema 4. Diseño experimental para un factor
KarimeBalderas3535 visualizações
Diagramas de casos de uso por Ronny Parra
Diagramas de casos de usoDiagramas de casos de uso
Diagramas de casos de uso
Ronny Parra17.2K visualizações
Formato Para La Captura Y DescripcióN De Requerimientos por Josse Perez
Formato Para La Captura  Y DescripcióN De RequerimientosFormato Para La Captura  Y DescripcióN De Requerimientos
Formato Para La Captura Y DescripcióN De Requerimientos
Josse Perez9.5K visualizações
Diagrama desecuenciabiblioteca 1 por 1052403005n
Diagrama desecuenciabiblioteca 1Diagrama desecuenciabiblioteca 1
Diagrama desecuenciabiblioteca 1
1052403005n3.5K visualizações
2 1 1_diseño arquitectónico por landeta_p
2 1 1_diseño arquitectónico2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico
landeta_p631 visualizações

Similar a Python dentro de SQL Server

Machine Learning en SQL Server por
Machine Learning en SQL ServerMachine Learning en SQL Server
Machine Learning en SQL ServerMaximiliano Accotto
283 visualizações25 slides
02 troubleshooting essentials sql server profiler - sql pass peru por
02 troubleshooting essentials   sql server profiler - sql pass peru02 troubleshooting essentials   sql server profiler - sql pass peru
02 troubleshooting essentials sql server profiler - sql pass peruGuillermo Taylor
831 visualizações23 slides
Commit 2018 - Integrando Microservicios y Machine Learning por
Commit 2018 - Integrando Microservicios y Machine LearningCommit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningRafa Hidalgo
112 visualizações37 slides
Introduction to Machine Learning with Azure por
Introduction to Machine Learning with AzureIntroduction to Machine Learning with Azure
Introduction to Machine Learning with AzureAlan Koo
939 visualizações43 slides
Microsoft machine learning por
Microsoft machine learningMicrosoft machine learning
Microsoft machine learningMaximiliano Accotto
286 visualizações35 slides
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab... por
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...SpanishPASSVC
354 visualizações36 slides

Similar a Python dentro de SQL Server(20)

Machine Learning en SQL Server por Maximiliano Accotto
Machine Learning en SQL ServerMachine Learning en SQL Server
Machine Learning en SQL Server
Maximiliano Accotto283 visualizações
02 troubleshooting essentials sql server profiler - sql pass peru por Guillermo Taylor
02 troubleshooting essentials   sql server profiler - sql pass peru02 troubleshooting essentials   sql server profiler - sql pass peru
02 troubleshooting essentials sql server profiler - sql pass peru
Guillermo Taylor831 visualizações
Commit 2018 - Integrando Microservicios y Machine Learning por Rafa Hidalgo
Commit 2018 - Integrando Microservicios y Machine LearningCommit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine Learning
Rafa Hidalgo112 visualizações
Introduction to Machine Learning with Azure por Alan Koo
Introduction to Machine Learning with AzureIntroduction to Machine Learning with Azure
Introduction to Machine Learning with Azure
Alan Koo939 visualizações
Microsoft machine learning por Maximiliano Accotto
Microsoft machine learningMicrosoft machine learning
Microsoft machine learning
Maximiliano Accotto286 visualizações
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab... por SpanishPASSVC
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
SpanishPASSVC354 visualizações
Exprimiendo SharePoint 2010 por Juan Pablo
Exprimiendo SharePoint 2010Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010
Juan Pablo 1.5K visualizações
Escalabilidad en azure sql database con elastic scale por Eduardo Castro
Escalabilidad en azure sql database con elastic scaleEscalabilidad en azure sql database con elastic scale
Escalabilidad en azure sql database con elastic scale
Eduardo Castro657 visualizações
Azure sql database escalabilidad por Eduardo Castro
Azure sql database escalabilidadAzure sql database escalabilidad
Azure sql database escalabilidad
Eduardo Castro514 visualizações
Novedades sql server 2008 para developers por Enrique Catala Bañuls
Novedades sql server 2008 para developersNovedades sql server 2008 para developers
Novedades sql server 2008 para developers
Enrique Catala Bañuls957 visualizações
Introducción R - Primeros pasos por SolidQ
Introducción R - Primeros pasosIntroducción R - Primeros pasos
Introducción R - Primeros pasos
SolidQ1.1K visualizações
Enterprise DB por Eptisa TI por Aurora López García
Enterprise DB por Eptisa TI Enterprise DB por Eptisa TI
Enterprise DB por Eptisa TI
Aurora López García1.1K visualizações
Presentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus por Xavier Espinoza
Presentación Taller Herramientas Rendimiento DB2 en IBM i y GenexusPresentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
Presentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
Xavier Espinoza367 visualizações
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin... por Luis775803
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Luis77580316 visualizações
BD_EQ1_INVESTIGACION_APORTACION_SQLSERVER2008EXPRESS_TODOS por guestfd36060
BD_EQ1_INVESTIGACION_APORTACION_SQLSERVER2008EXPRESS_TODOSBD_EQ1_INVESTIGACION_APORTACION_SQLSERVER2008EXPRESS_TODOS
BD_EQ1_INVESTIGACION_APORTACION_SQLSERVER2008EXPRESS_TODOS
guestfd36060461 visualizações
Clases 30 05 por Rodolfo Canelòn
Clases 30 05Clases 30 05
Clases 30 05
Rodolfo Canelòn1.7K visualizações
Minería datos con SQL Server 2012 por Eduardo Castro
Minería datos con SQL Server 2012Minería datos con SQL Server 2012
Minería datos con SQL Server 2012
Eduardo Castro3.3K visualizações
Dts y analysis services 2000 por Salvador Ramos
Dts y analysis services 2000Dts y analysis services 2000
Dts y analysis services 2000
Salvador Ramos1.4K visualizações
Machine learning for dummies - Azuges November 2016 por Carlos Landeras Martínez
Machine learning for dummies - Azuges November 2016Machine learning for dummies - Azuges November 2016
Machine learning for dummies - Azuges November 2016
Carlos Landeras Martínez1.3K visualizações

Mais de Eduardo Castro

Introducción a polybase en SQL Server por
Introducción a polybase en SQL ServerIntroducción a polybase en SQL Server
Introducción a polybase en SQL ServerEduardo Castro
30 visualizações62 slides
Creando tu primer ambiente de AI en Azure ML y SQL Server por
Creando tu primer ambiente de AI en Azure ML y SQL ServerCreando tu primer ambiente de AI en Azure ML y SQL Server
Creando tu primer ambiente de AI en Azure ML y SQL ServerEduardo Castro
22 visualizações25 slides
Seguridad en SQL Azure por
Seguridad en SQL AzureSeguridad en SQL Azure
Seguridad en SQL AzureEduardo Castro
9 visualizações45 slides
Azure Synapse Analytics MLflow por
Azure Synapse Analytics MLflowAzure Synapse Analytics MLflow
Azure Synapse Analytics MLflowEduardo Castro
20 visualizações47 slides
SQL Server 2019 con Windows Server 2022 por
SQL Server 2019 con Windows Server 2022SQL Server 2019 con Windows Server 2022
SQL Server 2019 con Windows Server 2022Eduardo Castro
24 visualizações8 slides
Novedades en SQL Server 2022 por
Novedades en SQL Server 2022Novedades en SQL Server 2022
Novedades en SQL Server 2022Eduardo Castro
22 visualizações9 slides

Mais de Eduardo Castro(20)

Introducción a polybase en SQL Server por Eduardo Castro
Introducción a polybase en SQL ServerIntroducción a polybase en SQL Server
Introducción a polybase en SQL Server
Eduardo Castro30 visualizações
Creando tu primer ambiente de AI en Azure ML y SQL Server por Eduardo Castro
Creando tu primer ambiente de AI en Azure ML y SQL ServerCreando tu primer ambiente de AI en Azure ML y SQL Server
Creando tu primer ambiente de AI en Azure ML y SQL Server
Eduardo Castro22 visualizações
Seguridad en SQL Azure por Eduardo Castro
Seguridad en SQL AzureSeguridad en SQL Azure
Seguridad en SQL Azure
Eduardo Castro9 visualizações
Azure Synapse Analytics MLflow por Eduardo Castro
Azure Synapse Analytics MLflowAzure Synapse Analytics MLflow
Azure Synapse Analytics MLflow
Eduardo Castro20 visualizações
SQL Server 2019 con Windows Server 2022 por Eduardo Castro
SQL Server 2019 con Windows Server 2022SQL Server 2019 con Windows Server 2022
SQL Server 2019 con Windows Server 2022
Eduardo Castro24 visualizações
Novedades en SQL Server 2022 por Eduardo Castro
Novedades en SQL Server 2022Novedades en SQL Server 2022
Novedades en SQL Server 2022
Eduardo Castro22 visualizações
Introduccion a SQL Server 2022 por Eduardo Castro
Introduccion a SQL Server 2022Introduccion a SQL Server 2022
Introduccion a SQL Server 2022
Eduardo Castro77 visualizações
Machine Learning con Azure Managed Instance por Eduardo Castro
Machine Learning con Azure Managed InstanceMachine Learning con Azure Managed Instance
Machine Learning con Azure Managed Instance
Eduardo Castro67 visualizações
Novedades en sql server 2022 por Eduardo Castro
Novedades en sql server 2022Novedades en sql server 2022
Novedades en sql server 2022
Eduardo Castro346 visualizações
Sql server 2019 con windows server 2022 por Eduardo Castro
Sql server 2019 con windows server 2022Sql server 2019 con windows server 2022
Sql server 2019 con windows server 2022
Eduardo Castro235 visualizações
Introduccion a databricks por Eduardo Castro
Introduccion a databricksIntroduccion a databricks
Introduccion a databricks
Eduardo Castro234 visualizações
Pronosticos con sql server por Eduardo Castro
Pronosticos con sql serverPronosticos con sql server
Pronosticos con sql server
Eduardo Castro253 visualizações
Data warehouse con azure synapse analytics por Eduardo Castro
Data warehouse con azure synapse analyticsData warehouse con azure synapse analytics
Data warehouse con azure synapse analytics
Eduardo Castro447 visualizações
Que hay de nuevo en el Azure Data Lake Storage Gen2 por Eduardo Castro
Que hay de nuevo en el Azure Data Lake Storage Gen2Que hay de nuevo en el Azure Data Lake Storage Gen2
Que hay de nuevo en el Azure Data Lake Storage Gen2
Eduardo Castro389 visualizações
Introduccion a Azure Synapse Analytics por Eduardo Castro
Introduccion a Azure Synapse AnalyticsIntroduccion a Azure Synapse Analytics
Introduccion a Azure Synapse Analytics
Eduardo Castro345 visualizações
Seguridad de SQL Database en Azure por Eduardo Castro
Seguridad de SQL Database en AzureSeguridad de SQL Database en Azure
Seguridad de SQL Database en Azure
Eduardo Castro321 visualizações
Servicios Cognitivos de de Microsoft por Eduardo Castro
Servicios Cognitivos de de Microsoft Servicios Cognitivos de de Microsoft
Servicios Cognitivos de de Microsoft
Eduardo Castro223 visualizações
Script de paso a paso de configuración de Secure Enclaves por Eduardo Castro
Script de paso a paso de configuración de Secure EnclavesScript de paso a paso de configuración de Secure Enclaves
Script de paso a paso de configuración de Secure Enclaves
Eduardo Castro210 visualizações
Introducción a conceptos de SQL Server Secure Enclaves por Eduardo Castro
Introducción a conceptos de SQL Server Secure EnclavesIntroducción a conceptos de SQL Server Secure Enclaves
Introducción a conceptos de SQL Server Secure Enclaves
Eduardo Castro230 visualizações
Que es azure sql datawarehouse por Eduardo Castro
Que es azure sql datawarehouseQue es azure sql datawarehouse
Que es azure sql datawarehouse
Eduardo Castro358 visualizações

Último

Dominios de internet.pdf por
Dominios de internet.pdfDominios de internet.pdf
Dominios de internet.pdfNahomiBanchen
8 visualizações2 slides
Excel avanzado.pdf por
Excel avanzado.pdfExcel avanzado.pdf
Excel avanzado.pdffspro99
9 visualizações6 slides
Tecnologia (6).pdf por
Tecnologia (6).pdfTecnologia (6).pdf
Tecnologia (6).pdffspro99
6 visualizações6 slides
TALLER FUNDAMENTOS Y ELECTRICIDAD GRADO 9-2.pdf por
TALLER FUNDAMENTOS Y ELECTRICIDAD GRADO 9-2.pdfTALLER FUNDAMENTOS Y ELECTRICIDAD GRADO 9-2.pdf
TALLER FUNDAMENTOS Y ELECTRICIDAD GRADO 9-2.pdfsamuellopezrivera928
5 visualizações16 slides
excelavanzado1-231020003159-be608ddc.pdf por
excelavanzado1-231020003159-be608ddc.pdfexcelavanzado1-231020003159-be608ddc.pdf
excelavanzado1-231020003159-be608ddc.pdforianaisabellaramire
16 visualizações23 slides
FC if03.pptx por
FC if03.pptxFC if03.pptx
FC if03.pptxScarletRodriguez14
5 visualizações6 slides

Último(20)

Dominios de internet.pdf por NahomiBanchen
Dominios de internet.pdfDominios de internet.pdf
Dominios de internet.pdf
NahomiBanchen8 visualizações
Excel avanzado.pdf por fspro99
Excel avanzado.pdfExcel avanzado.pdf
Excel avanzado.pdf
fspro999 visualizações
Tecnologia (6).pdf por fspro99
Tecnologia (6).pdfTecnologia (6).pdf
Tecnologia (6).pdf
fspro996 visualizações
TALLER FUNDAMENTOS Y ELECTRICIDAD GRADO 9-2.pdf por samuellopezrivera928
TALLER FUNDAMENTOS Y ELECTRICIDAD GRADO 9-2.pdfTALLER FUNDAMENTOS Y ELECTRICIDAD GRADO 9-2.pdf
TALLER FUNDAMENTOS Y ELECTRICIDAD GRADO 9-2.pdf
samuellopezrivera9285 visualizações
excelavanzado1-231020003159-be608ddc.pdf por orianaisabellaramire
excelavanzado1-231020003159-be608ddc.pdfexcelavanzado1-231020003159-be608ddc.pdf
excelavanzado1-231020003159-be608ddc.pdf
orianaisabellaramire16 visualizações
PostCall: Encuestas telefónicas post llamada por OpenDireito
PostCall: Encuestas telefónicas post llamadaPostCall: Encuestas telefónicas post llamada
PostCall: Encuestas telefónicas post llamada
OpenDireito6 visualizações
RECURSOS EDUCATIVOS.docx por glorypagalo84
RECURSOS EDUCATIVOS.docxRECURSOS EDUCATIVOS.docx
RECURSOS EDUCATIVOS.docx
glorypagalo8410 visualizações
Fundamentos De Electricidad y Electrónica equipo 5.pdf por coloradxmaria
Fundamentos De Electricidad y Electrónica equipo 5.pdfFundamentos De Electricidad y Electrónica equipo 5.pdf
Fundamentos De Electricidad y Electrónica equipo 5.pdf
coloradxmaria13 visualizações
MakeCode por Coffe9
MakeCodeMakeCode
MakeCode
Coffe96 visualizações
Tarea Práctica web de la sesión 14.pptx por illanlir
Tarea Práctica web de la sesión 14.pptxTarea Práctica web de la sesión 14.pptx
Tarea Práctica web de la sesión 14.pptx
illanlir14 visualizações
Dominios de Internet.pdf por AnahisZambrano
Dominios de Internet.pdfDominios de Internet.pdf
Dominios de Internet.pdf
AnahisZambrano8 visualizações
ACTIVIDAD 3 TECNOLOGIAA (1).pdf por IsabelQuintero36
ACTIVIDAD 3 TECNOLOGIAA (1).pdfACTIVIDAD 3 TECNOLOGIAA (1).pdf
ACTIVIDAD 3 TECNOLOGIAA (1).pdf
IsabelQuintero367 visualizações
programacion orientada a objetos_sebastian segura barreto.pptx por sebastiansegura25
programacion orientada a objetos_sebastian segura barreto.pptxprogramacion orientada a objetos_sebastian segura barreto.pptx
programacion orientada a objetos_sebastian segura barreto.pptx
sebastiansegura259 visualizações
fundamentosdeelectricidadyelectronica-231021044044-6e7cadfc.pdf por 8m6zpwytgs
fundamentosdeelectricidadyelectronica-231021044044-6e7cadfc.pdffundamentosdeelectricidadyelectronica-231021044044-6e7cadfc.pdf
fundamentosdeelectricidadyelectronica-231021044044-6e7cadfc.pdf
8m6zpwytgs8 visualizações
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf por ortizjuanjose591
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdfFUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf
ortizjuanjose5915 visualizações
PRESENTACION DE FC.pptx por GabrielRivas75
PRESENTACION DE FC.pptxPRESENTACION DE FC.pptx
PRESENTACION DE FC.pptx
GabrielRivas755 visualizações
Excel avanzado.pdf por NyobeMahechaDvila
Excel avanzado.pdfExcel avanzado.pdf
Excel avanzado.pdf
NyobeMahechaDvila46 visualizações

Python dentro de SQL Server

  • 1. Integración de Python dentro de SQL Server Ing. Eduardo Castro, PhD
  • 2. Agenda •Intro •Operacionalización Aprendizaje de máquina •Demo •Intro Servicios de aprendizaje de máquina de SQL Server •Clasificación de productos •Optimización de campañas •Detección de fraudes usando puntuación nativa Aprendizaje de clientes
  • 3. Introducción al aprendizaje de máquina • Predecir las propiedades de los nuevos datos aprendiendo de una muestra • Predecir las ventas de tiendas en una región basada en ventas históricas • Predecir la probabilidad de fraude en una nueva transacción con tarjeta de crédito • Predecir el valor predeterminado de un nuevo préstamo basado en el historial de préstamos/transacciones • Predecir el sentimiento de un nuevo Tweet • Clasificar nuevas imágenes basándose en imágenes de ejemplo y atributos • Clasificar los datos en grupos o clústeres • Tecnologías populares de ML • R & Python
  • 4. Por qué Machine Learning con SQL Server? Reducir o eliminar movimiento de datos con analítica en base de datos Operacionalización de modelos de aprendizaje automático Obtenga escalabilidad empresarial, desempeño y seguridad
  • 5. Base de datos regular + App Base de datos de inteligencia + App Trayendo inteligencia a donde viven los datos Aplicación + inteligencia Base Aplicación Inteligencia + Base de datos Vs
  • 6. Implementar análisis predictivos Desarrollar Entrenar Implementar Consumir Desarrollar, explore y experimente en su IDE favorito Entrene modelos con sp_execute_external_ y guarde los modelos en la base de datos Implementar ML con sp_execute_external_ y predecir utilizando los modelos Haga que aplicación/reportes consumir las predicciones
  • 7. Por qué el aprendizaje automático en SQL Server? Eliminar movimiento de datos Aproveche la seguridad de la base de datos Enviar ML Compute a la base de datos Operacionalización de los scripts y modelos de ML Llamar a los procedimientos almacenados de T-SQL Administración de modelos en SQL Server Rendimiento y escala de grado empresarial Escala la analítica de R y Python con Multi-Threading y procesamiento en paralelo Seguridad de SQL Server, cumplimiento de normas, gobierno de recursos, desempeño de consultas Interactúa directamente con datos Administrar datos y Analytics juntos Transformaciones SQL Datos relacionales Biblioteca analítica
  • 8. Ejemplo Segmentación Agrupar clientes, productos y transacciones en micro-segmentos según posibilidades de pago Optimización de precios Aplicar algoritmos de optimización para determinar el precio ' punto dulce ' en cada segmento Experto Objetivo Piso
  • 9. Después Selección de atributos sp_execute_external_script ' R Code' Herramienta de selección de atributos C++/R Segmentación Herramienta C++/R Segmentación sp_execute_external_script ' R Code ' Puntuación sp_execute_external_script ' R Code ' Tablas de datos SQL Server SQL Server Proc almace nado Tablas de datos Antes
  • 10. Servicios de aprendizaje de máquina en SQL Server SQL Server 2016 Soporte de R (versión 3.2.2) Microsoft R Server SQL Server 2017 Native Scoring usando la función de predicción (+ soporte para Linux) Biblioteca externa DDL para administración de paquetes R Soporte de ejecución de modo batch para datos de entrada R Support (versión 3.3.3) Soporte de Python (Anaconda 3.5.2)
  • 11. Azure SQL Database y los servicios de aprendizaje de máquina Scoring nativo mediante la función predecir Soporte para R (versión 3.3.3) • Disponible en la región centro oeste de Estados Unidos • Niveles de servicio Premium y Premium RS • Base R packages & RevoscaleR • Entrenamiento y puntuación de modelos que caben en la memoria • Paralelismo trivial y soporte streaming • Una ejecución concurrente de la escritura de R
  • 12. Machine Learning Server Soporte multi- plataforma Windows, Linux, Hadoop, SQL Server Microsoft R Server RevoScaleR, MicrosoftML, olapr, sqlrutils paquetes Operacionalización de servicios Web Microsoft machine learning Server Soporte de R & Python revoscalepy, microsoftml bibliotecas de Python rxExecBy Hadoop cambios de licencia 5 nodos para cada SQL Server EE Core bajo garantía de software
  • 13. Instalación de ML Services en SQL Server Servicios de SQL Server MLServicios de SQL Server R
  • 17. Cualquier IDE de R/Python Científico de datos Workstation Script Resultados Ejecución 1 3 Científicos de datos - exploración de datos y desarrollo de modelos SQL Server 2 R/Python Runtime Servicios de aprendizaje de máquinas train <- RxSqlServerData(query, connectionString, computeContext) rxLogit(formula, train)
  • 18. Aplicación exec sp_execute_external_script @language = ' Python ' , @script = --código Python-- El procedimiento almacenado contiene código R o Python y ejecuta la base de datos Desarrollador de aplicaciones-operacionalización del modelo Llamada de proc almacenado Resultados 1 3 Ejecución SQL Server 2 R/Python Runtime Servicios de aprendizaje de máquinas
  • 19. Servicios de aprendizaje de máquina en SQL Server • Diseño de la integración de R/Python • Invoca el tiempo de ejecución fuera del proceso de SQL Server • Operaciones orientadas por lotes • Contexto de cálculo SQL • Características de sp_execute_external_script • Transmisión de datos desde SQL • Ejecución paralela de secuencias de comandos SQL Query & R/Python • Scoring Nativo
  • 20. Demo 01 Habilitar ML Services
  • 21. Cualquier IDE de R/Python Científico de datos Workstation Flujo de trabajo típico de aprendizaje automático contra base de datos SQL Server Obtener Datos 1 train <- sqlQuery(connection, “select * from nyctaxi_sample”) model <- glm(formula, train) 3 Salida del modelo 2 Ejecución
  • 22. Cualquier IDE de R/Python Científico de datos Workstation RX* Output3 Flujo de trabajo de aprendizaje automático utilizando el contexto de cálculo SQL Ejecución2 SQL Server 2017 SQL Server R/Python Runtime Servicios de aprendizaje de máquinas Script1 cc <- RxInSqlServer( connectionString, computeContext) rxLogit(formula, cc) Modelo o predicciones 4
  • 23. Contexto de cálculo SQL desde cliente R/Python Requisito Uso de RX* Functions Ventajas clave Enviar el cálculo al servidor Elimine el movimiento de datos del servidor al cliente Utilizar recursos de servidor para la ejecución del script de ML
  • 24. Ejecución dentro de SQL Server sp_execute_external_script @language = N'language' , @script = N'script', @input_data_1 = ] 'input_data_1' [ , @input_data_1_name = ] N'input_data_1_name' ] [ , @output_data_1_name = 'output_data_1_name' ] [ , @parallel = 0 | 1 ] [ , @params = ] N'@parameter_name data_type [ OUT | OUTPUT ] [ ,...n ]' [ , @parameter1 = ] 'value1' [ OUT | OUTPUT ] [ ,...n ] [ WITH <execute_option> ] [;] <execute_option>::= { { RESULT SETS UNDEFINED } | { RESULT SETS NONE } | { RESULT SETS ( <result_sets_definition> ) } }
  • 25. Integración Python SQL Server Launchpad - The SQL Server Trusted Launchpad es un servicio proporcionado por SQL Server 2017 para apoyar la ejecución de scripts externos, similar a la forma en que el servicio de indexación y consulta de texto completo ejecuta motores separados para el procesamiento de consultas de texto completo. Binary Exchange Language (Bxl) Server - BxlServer es un componente proporcionado por Microsoft que administra la comunicación entre SQL Server y el Runtime de Python. SQL Satellite - Es una nueva API de extensibilidad en SQL Server que es proporcionada por el motor de base de datos para código externo. BxlServer utiliza el SQL Satellite para comunicarse con SQL Server.
  • 28. Consideraciones clave de rendimiento • ¿Cuánto tiempo se tarda en movimiento de datos? • Uso XEvents o exec sp_execute_external_script • @language = N'R ', @script = N ' ', @input_data_1 = <sql_query> • ¿Cómo puedes separar CPU ¿uso de SQL & R/Python? • Utilizar el EXTERNAL RESOURCE POOL para la afinidad de CPU • ¿Cómo puede asignar más memoria a R/Python? • El valor predeterminado es 20% • Utilizar el pool de recursos externos para ajustar el límite de memoria • Utilice ‘max server memory’ sp_configure
  • 29. Enviar datos de SQL Server hacia el External Runtime Requisitos: Suficiente memoria para los procesos de R/Python para almacenar y procesar los datos Ventajas clave: Única opción para las funciones Cran-R o Python (no RX*) El resultado completo de la consulta se copia en proceso de R/Python Desventajas: Limitado por memoria asignada a procesos R/Python La simultaneidad puede ser limitada
  • 30. Enviar datos de SQL Server hacia el External Runtime sp_execute_external_ script @input_data_1 = N’ SELECT * FROM TrainingData’ InputDataset: data.frame OR Pandas dataframe
  • 31. Enviar datos de una consulta a un Runtime Externo exec sp_execute_external_script @language = N'R' , @script = N' # build classification model to predict tipped or not model_generation_duration <- system.time( logitObj <- glm(tipped ~ passenger_count + trip_distance + trip_time_in_secs + direct_distance, data = InputDataSet, family = binomial(link=logit)))[3]; # First, serialize a model and put it into a database table modelbin <- serialize(logitObj, NULL); ' , @input_data_1 = N'SELECT * FROM nyctaxi_training_sample' , @params = N'@modelbin varbinary(max) OUTPUT, @model_generation_duration float OUTPUT' , @modelbin = @model OUTPUT , @model_generation_duration = @model_generation_duration OUTPUT;
  • 32. Demo 03 Integración de datos en SQL Server con Pyhton Script
  • 33. Streamming de ejecución de scripts de R/Python Requisitos: • No debe tener dependencia entre filas (ej: scoring) Ventajas: • Ejecutar secuencias de comandos sobre chunks de datos • Procesar datos que no caben en la memoria • Puede ser utilizado desde el cliente (RX* Function) o servidor
  • 34. 5000 5000 5000 Dataset = 15000 Rows Sp_execute_external_script @r_rowsPerRead = 5000 Predict() Predict() Predict() Streaming SQL Server Execute R script Execute R script
  • 35. Streaming desde el servidor exec sp_execute_external_script @language = N'R’ , @script = N' # unserialize model logitObj <- unserialize(modelbin); # build classification model to predict tipped or not system.time(OutputDataSet <- data.frame(predict(logitObj, newdata = InputDataSet, type = "response")))[3]; ‘ , @input_data_1 = N’ SELECT tipped, passenger_count, trip_time_in_secs, trip_distance, d.direct_distance FROM dbo.nyctaxi_sample TABLESAMPLE (50 PERCENT) REPEATABLE (98074) CROSS APPLY [CalculateDistance](pickup_latitude, pickup_longitude, dropoff_latitude, dropoff_longitude) as d’ , @params = N'@modelbin varbinary(max), @r_rowsPerRead int’ , @modelbin = @model , @r_rowsPerRead = 5000;
  • 36. Demo 04 Generación de gráficos con Python
  • 37. Procesamiento en paralelo Requisitos: Plan de consultas paralelas para el estatuto SELECT Sin dependencia entre filas (ej: scoring) – paralelismo trivial Utilice funciones rx* para el entrenamiento en paralelo Ventajas clave: Escala a grandes conjuntos de datos Aproveche múltiples CPUs Se integra con la ejecución de consultas paralelas de SQL Server
  • 38. Procesamiento paralelo – paralelismo trivial Predict() Predict() sp_execute_external_ script @script = N’Predict…’, @parallel = 1 (MAXDOP = 2) <Results> <Results>
  • 39. Paralelismo trivial exec sp_execute_external_script @language = N'R’ , @script = N' # unserialize model logitObj <- unserialize(modelbin); # build classification model to predict tipped or not system.time(OutputDataSet <- data.frame(predict(logitObj, newdata = InputDataSet, type = "response")))[3]; ‘ , @input_data_1 = N’ SELECT tipped, passenger_count, trip_time_in_secs, trip_distance, d.direct_distance FROM dbo.nyctaxi_sample TABLESAMPLE (50 PERCENT) REPEATABLE (98074) CROSS APPLY [CalculateDistance](pickup_latitude, pickup_longitude, dropoff_latitude, dropoff_longitude) as d OPTION(MAXDOP 2) -- Needed only to control DOP’ , @parallel = 1 , @params = N'@modelbin varbinary(max), @r_rowsPerRead int’ , @modelbin = @model , @r_rowsPerRead = 5000;
  • 40. Demo 05 Creación de modelos con Python
  • 41. Puntuación nativa mediante la función PREDICT Requisitos: • Sólo modelos RX* • Modelo serializado de rxSerializeModel (R) • Modelo serializado de rx_serialize_model (Python) Ventajas clave: • Se ejecuta de forma nativa en SQL Server (sin dependencia de R/Python) • Baja latencia para la ejecución • Ideal para la puntuación altamente concurrente de pocas filas • Puede ser utilizado en la instrucción INSERT/UPDATE/MERGE
  • 42. PREDICT DECLARE @model varbinary(max) = ( SELECT native_model FROM models WHERE model_name = 'Fraud Detection Model’); INSERT INTO dbo.potential_fraud_transactions (score, transactionKey) SELECT p.Label_prob, t.transactionKey FROM PREDICT(MODEL = @model, DATA = new_transaction) WITH(Label_prob float) as p;
  • 43. Operacionalización de aprendizaje automático Servidor analítico Servicio separado o lógica incrustada • Fácil operacionalización • Rendimiento • Alta disponibilidad • Gobernanza de los recursos
  • 45. No • Ejecutar R/Python script as-is • Realizar transformaciones de datos que se pueden lograr en SQL • Acceso a recursos de red • Procesar/transformar archivos como parte de la llamada al procedimiento almacenado • Incrustar el código R/Python directamente en aplicaciones • Desarrolle/pruebe de RTVS, PTVS, Rstudio u otro IDE • SQL Compute Context desde el cliente • Procesamiento de datos y transformaciones en SQL Server • Integración de datos mediante funciones de SQL Server • Gestión de modelos en base de datos SI
  • 46. Resumen • Mejore el rendimiento de sus comandos ML utilizando: • SQL Compute context del cliente (Funciones RX) • Streaming para reducir el uso de memoria • Paralelismo trivial para scoring (predecir o rxPredict) • Formación paralela y puntuación utilizando RX* Functions • Función de predicción nativa para puntuación de baja latencia

Notas do Editor

  1. 5
  2. 6
  3. 8
  4. Microsoft Tech Summit FY17
  5. Microsoft Data amp
  6. A request for the Python runtime is indicated by the parameter @language='Python' passed to the stored procedure. SQL Server sends this request to the Launchpad service. The Launchpad service starts the appropriate launcher; in this case, PythonLauncher. PythonLauncher starts the external Python35 process. BxlServer coordinates with the Python runtime to manage exchanges of data, and storage of working results. SQL Satellite manages communications about related tasks and processes with SQL Server. BxlServer uses SQL Satellite to communicate status and results to SQL Server. SQL Server gets results and closes related tasks and processes.