RevoScaleR (пакет R в Службах машинного обучения SQL Server)

Применимо к: SQL Server 2016 (13.x) и более поздних версий

RevoScaleR — это пакет R от корпорации Майкрософт, который поддерживает распределенные вычисления, удаленные контексты вычислений и высокопроизводительные алгоритмы обработки и анализа данных. Он также поддерживает импорт и преобразование данных, формирование сводных данных, визуализацию и анализ. Этот пакет входит в состав Служб машинного обучения SQL Server и служб SQL Server 2016 R Services.

В отличие от базовых функций R, операции RevoScaleR могут выполняться для крупных наборов данных параллельно и в распределенных файловых системах. Функции могут работать с наборами данных, не умещающимися в памяти, посредством фрагментации и повторной сборки результатов после завершения операций.

Функции RevoScaleR указываются с префиксом rx** или Rx, чтобы их было легко найти.

RevoScaleR выступает в качестве платформы для распределенной обработки и анализа данных. Например, можно использовать преобразования и контексты вычислений RevoScaleR с передовыми алгоритмами в MicrosoftML. Можно также использовать rxExec для параллельного выполнения базовых функций R.

Полная справочная документация

Пакет RevoScaleR распространяется в нескольких продуктах Майкрософт, но его использование не зависит от того, получили ли вы его в SQL Server или в другом продукте. Благодаря сходству функций документация по отдельным функциям RevoScaleR опубликована только в одном разделе в справочнике по R. Если для конкретных продуктов функции будут действовать иначе, выявленные расхождения будут приведены на странице справки по функциям.

Версии и платформы

Пакет RevoScaleR основан на R 3.4.3 и доступен только при установке одного из следующих продуктов или скачиваемых файлов Майкрософт.

Примечание

В SQL Server 2017 полные версии выпусков продуктов доступны только для Windows. В SQL Server 2019 библиотека RevoScaleR поддерживает Windows и Linux.

Функции по категориям

Чтобы можно было понять, как использовать каждую функцию, в этом разделе приводится описание функций по категориям. Для поиска функций в алфавитном порядке можно воспользоваться оглавлением.

1\. Источники данных и вычисления

RevoScaleR содержит функции для создания источников данных и настройки расположения или контекста вычисления, в котором выполняются вычисления. Объект источника данных представляет собой контейнер, который указывает строку подключения с необходимым набором данных и определяется как таблица, представление или запрос. Вызовы хранимых процедур не поддерживаются. Функции, относящиеся к сценариям SQL Server, приведены в таблице ниже.

В некоторых случаях SQL Server и R используют разные типы данных. Список сопоставлений между типами данных SQL и R см. в разделе о типах данных R и SQL.

Функция Описание
RxInSqlServer Создание объекта контекста вычисления SQL Server для отправки вычислений в удаленный экземпляр. Несколько функций RevoScaleR принимают контекст вычисления в качестве аргумента.
rxGetComputeContext/rxSetComputeContext Получение или задание активного контекста вычислений.
RxSqlServerData Создание объекта данных на основе запроса или таблицы SQL Server.
RxOdbcData Создание источника данных на основе соединения ODBC.
RxXdfData Создание источника данных на основе локального XDF-файла. XDF-файлы часто используются для разгрузки данных в памяти на диск. XDF-файл может быть полезен при работе с объемом данных, превышающим объем передаваемых данных из базы данных в одном пакете, или же превышающим допустимый объем данных в памяти. Например, если вам приходится часто перемещать большие объемы данных из базы данных на локальную рабочую станцию, то вместо того, чтобы выполнять запросы к базе данных для каждой операции R, вы можете использовать XDF-файл как кэш, чтобы сохранить данные локально, а затем работать с ними в рабочей области R.

Совет

Если вы не знакомы с концепциями источников данных или контекстов вычислений, рекомендуется начать с изучения распределенных вычислений.

Выполнение инструкций DDL

Вы можете выполнить инструкции DDL из R, если у вас имеются необходимые разрешения на экземпляр и базу данных. Следующие функции используют вызовы ODBC для выполнения инструкций DDL или получения схемы базы данных.

Функция Описание
rxSqlServerTableExists и rxSqlServerDropTable Удаление таблицы SQL Server или проверка существования объекта или таблицы базы данных.
rxExecuteSQLDDL Выполнение команды языка описания данных DDL, которая определяет объекты базы данных или манипулирует ими. Эта функция не может возвращать данные и используется только для получения или изменения метаданных или схемы объекта.

2\. Работа с данными (ETL)

После создания объекта источника данных вы можете использовать его, чтобы загрузить в него данные, преобразовать данные или записать новые данные в указанное расположение. В зависимости от размера данных в источнике вы также можете определить размер пакета как часть источника данных и переместить данные фрагментами.

Функция Описание
Методы rxOpen Проверка доступности источника данных, открытие или закрытие источника данных, чтение данных из источника, запись данных в целевой объект и закрытие источника данных.
rxImport Перемещение данных из источника данных в хранилище файлов или кадр данных.
rxDataStep Преобразование данных при их перемещении между источниками данных.

3\. Графические функции

Имя функции Описание
rxHistogram Создает гистограмму на основе данных.
rxLinePlot Создает линейный график на основе данных.
rxLorenz Вычисляет кривую Лоренца, которую можно построить.
rxRocCurve Вычисляет и строит кривые ошибок на основе фактических и прогнозируемых данных.

4\. Описательная статистика

Имя функции Описание
rxQuantile* Вычисляет приблизительные квантили для XDF-файлов и кадров данных без сортировки.
rxSummary* Базовая сводная статистика по данным, включая вычисления по группе. Запись вычислений по группе в XDF-файл не поддерживается.
rxCrossTabs* Перекрестное табулирование данных на основе формул.
rxCube* Альтернативное перекрестное табулирование на основе формул, предназначенное для эффективного представления возвращаемых результатов куба. Запись выходных данных в XDF-файл не поддерживается.
rxMarginals Маржинальные сводки по перекрестным табулированиям.
as.xtabs Преобразует результаты перекрестного табулирования в объект xtabs.
rxChiSquaredTest Выполняет тест по критерию хи-квадрат для объекта xtabs. Используется с небольшими наборами данных и не фрагментирует данные.
rxFisherTest Выполняет точный тест Фишера для объекта xtabs. Используется с небольшими наборами данных и не фрагментирует данные.
rxKendallCor Вычисляет коэффициент ранговой корреляции Кендалла с использованием объекта xtabs.
rxPairwiseCrossTab Применяет функцию к парным сочетаниям строк и столбцов объекта xtabs.
rxRiskRatio Вычисляет относительный риск в четырехклеточном объекте xtabs.
rxOddsRatio Вычисляет отношение шансов в четырехклеточном объекте xtabs.

Символ * обозначает наиболее популярные функции в этой категории.

5\. Функции прогнозирования

Имя функции Описание
rxLinMod* Подгоняет линейную модель к данным.
rxLogit* Подгоняет модель логистической регрессии к данным.
rxGlm* Подгоняет обобщенную линейную модель к данным.
rxCovCor* Вычисляет матрицу ковариации, корреляции или суммы квадратов/векторного произведения для набора переменных.
rxDTree* Подгоняет дерево классификации или регрессии к данным.
rxBTrees* Подгоняет лес принятия решений с классификацией или регрессией к данным с помощью алгоритма стохастического градиентного усиления.
rxDForest* Подгоняет лес принятия решений с классификацией или регрессией к данным.
rxPredict* Вычисляет прогнозы для подогнанных моделей. Результатом должен быть источник данных XDF.
rxKmeans* Выполняет кластеризацию методом К-средних.
rxNaiveBayes* Выполняет классификацию с помощью упрощенного алгоритма Байеса.
rxCov Вычисляет матрицу ковариации для набора переменных.
rxCor Вычисляет матрицу корреляции для набора переменных.
rxSSCP Вычисляет матрицу суммы квадратов или векторного произведения для набора переменных.
rxRoc Вычисляет операционные характеристики приемника (ROC) с использованием фактических и прогнозируемых значений из системы бинарного классификатора.

Символ * обозначает наиболее популярные функции в этой категории.

Работа с RevoScaleR

Функции в RevoScaleR вызываются в коде R, инкапсулированном в хранимые процедуры. Большинство разработчиков создают решения RevoScaleR локально, а затем переносят готовый код R в хранимые процедуры, отрабатывая, таким образом, процедуру развертывания.

При локальном выполнении скрипт R обычно запускается из командной строки или из среды разработки R с указанием контекста вычисления SQL Server с помощью одной из функций RevoScaleR. Удаленный контекст вычисления можно использовать для всего кода или для отдельных функций. Например, может потребоваться разгрузить обучение модели на сервер, чтобы работать с актуальными данными и исключить перемещение данных.

Когда вы будете готовы инкапсулировать скрипт R в хранимую процедуру sp_execute_external_script, рекомендуется переписать код и оформить его в виде функции, которая содержит четко определенные входные и выходные данные.

См. также раздел