Руководство по SQL-разработка на языке R для специалистов по анализу данных
Применимо к: SQL Server 2016 (13.x) и более поздних версий
В этом учебнике для специалистов по обработке и анализу данных рассказывается, как создать комплексное решение для прогнозного моделирования на основе поддержки функций R в SQL Server 2016 и SQL Server 2017. В этом учебнике используется база данных NYCTaxi_sample на SQL Server.
Используя сочетание кода на языке R, данных SQL Server и пользовательских функций SQL, вы создадите модель классификации, которая сообщает вероятность получения чаевых таксистом за конкретную поездку. Вы также развернете модель R в SQL Server и воспользуетесь данными на сервере для формирования оценок на основе модели.
Этот пример можно адаптировать для решения других реальных проблем, таких как прогнозирование отклика клиентов на кампании по сбыту или прогнозирование выручки или посещаемости на мероприятии. Так как модель можно вызывать из хранимой процедуры, ее можно легко внедрить в приложение.
Поскольку это пошаговое руководство призвано познакомить разработчиков на языке R со службами Службы R (в базе данных), то во всех возможных случаях используется язык R. Однако, это не означает, что он является лучшим средством для выполнения каждой задачи. Во многих случаях SQL Server может обеспечивать более высокую производительность, особенно для таких задач, как агрегирование данных и формирование характеристик. Для выполнения таких задач новые возможности SQL Server, такие как оптимизированные для памяти индексы columnstore, могут быть особенно полезны. Кроме того, мы попытаемся указать возможные пути оптимизации.
Предварительные требования
Службы машинного обучения SQL Server с интеграцией языка R или Службы SQL Server 2016 R
Разрешения для базы данных и имя пользователя для входа в базу данных SQL Server
Интегрированная среда разработки R, например RStudio или средство RGUI, входящее в состав R
Мы рекомендуем выполнять это пошаговое руководство на клиентской рабочей станции. Необходимо иметь возможность подключения к находящемуся в той же сети компьютеру с SQL Server и включенным языком R. Инструкции по настройке рабочей станции см. в разделе Настройка клиента обработки и анализа данных для разработки на R.
Вы также можете выполнить это пошаговое руководство на компьютере, где установлены как SQL Server, так и среда разработки R, но мы не рекомендуем использовать такую конфигурацию в рабочей среде. Если необходимо разместить клиент и сервер на одном компьютере, установите второй набор библиотек Microsoft R, чтобы отправлять сценарий R из "удаленного" клиента. Не используйте библиотеки R, установленные в программных файлах экземпляра SQL Server. В частности, если используется один компьютер, то для поддержки операций клиента и сервера необходимо иметь библиотеку RevoScaleR в обоих расположениях.
- C:\Program Files\Microsoft\R Client\R_SERVER\library\RevoScaleR
- C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\library\RevoScaleR
Дополнительные пакеты R
Для работы с этим пошаговым руководством требуется ряд библиотек R, которые по умолчанию не устанавливаются вместе с Службы R (в базе данных). Эти пакеты необходимо установить как на клиентском компьютере, на котором разрабатывается решение, так и на сервере SQL Server, где оно будет развертываться.
На клиентской рабочей станции
В среде R скопируйте следующие строки и выполните код в окне консоли (RGUI или в интегрированной среде разработки). Необходимые пакеты также будут установлены. Всего будет установлено около 32 пакетов. Для выполнения этого этапа необходимо подключение к Интернету.
# Install required R libraries, if they are not already installed.
if (!('ggmap' %in% rownames(installed.packages()))){install.packages('ggmap')}
if (!('mapproj' %in% rownames(installed.packages()))){install.packages('mapproj')}
if (!('ROCR' %in% rownames(installed.packages()))){install.packages('ROCR')}
if (!('RODBC' %in% rownames(installed.packages()))){install.packages('RODBC')}
На сервере
Существует несколько вариантов установки пакетов на SQL Server. Например, SQL Server предоставляет функцию Управление пакетами R, которая позволяет администраторам баз данных создавать репозиторий пакетов и назначать пользователю права на установку собственных пакетов. Однако если вы являетесь администратором на компьютере, то вы можете установить новые пакеты с помощью R при условии, что установка выполняется в нужную библиотеку.
Примечание
На сервере не нужно устанавливать в пользовательскую библиотеку, даже если появляется соответствующий запрос. При установке в пользовательскую библиотеку экземпляр SQL Server не сможет найти и запустить пакеты. Дополнительные сведения см. в статье Установка новых пакетов R в SQL Server.
На компьютере SQL Server откройте программу RGui.exe от имени администратора. Если вы установили службы R SQL Server с настройками по умолчанию, программу Rgui.exe можно найти в папке C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\bin\x64.
В командной строке R выполните следующие команды R:
install.packages("ggmap", lib=grep("Program Files", .libPaths(), value=TRUE)[1])
install.packages("mapproj", lib=grep("Program Files", .libPaths(), value=TRUE)[1])
install.packages("ROCR", lib=grep("Program Files", .libPaths(), value=TRUE)[1])
install.packages("RODBC", lib=grep("Program Files", .libPaths(), value=TRUE)[1])
В этом примере используется функция R grep для поиска вектора доступных путей, которая находит путь, содержащий "Program Files". Для получения дополнительной информации см. https://www.rdocumentation.org/packages/base/functions/grep.
Если вы считаете, что пакеты уже установлены, проверьте список установленных пакетов, выполнив команду installed.packages()
.