{"id":32633,"date":"2020-09-24T15:00:24","date_gmt":"2020-09-24T22:00:24","guid":{"rendered":""},"modified":"2024-01-22T22:51:27","modified_gmt":"2024-01-23T06:51:27","slug":"open-sourcing-the-r-and-python-language-extensions-for-sql-server","status":"publish","type":"post","link":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/2020\/09\/24\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\/","title":{"rendered":"Open sourcing the R and Python language extensions for SQL Server"},"content":{"rendered":"<p>For the past decade, data science has become integral to many enterprise applications. Languages such as R and Python have left the realm of data scientists and are being used more frequently by data engineers supporting them. R and Python are the most popular data science languages currently for creating, training, and scoring models. Modernization has also accelerated the use of these languages leveraging the benefits of the cloud to enable in-database processing of machine learning algorithms and models.<\/p>\n<p>In SQL Server 2016 through 2019, we added R and Python language support, which enable secure execution of R and Python programs in the context of a SQL Server query. This enables a wide range of scenarios such as performing advanced text and data preparation tasks, and reaching out to external APIs to get data and also training machine learning models and model scoring.<\/p>\n<p>Previously, we announced a <a href=\"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/2020\/04\/22\/open-sourcing-the-java-language-extension-for-sql-server\/\" target=\"_blank\" rel=\"noopener noreferrer\">Java extension<\/a>. <strong>Today, we are sharing that we are open sourcing the R and Python language extensions for SQL Server for both Windows and Linux on GitHub<\/strong>.<\/p>\n<p>These extensions are the latest examples using an evolved programming language extensibility architecture which allows integration with a <a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/language-extensions\/language-extensions-overview?view=sql-server-ver15\" target=\"_blank\" rel=\"noopener noreferrer\">new type of language extension<\/a>. This new architecture gives customers the freedom to bring their own runtime and execute programs using that runtime in SQL Server, while leveraging the existing security and governance that the SQL Server programming language extensibility architecture provides.<\/p>\n<p>Choosing which runtime to use does provide the flexibility to choose different distributions of R and Python, and as newer versions of the R and Python runtimes get released, this architecture will make it easier to upgrade the R and Python runtime. Enterprises need to have a support contract in place for their R and Python runtime.<\/p>\n<p>Now that support is not an issue, let&#8217;s look at what use cases R and Python can enable inside SQL Server. Bringing R and Python workloads closer to the data opens a variety of possibilities:<\/p>\n<ul>\n<li>Run R and Python scripts to do data preparation and general purpose data processing.<\/li>\n<li>Train machine learning models in database.<\/li>\n<li>Deploy your models and scripts into production in stored procedures.<\/li>\n<li>Furthermore, this will help avoid unnecessary data movement and latency when data must be retrieved from SQL Server and moved into the app tier to do the business logic processing.<\/li>\n<li>Data Security Model of database logins and roles extend to external scripts.<\/li>\n<li>Avoid impersonation attempts.<\/li>\n<li>Prevent the installation of malware.<\/li>\n<\/ul>\n<h2>Why Open Source?<\/h2>\n<p>The R and Python language extension leverages the Extensibility Framework API for SQL Server to communicate and exchange data with SQL Server. This <a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/language-extensions\/reference\/extensibility-framework-api?view=sql-server-ver15\" target=\"_blank\" rel=\"noopener noreferrer\">API has been publicly documented<\/a>. The API in combination with the <a href=\"https:\/\/github.com\/microsoft\/sql-server-language-extensions\" target=\"_blank\" rel=\"noopener noreferrer\">open source code of the R and Python language extension<\/a> provides an end to end example implementation of how a programming language extension can be built. This makes it easier for additional programming language extensions to be built for SQL Server by the community. What language extensions would you like to see?<\/p>\n<h2>Get started<\/h2>\n<p>Whether you are interested in creating your own language extension or just using the R and Python language extension for SQL Server, <a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/language-extensions\/language-extensions-overview?view=sql-server-ver15\" target=\"_blank\" rel=\"noopener noreferrer\">here is some more information<\/a> to get you started.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>For the past decade, data science has become integral to many enterprise applications. Languages such as R and Python have left the realm of data scientists and are being used more frequently by data engineers supporting them. R and Python are the most popular data science languages currently for creating, training, and scoring models.<\/p>\n","protected":false},"author":1457,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","footnotes":""},"post_tag":[],"product":[5227,2403,2418],"content-type":[2421,2448],"topic":[2466],"coauthors":[2487],"class_list":["post-32633","post","type-post","status-publish","format-standard","hentry","product-sql","product-sql-server-2016","product-sql-server-on-linux","content-type-announcements","content-type-updates","topic-developer","review-flag-new-1593580247-437"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Open sourcing the R and Python language extensions for SQL Server - Microsoft SQL Server Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/2020\/09\/24\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Open sourcing the R and Python language extensions for SQL Server - Microsoft SQL Server Blog\" \/>\n<meta property=\"og:description\" content=\"For the past decade, data science has become integral to many enterprise applications. Languages such as R and Python have left the realm of data scientists and are being used more frequently by data engineers supporting them. R and Python are the most popular data science languages currently for creating, training, and scoring models.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/2020\/09\/24\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft SQL Server Blog\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/www.facebook.com\/sqlserver\" \/>\n<meta property=\"article:published_time\" content=\"2020-09-24T22:00:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-23T06:51:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/wp-content\/uploads\/2018\/08\/cropped-microsoft_logo_element.png\" \/>\n\t<meta property=\"og:image:width\" content=\"512\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"SQL Server Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SQLServer\" \/>\n<meta name=\"twitter:site\" content=\"@SQLServer\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"SQL Server Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 min read\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/2020\\\/09\\\/24\\\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/2020\\\/09\\\/24\\\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\\\/\"},\"author\":[{\"@id\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/author\\\/sql-server-team\\\/\",\"@type\":\"Person\",\"@name\":\"SQL Server Team\"}],\"headline\":\"Open sourcing the R and Python language extensions for SQL Server\",\"datePublished\":\"2020-09-24T22:00:24+00:00\",\"dateModified\":\"2024-01-23T06:51:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/2020\\\/09\\\/24\\\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\\\/\"},\"wordCount\":538,\"publisher\":{\"@id\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/2020\\\/09\\\/24\\\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\\\/\",\"url\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/2020\\\/09\\\/24\\\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\\\/\",\"name\":\"Open sourcing the R and Python language extensions for SQL Server - Microsoft SQL Server Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/#website\"},\"datePublished\":\"2020-09-24T22:00:24+00:00\",\"dateModified\":\"2024-01-23T06:51:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/2020\\\/09\\\/24\\\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/2020\\\/09\\\/24\\\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/2020\\\/09\\\/24\\\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Open sourcing the R and Python language extensions for SQL Server\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/\",\"name\":\"Microsoft SQL Server Blog\",\"description\":\"Official News from Microsoft\u2019s Information Platform\",\"publisher\":{\"@id\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/#organization\",\"name\":\"Microsoft SQL Server Blog\",\"url\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/Microsoft-Logo.png\",\"contentUrl\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/Microsoft-Logo.png\",\"width\":259,\"height\":194,\"caption\":\"Microsoft SQL Server Blog\"},\"image\":{\"@id\":\"https:\\\/\\\/new-cm-edgedigital.pages.dev\\\/en-us\\\/sql-server\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"http:\\\/\\\/www.facebook.com\\\/sqlserver\",\"https:\\\/\\\/x.com\\\/SQLServer\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/MSCloudOS\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Open sourcing the R and Python language extensions for SQL Server - Microsoft SQL Server Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/2020\/09\/24\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\/","og_locale":"en_US","og_type":"article","og_title":"Open sourcing the R and Python language extensions for SQL Server - Microsoft SQL Server Blog","og_description":"For the past decade, data science has become integral to many enterprise applications. Languages such as R and Python have left the realm of data scientists and are being used more frequently by data engineers supporting them. R and Python are the most popular data science languages currently for creating, training, and scoring models.","og_url":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/2020\/09\/24\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\/","og_site_name":"Microsoft SQL Server Blog","article_publisher":"http:\/\/www.facebook.com\/sqlserver","article_published_time":"2020-09-24T22:00:24+00:00","article_modified_time":"2024-01-23T06:51:27+00:00","og_image":[{"width":512,"height":512,"url":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/wp-content\/uploads\/2018\/08\/cropped-microsoft_logo_element.png","type":"image\/png"}],"author":"SQL Server Team","twitter_card":"summary_large_image","twitter_creator":"@SQLServer","twitter_site":"@SQLServer","twitter_misc":{"Written by":"SQL Server Team","Est. reading time":"2 min read"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/2020\/09\/24\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\/#article","isPartOf":{"@id":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/2020\/09\/24\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\/"},"author":[{"@id":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/author\/sql-server-team\/","@type":"Person","@name":"SQL Server Team"}],"headline":"Open sourcing the R and Python language extensions for SQL Server","datePublished":"2020-09-24T22:00:24+00:00","dateModified":"2024-01-23T06:51:27+00:00","mainEntityOfPage":{"@id":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/2020\/09\/24\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\/"},"wordCount":538,"publisher":{"@id":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/2020\/09\/24\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\/","url":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/2020\/09\/24\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\/","name":"Open sourcing the R and Python language extensions for SQL Server - Microsoft SQL Server Blog","isPartOf":{"@id":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/#website"},"datePublished":"2020-09-24T22:00:24+00:00","dateModified":"2024-01-23T06:51:27+00:00","breadcrumb":{"@id":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/2020\/09\/24\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/2020\/09\/24\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/2020\/09\/24\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/"},{"@type":"ListItem","position":2,"name":"Open sourcing the R and Python language extensions for SQL Server"}]},{"@type":"WebSite","@id":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/#website","url":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/","name":"Microsoft SQL Server Blog","description":"Official News from Microsoft\u2019s Information Platform","publisher":{"@id":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/#organization","name":"Microsoft SQL Server Blog","url":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","contentUrl":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","width":259,"height":194,"caption":"Microsoft SQL Server Blog"},"image":{"@id":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/#\/schema\/logo\/image\/"},"sameAs":["http:\/\/www.facebook.com\/sqlserver","https:\/\/x.com\/SQLServer","https:\/\/www.youtube.com\/user\/MSCloudOS"]}]}},"msxcm_animated_featured_image":null,"bloginabox_display_generated_audio":false,"_links":{"self":[{"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/posts\/32633","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/users\/1457"}],"replies":[{"embeddable":true,"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/comments?post=32633"}],"version-history":[{"count":0,"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/posts\/32633\/revisions"}],"wp:attachment":[{"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/media?parent=32633"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/post_tag?post=32633"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/product?post=32633"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/content-type?post=32633"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/topic?post=32633"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/coauthors?post=32633"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}