Inicio rápido: Funciones de R con aprendizaje automático de SQL

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL Managed Instance

En este inicio rápido, aprenderá a usar las funciones matemáticas y de utilidad de R con SQL Server Machine Learning Services o en clústeres de macrodatos. Las funciones estadísticas suelen ser complicadas de implementar en T-SQL, pero esto se puede hacer en R con solo unas pocas líneas de código.

En este inicio rápido, aprenderá a usar las funciones matemáticas y de utilidad de R con SQL Server Machine Learning Services. Las funciones estadísticas suelen ser complicadas de implementar en T-SQL, pero esto se puede hacer en R con solo unas pocas líneas de código.

En este inicio rápido, aprenderá a usar las funciones matemáticas y de utilidad de R con SQL Server R Services. Las funciones estadísticas suelen ser complicadas de implementar en T-SQL, pero esto se puede hacer en R con solo unas pocas líneas de código.

En este inicio rápido, obtendrá información sobre cómo usar estructuras de datos y tipos de datos cuando use R en Machine Learning Services en Azure SQL Managed Instance. Obtendrá in sobre cómo mover datos entre R y SQL Managed Instance, así como las incidencias comunes que pueden producirse.

Prerrequisitos

Para ejecutar este inicio rápido, debe cumplir los siguientes requisitos previos.

  • Una herramienta para ejecutar consultas de SQL que contengan scripts de R. En este inicio rápido se utiliza Azure Data Studio.

Creación de un procedimiento almacenado para generar números aleatorios

Para simplificar, vamos a usar el paquete stats de R, que se instala y carga de forma predeterminada. El paquete contiene cientos de funciones para tareas estadísticas comunes, entre otras, la función rnorm, que genera una cantidad determinada de números aleatorios que usan la distribución normal, dadas una desviación estándar y la media.

Por ejemplo, el siguiente código de R devuelve 100 números en una media de 50, lo cual da una desviación estándar de 3.

as.data.frame(rnorm(100, mean = 50, sd = 3));

Para llamar a esta línea de R desde T-SQL, agregue la función de R del parámetro de script de sp_execute_external_script, de la manera siguiente:

EXECUTE sp_execute_external_script
      @language = N'R'
    , @script = N'
         OutputDataSet <- as.data.frame(rnorm(100, mean = 50, sd =3));'
    , @input_data_1 = N'   ;'
      WITH RESULT SETS (([Density] float NOT NULL));

¿Qué ocurriría si quisiera facilitar la generación de un conjunto diferente de números aleatorios?

Puede hacerlo con facilidad en combinación con T-SQL. Defina un procedimiento almacenado que obtenga los argumentos del usuario y, a continuación, pase los argumentos al script de R como variables.

CREATE PROCEDURE MyRNorm (
    @param1 INT
    , @param2 INT
    , @param3 INT
    )
AS
EXECUTE sp_execute_external_script @language = N'R'
    , @script = N'
	     OutputDataSet <- as.data.frame(rnorm(mynumbers, mymean, mysd));'
    , @input_data_1 = N'   ;'
    , @params = N' @mynumbers int, @mymean int, @mysd int'
    , @mynumbers = @param1
    , @mymean = @param2
    , @mysd = @param3
WITH RESULT SETS(([Density] FLOAT NOT NULL));
  • La primera línea define cada uno de los parámetros de entrada de SQL que son necesarios cuando se ejecuta el procedimiento almacenado.

  • La línea que comienza con @params define todas las variables usadas por el código de R y los correspondientes tipos de datos de SQL.

  • Las líneas inmediatamente a continuación asignan los nombres de parámetro de SQL a los nombres de variable de R correspondientes.

Ahora que ha ajustado la función de R en un procedimiento almacenado, puede llamar a la función fácilmente y pasar distintos valores, como a continuación:

EXECUTE MyRNorm @param1 = 100,@param2 = 50, @param3 = 3

Uso de funciones de utilidad de R para solucionar problemas

El paquete utils, instalado de forma predeterminada, ofrece diversas funciones de utilidad para investigar el entorno actual de R. Estas funciones pueden ser útiles si encuentra discrepancias en la forma en que el código de R se ejecuta en SQL Server y en entornos externos.

Por ejemplo, puede usar las funciones de control de tiempo del sistema de R, como system.time y proc.time, para capturar el tiempo que tardan los procesos de R y analizar incidencias de rendimiento. Para obtener un ejemplo, vea el tutorial Creación de características de datos donde las funciones de control de tiempo de R se incrustan en la solución.

EXECUTE sp_execute_external_script
      @language = N'R'
    , @script = N'
        library(utils);
        start.time <- proc.time();
        
        # Run R processes
        
        elapsed_time <- proc.time() - start.time;'

Para otras funciones útiles, consulte Uso de funciones de generación de perfiles de código de R para mejorar el rendimiento.

Pasos siguientes

Para crear un modelo de aprendizaje automático usando R con aprendizaje automático de SQL, siga este inicio rápido: