SlideShare uma empresa Scribd logo
1 de 46
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

Mais conteúdo relacionado

Mais procurados

Plantilla plan pruebas_de_software
Plantilla plan pruebas_de_softwarePlantilla plan pruebas_de_software
Plantilla plan pruebas_de_softwarejoseluispt
 
DATA WAREHOUSE -- ETL testing Plan
DATA WAREHOUSE -- ETL testing PlanDATA WAREHOUSE -- ETL testing Plan
DATA WAREHOUSE -- ETL testing PlanMadhu Nepal
 
Dimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developerDimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developerJeff Smith
 
A PRESENTATION ON STRUTS & HIBERNATE
A PRESENTATION ON STRUTS & HIBERNATEA PRESENTATION ON STRUTS & HIBERNATE
A PRESENTATION ON STRUTS & HIBERNATETushar Choudhary
 
Ejercicios de test ingeniería del software
Ejercicios de test   ingeniería del softwareEjercicios de test   ingeniería del software
Ejercicios de test ingeniería del softwareoposicionestic
 
Mdb metodologia para la elicitacion
Mdb metodologia para la elicitacionMdb metodologia para la elicitacion
Mdb metodologia para la elicitacionRene Guaman-Quinche
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E ClassesCursoSENAC
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacionalLuis Jherry
 
Designing the business process dimensional model
Designing the business process dimensional modelDesigning the business process dimensional model
Designing the business process dimensional modelGersiton Pila Challco
 
Tableau Tutorial For Beginners | Tableau Training For Beginners | Tableau Cer...
Tableau Tutorial For Beginners | Tableau Training For Beginners | Tableau Cer...Tableau Tutorial For Beginners | Tableau Training For Beginners | Tableau Cer...
Tableau Tutorial For Beginners | Tableau Training For Beginners | Tableau Cer...Edureka!
 
İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16Cihan Özhan
 
Introduccion Oracle 11G
Introduccion Oracle 11GIntroduccion Oracle 11G
Introduccion Oracle 11GEddie Malca
 
Tipos de datos en mysql
Tipos de datos en mysqlTipos de datos en mysql
Tipos de datos en mysqlCBTis 125
 

Mais procurados (20)

Plantilla plan pruebas_de_software
Plantilla plan pruebas_de_softwarePlantilla plan pruebas_de_software
Plantilla plan pruebas_de_software
 
DATA WAREHOUSE -- ETL testing Plan
DATA WAREHOUSE -- ETL testing PlanDATA WAREHOUSE -- ETL testing Plan
DATA WAREHOUSE -- ETL testing Plan
 
Dimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developerDimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developer
 
A PRESENTATION ON STRUTS & HIBERNATE
A PRESENTATION ON STRUTS & HIBERNATEA PRESENTATION ON STRUTS & HIBERNATE
A PRESENTATION ON STRUTS & HIBERNATE
 
Ejercicios de test ingeniería del software
Ejercicios de test   ingeniería del softwareEjercicios de test   ingeniería del software
Ejercicios de test ingeniería del software
 
Mdb metodologia para la elicitacion
Mdb metodologia para la elicitacionMdb metodologia para la elicitacion
Mdb metodologia para la elicitacion
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Diagramas de actividades
Diagramas de actividadesDiagramas de actividades
Diagramas de actividades
 
Stored procedure
Stored procedureStored procedure
Stored procedure
 
Sqap ejemplos
Sqap ejemplosSqap ejemplos
Sqap ejemplos
 
Designing the business process dimensional model
Designing the business process dimensional modelDesigning the business process dimensional model
Designing the business process dimensional model
 
Monografia
MonografiaMonografia
Monografia
 
Tableau Tutorial For Beginners | Tableau Training For Beginners | Tableau Cer...
Tableau Tutorial For Beginners | Tableau Training For Beginners | Tableau Cer...Tableau Tutorial For Beginners | Tableau Training For Beginners | Tableau Cer...
Tableau Tutorial For Beginners | Tableau Training For Beginners | Tableau Cer...
 
İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16
 
Introduccion Oracle 11G
Introduccion Oracle 11GIntroduccion Oracle 11G
Introduccion Oracle 11G
 
PLSQL
PLSQLPLSQL
PLSQL
 
Tipos de datos en mysql
Tipos de datos en mysqlTipos de datos en mysql
Tipos de datos en mysql
 
Ventajas desventajas sgbd
Ventajas desventajas sgbdVentajas desventajas sgbd
Ventajas desventajas sgbd
 
DISE - Database Concepts
DISE - Database ConceptsDISE - Database Concepts
DISE - Database Concepts
 

Semelhante a Python dentro de SQL Server

02 troubleshooting essentials sql server profiler - sql pass peru
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
 
Commit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningCommit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningRafa Hidalgo
 
Introduction to Machine Learning with Azure
Introduction to Machine Learning with AzureIntroduction to Machine Learning with Azure
Introduction to Machine Learning with AzureAlan Koo
 
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...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...SpanishPASSVC
 
Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010Juan Pablo
 
Escalabilidad en azure sql database con elastic scale
Escalabilidad en azure sql database con elastic scaleEscalabilidad en azure sql database con elastic scale
Escalabilidad en azure sql database con elastic scaleEduardo Castro
 
Azure sql database escalabilidad
Azure sql database escalabilidadAzure sql database escalabilidad
Azure sql database escalabilidadEduardo Castro
 
Novedades sql server 2008 para developers
Novedades sql server 2008 para developersNovedades sql server 2008 para developers
Novedades sql server 2008 para developersEnrique Catala Bañuls
 
Introducción R - Primeros pasos
Introducción R - Primeros pasosIntroducción R - Primeros pasos
Introducción R - Primeros pasosSolidQ
 
Presentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
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 GenexusXavier Espinoza
 
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...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...Luis775803
 
BD_EQ1_INVESTIGACION_APORTACION_SQLSERVER2008EXPRESS_TODOS
BD_EQ1_INVESTIGACION_APORTACION_SQLSERVER2008EXPRESS_TODOSBD_EQ1_INVESTIGACION_APORTACION_SQLSERVER2008EXPRESS_TODOS
BD_EQ1_INVESTIGACION_APORTACION_SQLSERVER2008EXPRESS_TODOSguestfd36060
 
Minería datos con SQL Server 2012
Minería datos con SQL Server 2012Minería datos con SQL Server 2012
Minería datos con SQL Server 2012Eduardo Castro
 
Dts y analysis services 2000
Dts y analysis services 2000Dts y analysis services 2000
Dts y analysis services 2000Salvador Ramos
 
Machine learning for dummies - Azuges November 2016
Machine learning for dummies - Azuges November 2016Machine learning for dummies - Azuges November 2016
Machine learning for dummies - Azuges November 2016Carlos Landeras Martínez
 

Semelhante a Python dentro de SQL Server (20)

Machine Learning en SQL Server
Machine Learning en SQL ServerMachine Learning en SQL Server
Machine Learning en SQL Server
 
02 troubleshooting essentials sql server profiler - sql pass peru
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
 
Commit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningCommit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine Learning
 
Introduction to Machine Learning with Azure
Introduction to Machine Learning with AzureIntroduction to Machine Learning with Azure
Introduction to Machine Learning with Azure
 
Microsoft machine learning
Microsoft machine learningMicrosoft machine learning
Microsoft machine learning
 
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...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
 
Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010
 
Escalabilidad en azure sql database con elastic scale
Escalabilidad en azure sql database con elastic scaleEscalabilidad en azure sql database con elastic scale
Escalabilidad en azure sql database con elastic scale
 
Azure sql database escalabilidad
Azure sql database escalabilidadAzure sql database escalabilidad
Azure sql database escalabilidad
 
Novedades sql server 2008 para developers
Novedades sql server 2008 para developersNovedades sql server 2008 para developers
Novedades sql server 2008 para developers
 
Introducción R - Primeros pasos
Introducción R - Primeros pasosIntroducción R - Primeros pasos
Introducción R - Primeros pasos
 
Enterprise DB por Eptisa TI
Enterprise DB por Eptisa TI Enterprise DB por Eptisa TI
Enterprise DB por Eptisa TI
 
Presentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
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
 
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...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
 
BD_EQ1_INVESTIGACION_APORTACION_SQLSERVER2008EXPRESS_TODOS
BD_EQ1_INVESTIGACION_APORTACION_SQLSERVER2008EXPRESS_TODOSBD_EQ1_INVESTIGACION_APORTACION_SQLSERVER2008EXPRESS_TODOS
BD_EQ1_INVESTIGACION_APORTACION_SQLSERVER2008EXPRESS_TODOS
 
Clases 30 05
Clases 30 05Clases 30 05
Clases 30 05
 
SEMANA 1 Introduccion.pptx
SEMANA 1 Introduccion.pptxSEMANA 1 Introduccion.pptx
SEMANA 1 Introduccion.pptx
 
Minería datos con SQL Server 2012
Minería datos con SQL Server 2012Minería datos con SQL Server 2012
Minería datos con SQL Server 2012
 
Dts y analysis services 2000
Dts y analysis services 2000Dts y analysis services 2000
Dts y analysis services 2000
 
Machine learning for dummies - Azuges November 2016
Machine learning for dummies - Azuges November 2016Machine learning for dummies - Azuges November 2016
Machine learning for dummies - Azuges November 2016
 

Mais de Eduardo Castro

Introducción a polybase en SQL Server
Introducción a polybase en SQL ServerIntroducción a polybase en SQL Server
Introducción a polybase en SQL ServerEduardo Castro
 
Creando tu primer ambiente de AI en Azure ML y SQL Server
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
 
Seguridad en SQL Azure
Seguridad en SQL AzureSeguridad en SQL Azure
Seguridad en SQL AzureEduardo Castro
 
Azure Synapse Analytics MLflow
Azure Synapse Analytics MLflowAzure Synapse Analytics MLflow
Azure Synapse Analytics MLflowEduardo Castro
 
SQL Server 2019 con Windows Server 2022
SQL Server 2019 con Windows Server 2022SQL Server 2019 con Windows Server 2022
SQL Server 2019 con Windows Server 2022Eduardo Castro
 
Novedades en SQL Server 2022
Novedades en SQL Server 2022Novedades en SQL Server 2022
Novedades en SQL Server 2022Eduardo Castro
 
Introduccion a SQL Server 2022
Introduccion a SQL Server 2022Introduccion a SQL Server 2022
Introduccion a SQL Server 2022Eduardo Castro
 
Machine Learning con Azure Managed Instance
Machine Learning con Azure Managed InstanceMachine Learning con Azure Managed Instance
Machine Learning con Azure Managed InstanceEduardo Castro
 
Novedades en sql server 2022
Novedades en sql server 2022Novedades en sql server 2022
Novedades en sql server 2022Eduardo Castro
 
Sql server 2019 con windows server 2022
Sql server 2019 con windows server 2022Sql server 2019 con windows server 2022
Sql server 2019 con windows server 2022Eduardo Castro
 
Introduccion a databricks
Introduccion a databricksIntroduccion a databricks
Introduccion a databricksEduardo Castro
 
Pronosticos con sql server
Pronosticos con sql serverPronosticos con sql server
Pronosticos con sql serverEduardo Castro
 
Data warehouse con azure synapse analytics
Data warehouse con azure synapse analyticsData warehouse con azure synapse analytics
Data warehouse con azure synapse analyticsEduardo Castro
 
Que hay de nuevo en el Azure Data Lake Storage Gen2
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 Gen2Eduardo Castro
 
Introduccion a Azure Synapse Analytics
Introduccion a Azure Synapse AnalyticsIntroduccion a Azure Synapse Analytics
Introduccion a Azure Synapse AnalyticsEduardo Castro
 
Seguridad de SQL Database en Azure
Seguridad de SQL Database en AzureSeguridad de SQL Database en Azure
Seguridad de SQL Database en AzureEduardo Castro
 
Servicios Cognitivos de de Microsoft
Servicios Cognitivos de de Microsoft Servicios Cognitivos de de Microsoft
Servicios Cognitivos de de Microsoft Eduardo Castro
 
Script de paso a paso de configuración de Secure Enclaves
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 EnclavesEduardo Castro
 
Introducción a conceptos de SQL Server Secure Enclaves
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 EnclavesEduardo Castro
 
Que es azure sql datawarehouse
Que es azure sql datawarehouseQue es azure sql datawarehouse
Que es azure sql datawarehouseEduardo Castro
 

Mais de Eduardo Castro (20)

Introducción a polybase en SQL Server
Introducción a polybase en SQL ServerIntroducción a polybase en SQL Server
Introducción a polybase en SQL Server
 
Creando tu primer ambiente de AI en Azure ML y SQL Server
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
 
Seguridad en SQL Azure
Seguridad en SQL AzureSeguridad en SQL Azure
Seguridad en SQL Azure
 
Azure Synapse Analytics MLflow
Azure Synapse Analytics MLflowAzure Synapse Analytics MLflow
Azure Synapse Analytics MLflow
 
SQL Server 2019 con Windows Server 2022
SQL Server 2019 con Windows Server 2022SQL Server 2019 con Windows Server 2022
SQL Server 2019 con Windows Server 2022
 
Novedades en SQL Server 2022
Novedades en SQL Server 2022Novedades en SQL Server 2022
Novedades en SQL Server 2022
 
Introduccion a SQL Server 2022
Introduccion a SQL Server 2022Introduccion a SQL Server 2022
Introduccion a SQL Server 2022
 
Machine Learning con Azure Managed Instance
Machine Learning con Azure Managed InstanceMachine Learning con Azure Managed Instance
Machine Learning con Azure Managed Instance
 
Novedades en sql server 2022
Novedades en sql server 2022Novedades en sql server 2022
Novedades en sql server 2022
 
Sql server 2019 con windows server 2022
Sql server 2019 con windows server 2022Sql server 2019 con windows server 2022
Sql server 2019 con windows server 2022
 
Introduccion a databricks
Introduccion a databricksIntroduccion a databricks
Introduccion a databricks
 
Pronosticos con sql server
Pronosticos con sql serverPronosticos con sql server
Pronosticos con sql server
 
Data warehouse con azure synapse analytics
Data warehouse con azure synapse analyticsData warehouse con azure synapse analytics
Data warehouse con azure synapse analytics
 
Que hay de nuevo en el Azure Data Lake Storage Gen2
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
 
Introduccion a Azure Synapse Analytics
Introduccion a Azure Synapse AnalyticsIntroduccion a Azure Synapse Analytics
Introduccion a Azure Synapse Analytics
 
Seguridad de SQL Database en Azure
Seguridad de SQL Database en AzureSeguridad de SQL Database en Azure
Seguridad de SQL Database en Azure
 
Servicios Cognitivos de de Microsoft
Servicios Cognitivos de de Microsoft Servicios Cognitivos de de Microsoft
Servicios Cognitivos de de Microsoft
 
Script de paso a paso de configuración de Secure Enclaves
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
 
Introducción a conceptos de SQL Server Secure Enclaves
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
 
Que es azure sql datawarehouse
Que es azure sql datawarehouseQue es azure sql datawarehouse
Que es azure sql datawarehouse
 

Último

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 

Último (15)

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 

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.