Рубрики
Без рубрики

Как выполнить R и Python В SQL с помощью Служб машинного обучения

Знаете ли вы, что вы можете писать код R и Python в своих операторах T-SQL? Службы машинного обучения в SQL Server устраняют необходимость в перемещении данных. Вместо передачи больших и конфиденциальных данных по сети или потери точности с образцами csv-файлов, вы можете выполнить код R/Python в своей базе данных.

Автор оригинала: Kyle Weller.

Знаете ли вы, что вы можете писать код R и Python в своих операторах T-SQL? Службы машинного обучения в SQL Server устраняет необходимость в перемещении данных. Вместо передачи больших и конфиденциальных данных по сети или потери точности с образцами csv-файлов, вы можете выполнить код R/Python в своей базе данных. Легко развертывайте свой код R/Python с помощью хранимых процедур SQL, делая их доступными в ваших процессах ETL или в любом приложении. Обучайте и храните модели машинного обучения в своей базе данных, предоставляя информацию о том, где находятся ваши данные.

Вы можете установить и запустить любой из последних пакетов R/Python с открытым исходным кодом для создания приложений глубокого обучения и искусственного интеллекта на больших объемах данных в SQL Server. Мы также предлагаем передовые высокопроизводительные алгоритмы в Microsoft RevoScaleR и RevoScalePy API. Использование их с последними инновациями в мире с открытым исходным кодом позволяет вам обеспечить беспрецедентный выбор, производительность и масштабирование ваших приложений.

Вы можете установить и запустить любой из последних пакетов R/Python с открытым исходным кодом для создания приложений глубокого обучения и искусственного интеллекта на больших объемах данных в SQL Server. Мы также предлагаем || передовые || высокопроизводительные алгоритмы в Microsoft || RevoScaleR || и || RevoScalePy || API. Использование их с последними инновациями в мире с открытым исходным кодом позволяет вам обеспечить беспрецедентный выбор, производительность и масштабирование ваших приложений.

Если вы хотите попробовать службы машинного обучения SQL Server, ознакомьтесь с практическим руководством ниже. Если у вас нет служб машинного обучения, установленных в SQL Server, вы сначала захотите ознакомиться с руководством по началу работы, которое я опубликовал здесь: https://blogs.msdn.microsoft.com/mlserver/2018/05/18/getting-started-with-machine-learning-services-in-sql-server/

В этом уроке я расскажу об основах выполнения R и Python в операторах T-SQL. Если вы предпочитаете учиться с помощью видео, я также опубликовал учебник на YouTube: @ https://youtu.be/ACejZ9optCQ

В этом уроке я расскажу об основах выполнения R и Python в операторах T-SQL. Если вы предпочитаете учиться с помощью видео, я также опубликовал учебник на YouTube: || @ || https://youtu.be/ACejZ9optCQ

Основы

Откройте среду SQL Server Management Studio и установите соединение с сервером. Откройте новый запрос и вставьте этот базовый пример: (Хотя я использую Python в этих примерах, вы также можете делать все с помощью R)

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

Sp_execute_external_script-это специальная системная хранимая процедура, которая позволяет выполнять R и Python в SQL Server. Существует параметр “язык”, который позволяет нам выбирать между Python и R. Существует параметр “сценарий”, в который мы можем вставить код R или Python. Если вы не видите вывода печати 7, вернитесь назад и просмотрите шаги настройки в этой статье .

Введение параметров

Теперь, когда мы обсудили базовый пример, давайте начнем добавлять больше частей:

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

Службы машинного обучения обеспечивают более естественную связь между SQL и R/Python с помощью параметра входных данных, который принимает любой SQL-запрос. Имя входного параметра называется “input_data_1”.

Вы можете видеть в коде python, что существуют переменные по умолчанию, определенные для передачи данных между Python и SQL. Имена переменных по умолчанию – “Набор выходных данных” и “Набор входных данных”. Вы можете изменить эти имена по умолчанию, как в этом примере:

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';

Когда вы выполняли эти примеры, вы, возможно, заметили, что каждый из них возвращает результат с “(Без имени столбца)”? Вы можете указать имя для возвращаемых столбцов, добавив предложение WITH RESULT SETS в конец инструкции, которая представляет собой разделенный запятыми список столбцов и их типов данных.

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));

Типы данных ввода/вывода

Хорошо, давайте обсудим немного больше о типах данных ввода/вывода, используемых между SQL и Python. Ваш входной оператор SQL SELECT передает “фрейм данных” в python, полагаясь на пакет Python Pandas . Ваш вывод из Python обратно в SQL также должен быть в объекте фрейма данных Pandas. Если вам нужно преобразовать скалярные значения в фрейм данных, вот пример:

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
'

Переменные c и d являются скалярными значениями, которые вы можете добавить в серию pandas, если хотите, а затем преобразовать их в фрейм данных pandas. Этот пример показывает немного более сложный пример, перейдите к документации пакета python pandas для получения более подробной информации и примеров:

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
'

Теперь вы знаете основы выполнения Python в T-SQL!

Знаете ли вы, что вы также можете написать свой код R и Python в своей любимой IDE, такой как записные книжки RStudio и Jupyter, а затем удаленно отправить выполнение этого кода на SQL Server? Ознакомьтесь с этими ссылками на документацию, чтобы узнать больше: https://aka.ms/R-RemoteSQLExecution https://aka.ms/R-RemoteSQLExecution

Дополнительные сведения о документации, примерах и решениях см. на странице SQL Server Документация служб машинного обучения . Ознакомьтесь также с этими учебниками E2E на github .

Хотел бы услышать от вас! Оставьте комментарий ниже, чтобы задать вопрос или начать обсуждение!