What is SQL Server Machine Learning Services with Python and R?

Applies to: SQL Server 2017 (14.x) and later Azure SQL Managed Instance

Machine Learning Services is a feature in SQL Server that gives the ability to run Python and R scripts with relational data. You can use open-source packages and frameworks, and the Microsoft Python and R packages, for predictive analytics and machine learning. The scripts are executed in-database without moving data outside SQL Server or over the network. This article explains the basics of SQL Server Machine Learning Services and how to get started.

Note

Machine Learning Services is also available in Azure SQL Managed Instance. For machine learning on other SQL platforms, see the SQL machine learning documentation.

Note

Machine Learning Services is also available in Azure SQL Managed Instance. For machine learning on other SQL platforms, see the SQL machine learning documentation.

For executing Java in SQL Server, see the Java Language Extension documentation.

For executing C# in SQL Server, see the C# Language Extension documentation.

Execute Python and R scripts in SQL Server

SQL Server Machine Learning Services lets you execute Python and R scripts in-database. You can use it to prepare and clean data, do feature engineering, and train, evaluate, and deploy machine learning models within a database. The feature runs your scripts where the data resides and eliminates transfer of the data across the network to another server.

You can execute Python and R scripts on a SQL Server instance with the stored procedure sp_execute_external_script.

Base distributions of Python and R are included in Machine Learning Services. You can install and use open-source packages and frameworks, such as PyTorch, TensorFlow, and scikit-learn, in addition to the Microsoft packages.

Machine Learning Services uses an extensibility framework to run Python and R scripts in SQL Server. Learn more about how this works:

Get started with Machine Learning Services

Python and R versions

The following lists the versions of Python and R that are included in Machine Learning Services.

SQL Server version Cumulative Update Python runtime version R runtime versions
SQL Server 2022* RTM and later 3.10.2 4.2.0
SQL Server 2019 RTM and later 3.7.1 3.5.2
SQL Server 2017 CU22 and later 3.5.2 and 3.7.2 3.3.3 and 3.5.2
SQL Server 2017 RTM - CU21 3.5.2 3.3.3
SQL Server 2016 See the R version

* For supported versions of R and Python and the RevoScaleR and revoscalepy packages, see Install SQL Server 2022 Machine Learning Services (Python and R) on Windows or Install SQL Server Machine Learning Services (Python and R) on Linux.

Python and R packages

You can use open-source packages and frameworks, in addition to Microsoft's enterprise packages. Most common open-source Python and R packages are pre-installed in Machine Learning Services.

Note

Beginning with SQL Server 2022 (16.x), runtimes for R, Python, and Java, are no longer installed with SQL Setup. Instead, install your desired R and/or Python custom runtime(s) and packages. For more information, see Install SQL Server 2022 Machine Learning Services on Windows or Install SQL Server Machine Learning Services (Python and R) on Linux.

The following Python and R packages from Microsoft are also included at installation:

Language Package Description
Python revoscalepy The primary package for scalable Python. Data transformations and manipulation, statistical summarization, visualization, and many forms of modeling. Additionally, functions in this package automatically distribute workloads across available cores for parallel processing.
Python microsoftml Applies only to SQL Server 2016, SQL Server 2017, and SQL Server 2019. Adds machine learning algorithms to create custom models for text analysis, image analysis, and sentiment analysis.
R RevoScaleR The primary package for scalable R. Data transformations and manipulation, statistical summarization, visualization, and many forms of modeling. Additionally, functions in this package automatically distribute workloads across available cores for parallel processing.
R MicrosoftML (R) Applies only to SQL Server 2016, SQL Server 2017, and SQL Server 2019. Adds machine learning algorithms to create custom models for text analysis, image analysis, and sentiment analysis.
R olapR Applies only to SQL Server 2016, SQL Server 2017, and SQL Server 2019. R functions used for MDX queries against a SQL Server Analysis Services OLAP cube.
R sqlrutils Applies only to SQL Server 2016, SQL Server 2017, and SQL Server 2019. A mechanism to use R scripts in a T-SQL stored procedure, register that stored procedure with a database, and run the stored procedure from an R development environment.
R Microsoft R Open (retired) Applies to: SQL Server 2016, SQL Server 2017, and SQL Server 2019.

Microsoft R Open (MRO) was the enhanced distribution of R from Microsoft.

For more information on which packages are installed with Machine Learning Services and how to install other packages, see:

Next steps