Введение
Знаете ли вы, что вы можете писать код R и Python в своих операторах T-SQL? Службы машинного обучения в SQL Server устраняют необходимость в перемещении данных. Вместо того, чтобы передавать большие и конфиденциальные данные по сети или терять точность с образцами CSV-файлов, вы можете выполнить свой код R / Python в своей базе данных. Легко разверните свой код R / Python с хранимыми процедурами SQL, сделав их доступными в ваших процессах ETL или в любом приложении. Обучайте и храните модели машинного обучения в своей базе данных, обеспечивая интеллект там, где находятся ваши данные.
Вы можете установить и запустить любой из последних пакетов R / Python с открытым исходным кодом для создания приложений Deep Learning и AI на больших объемах данных в SQL Server. Мы также предлагаем передовые высокопроизводительные алгоритмы в API-интерфейсах Microsoft RevoScaleR и RevoScalePy. Их использование с последними инновациями в мире открытого исходного кода позволяет вам привнести в ваши приложения беспрецедентный выбор, производительность и масштабируемость.
Если вы хотите опробовать службы машинного обучения SQL Server, ознакомьтесь с практическим руководством ниже. Если у вас не установлены службы машинного обучения в SQL Server, вы сначала захотите следовать руководству по началу работы, которое я опубликовал здесь: https://blogs.msdn.microsoft.com/mlserver/2018 / 05/18 / начало-работы-с-сервисами-машинным обучением-в-sql-server /
Практическое руководство
В этом руководстве я расскажу об основах выполнения R и Python в операторах T-SQL. Если вы предпочитаете учиться через видео, я также опубликовал туториал на YouTube:
Основы
Откройте 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. Имена переменных по умолчанию - «OutputDataSet» и «InputDataSet». Вы можете изменить эти имена по умолчанию, как в этом примере:
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 передает Dataframe в python, полагаясь на пакет Python Pandas. Ваш вывод из Python обратно в SQL также должен быть в объекте Pandas Dataframe. Если вам нужно преобразовать скалярные значения в фрейм данных, вот пример:
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. Здесь показан немного более сложный пример. Прочтите документацию по пакету pandas для Python, чтобы получить более подробную информацию и примеры:
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 Notebooks, а затем удаленно отправить выполнение этого кода на SQL Server? Ознакомьтесь с этими ссылками на документацию, чтобы узнать больше: https://aka.ms/R-RemoteSQLExecution https://aka.ms/PythonRemoteSQLExecution
Посетите страницу документации Службы машинного обучения SQL Server для получения дополнительной документации, примеров и решений. Также ознакомьтесь с этими руководствами по E2E на github.
Хотел бы получить известие от вас! Оставьте комментарий ниже, чтобы задать вопрос или начать обсуждение!