Ir al contenido principal

Cómo ejecutar Python/R en SQL

Tras leer este tutorial, sabrás cómo incrustar scripts de R y Python en instrucciones T-SQL y qué tipos de datos se usan para pasar datos entre SQL y Python/R.
Actualizado 17 sept 2026  · 6 min leer

Explorar con IA

ChatGPTClaudePerplexity

bringing intelligence to where data lives

Introducción

¿Sabías que puedes escribir código de R y Python dentro de tus instrucciones T-SQL? Machine Learning Services en SQL Server elimina la necesidad de mover datos. En lugar de transferir por la red grandes volúmenes de datos sensibles o perder precisión con archivos CSV de muestra, puedes ejecutar tu código de R/Python dentro de la propia base de datos. Despliega fácilmente tu código de R/Python con procedimientos almacenados de SQL y hazlos accesibles en tus procesos ETL o desde cualquier aplicación. Entrena y guarda modelos de machine learning en tu base de datos y lleva la inteligencia allí donde viven tus datos.

Puedes instalar y ejecutar los paquetes open source más recientes de R/Python para crear aplicaciones de deep learning e IA con grandes volúmenes de datos en SQL Server. También hay algoritmos de última generación y alto rendimiento en las APIs RevoScaleR y RevoScalePy de Microsoft. Usarlas junto con las últimas innovaciones del mundo open source te permite aportar una selección, un rendimiento y una escalabilidad sin precedentes a tus aplicaciones.

why in-database analytics with sql server

Si te apetece probar SQL Server Machine Learning Services, echa un vistazo al tutorial práctico de abajo. Si aún no tienes Machine Learning Services instalado en SQL Server, primero sigue el tutorial de introducción publicado aquí: https://blogs.msdn.microsoft.com/mlserver/2018/05/18/getting-started-with-machine-learning-services-in-sql-server/

Tutorial paso a paso

Lo que vas a aprender

Este tutorial cubre los fundamentos para ejecutar R y Python en instrucciones T-SQL. Al terminar, sabrás:

  1. Cómo incrustar scripts de R y Python en instrucciones T-SQL.
  2. Cómo usar parámetros básicos para especificar datos de entrada y salida en scripts de R/Python.
  3. Qué tipos de datos se usan para pasar información entre procesos de SQL y Python/R.

Requisitos previos de configuración

Si no tienes Machine Learning Services instalado en SQL Server, primero lee este tutorial de inicio o mira estos vídeos para configurar el entorno: https://aka.ms/InstallMLServices https://aka.ms/EnableMLServices

Vídeo de apoyo

Si prefieres aprender con vídeos, este tutorial también está disponible en YouTube: @https://aka.ms/ExecuteMLServices https://youtu.be/ACejZ9optCQ

Conceptos básicos

Abre SQL Server Management Studio y conéctate a tu servidor. Abre una nueva consulta y pega este ejemplo básico: (aunque en estos ejemplos se usa Python, puedes hacer lo mismo con R)

EXEC sp_execute_external_script @language = N'Python',
@script = N'print(3+4)'

Sp_execute_external_script es un procedimiento almacenado del sistema que habilita la ejecución de R y Python en SQL Server. El parámetro language te permite elegir entre Python y R. En el parámetro script puedes pegar código de R o Python. Si no ves como salida el número 7, vuelve a revisar los pasos de configuración descritos en este artículo.

Introducción a los parámetros

Después de ver un ejemplo básico, añadamos más piezas:

EXEC sp_execute_external_script @language =N'Python',
@script = N'
OutputDataSet = InputDataSet;
',
@input_data_1 =N'SELECT 1 AS Col1';

Machine Learning Services facilita la comunicación entre SQL y R/Python con un parámetro de entrada que acepta cualquier consulta SQL. El nombre de este parámetro de entrada es input_data_1.

En el código de Python verás que hay variables predeterminadas para pasar datos entre Python y SQL. Sus nombres por defecto son OutputDataSet e InputDataSet. Puedes cambiar estos nombres como en este ejemplo:

EXEC sp_execute_external_script @language =N'Python',
@script = N'
MyOutput = MyInput;
',
@input_data_1_name = N'MyInput',
@input_data_1 =N'SELECT 1 AS foo',
@output_data_1_name =N'MyOutput';

Al ejecutar estos ejemplos, quizá te hayas fijado en que devuelven un resultado con (No column name). Puedes especificar un nombre para las columnas devueltas añadiendo la cláusula WITH RESULT SETS al final de la instrucción, con una lista separada por comas de columnas y sus tipos de datos.

EXEC sp_execute_external_script  @language =N'Python',
@script=N'
MyOutput = MyInput;
',
@input_data_1_name = N'MyInput',
@input_data_1 =N'SELECT 1 AS foo,2 AS bar',
@output_data_1_name =N'MyOutput'
WITH RESULT SETS ((MyColName int, MyColName2 int));

Tipos de datos de entrada y salida

Bien, hablemos un poco más de los tipos de datos de entrada/salida entre SQL y Python. Tu instrucción SQL SELECT pasa un «DataFrame» a Python apoyándose en el paquete Pandas de Python. La salida de Python de vuelta a SQL también debe ser un objeto DataFrame de Pandas. Si necesitas convertir valores escalares en un DataFrame, aquí tienes un ejemplo:

EXEC sp_execute_external_script @language =N'Python',
@script=N'
import pandas as pd
c = 1/2
d = 1*2
s = pd.Series([c,d])
df = pd.DataFrame(s)
OutputDataSet = df
'

Las variables c y d son escalares, que puedes añadir a una Series de pandas y después convertir a un DataFrame de pandas. Este ejemplo es un poco más elaborado; consulta la documentación de pandas para más detalles y ejemplos:

EXEC sp_execute_external_script @language =N'Python',
@script=N'
import pandas as pd
s = {"col1": [1, 2], "col2": [3, 4]}
df = pd.DataFrame(s)
OutputDataSet = df
'

Ya conoces lo básico para ejecutar R y Python en T-SQL. Es muy sencillo llamar a EXEC sp_execute_external_script, copiar y pegar tu código de R o Python y tu SELECT de entrada en SQL. Puede que necesites hacer una transformación o extracción de datos sencilla en R/Python pero demasiado compleja de escribir en SQL. O quizá estés entrenando una red neuronal profunda con cantidades de datos demasiado grandes para enviarlas por la red. Tal vez quieras evaluar/predicir automáticamente un resultado sobre nuevos datos que entran en tu sistema OLTP. Los casos de uso son muchos, y ahora estás listo para ganar en seguridad, rendimiento y escalabilidad con Machine Learning Services en SQL Server.

Para seguir aprendiendo

¿Sabías que también puedes escribir tu código de R y Python en tu IDE favorito, como RStudio o Jupyter Notebooks, y enviar su ejecución de forma remota a SQL Server? Consulta estos enlaces para saber más: Documentación: https://aka.ms/R-RemoteSQLExecution Documentación: https://aka.ms/R-RemoteSQLExecution Ejemplo de Jupyter Notebook en GitHub: https://aka.ms/RemoteExecJupyter

Si quieres aprender más sobre SQL, echa un vistazo a nuestro curso Intro to SQL for Data Science y a nuestro hub de aprendizaje de SQL.

Temas
SQL
Ciencia de datos
Python
R

Más sobre SQL

Curso

Manipulación de datos en SQL

4 h
335K
Domina las consultas SQL para responder a preguntas de ciencia de datos y prepara conjuntos de datos para analizarlos en PostgreSQL.
Ver detallesRight Arrow
Iniciar Curso
Ver másRight Arrow
Relacionado

blog

Python vs. R para ciencia de datos: ¿cuál deberías aprender?

Esta guía te ayudará a resolver una de las dudas más frecuentes de quienes desean iniciarse en ciencia de datos, y a elegir entre R y Python.
Javier Canales Luna's photo

Javier Canales Luna

10 min

Tutorial

Tutorial sobre cómo ejecutar consultas SQL en Python y R

Aprenda formas fáciles y eficaces de ejecutar consultas SQL en Python y R para el análisis de datos y la gestión de bases de datos.
Abid Ali Awan's photo

Abid Ali Awan

13 min

Tutorial

Tutorial sobre la ejecución de scripts de Python en Power BI

Descubre las distintas formas de utilizar Python para optimizar el análisis, la visualización y el modelado de datos en Power BI.
Joleen Bothma's photo

Joleen Bothma

9 min

Tutorial

Tutorial sobre cómo instalar R en Windows, Mac OS X y Ubuntu

Esta es una guía para principiantes diseñada para ahorrarte dolores de cabeza y un tiempo valioso si decides instalar R tú mismo.
Francisco Javier Carrera Arias's photo

Francisco Javier Carrera Arias

6 min

Tutorial

Tutorial sobre cómo importar datos a R

Averigua cómo importar datos a R, incluidos archivos CSV, JSON, Excel, HTML, bases de datos, SAS, SPSS, Matlab y otros, utilizando los conocidos paquetes de R.
Abid Ali Awan's photo

Abid Ali Awan

10 min

SQLAlchemy_Tutorial.

Tutorial

Tutorial de SQLAlchemy con ejemplos

Aprende a acceder y ejecutar consultas SQL en todo tipo de bases de datos relacionales utilizando objetos Python.
Abid Ali Awan's photo

Abid Ali Awan

13 min

Ver MásVer Más