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.
Function | Description |
---|---|
RxInSqlServer | Создание объекта контекста вычисления SQL Server для отправки вычислений в удаленный экземпляр. Несколько функций RevoScaleR принимают контекст вычисления в качестве аргумента. |
rxGetComputeContext/rxSetComputeContext | Получение или задание активного контекста вычислений. |
RxSqlServerData | Создание объекта данных на основе запроса или таблицы SQL Server. |
RxOdbcData | Создание источника данных на основе соединения ODBC. |
RxXdfData | Создание источника данных на основе локального XDF-файла. XDF-файлы часто используются для разгрузки данных в памяти на диск. XDF-файл может быть полезен при работе с объемом данных, превышающим объем передаваемых данных из базы данных в одном пакете, или же превышающим допустимый объем данных в памяти. Например, если вам приходится часто перемещать большие объемы данных из базы данных на локальную рабочую станцию, то вместо того, чтобы выполнять запросы к базе данных для каждой операции R, вы можете использовать XDF-файл как кэш, чтобы сохранить данные локально, а затем работать с ними в рабочей области R. |
Совет
Если вы не знакомы с концепциями источников данных или контекстов вычислений, рекомендуется начать с изучения распределенных вычислений.
Выполнение инструкций DDL
Вы можете выполнить инструкции DDL из R, если у вас имеются необходимые разрешения на экземпляр и базу данных. Следующие функции используют вызовы ODBC для выполнения инструкций DDL или получения схемы базы данных.
Function | Description |
---|---|
rxSqlServerTableExists и rxSqlServerDropTable | Удалите таблицу SQL Server или проверьте наличие таблицы базы данных или объекта. |
rxExecuteSQLDDL | Выполнение команды языка описания данных DDL, которая определяет объекты базы данных или манипулирует ими. Эта функция не может возвращать данные и используется только для получения или изменения метаданных или схемы объекта. |
2. Работа с данными (ETL)
После создания объекта источника данных вы можете использовать его, чтобы загрузить в него данные, преобразовать данные или записать новые данные в указанное расположение. В зависимости от размера данных в источнике вы также можете определить размер пакета как часть источника данных и переместить данные фрагментами.
Function | Description |
---|---|
Методы rxOpen | Проверка доступности источника данных, открытие или закрытие источника данных, чтение данных из источника, запись данных в целевой объект и закрытие источника данных. |
rxImport | Перемещение данных из источника данных в хранилище файлов или кадр данных. |
rxDataStep | Преобразование данных при их перемещении между источниками данных. |
3. Графические функции
Имя функции | Description |
---|---|
rxHistogram | Создает гистограмму на основе данных. |
rxLinePlot | Создает линейный график на основе данных. |
rxLorenz | Вычисляет кривую Лоренца, которую можно построить. |
rxRocCurve | Вычисляет и строит кривые ошибок на основе фактических и прогнозируемых данных. |
4. Описательная статистика
Имя функции | Description |
---|---|
rxQuantile* | Вычисляет приблизительные квантили для XDF-файлов и кадров данных без сортировки. |
rxSummary* | Базовая сводная статистика по данным, включая вычисления по группе. Запись вычислений по группе в XDF-файл не поддерживается. |
rxCrossTabs* | Перекрестное табулирование данных на основе формул. |
rxCube* | Альтернативное перекрестное табулирование на основе формул, предназначенное для эффективного представления возвращаемых результатов куба. Запись выходных данных в XDF-файл не поддерживается. |
rxMarginals | Маржинальные сводки по перекрестным табулированиям. |
as.xtabs | Преобразует результаты перекрестного табулирования в объект xtabs. |
rxChiSquaredTest | Выполняет тест по критерию хи-квадрат для объекта xtabs. Используется с небольшими наборами данных и не фрагментирует данные. |
rxFisherTest | Выполняет точный тест Фишера для объекта xtabs. Используется с небольшими наборами данных и не фрагментирует данные. |
rxKendallCor | Вычисляет коэффициент ранговой корреляции Кендалла с использованием объекта xtabs. |
rxPairwiseCrossTab | Применяет функцию к парным сочетаниям строк и столбцов объекта xtabs. |
rxRiskRatio | Вычисляет относительный риск в четырехклеточном объекте xtabs. |
rxOddsRatio | Вычисляет отношение шансов в четырехклеточном объекте xtabs. |
Символ * обозначает наиболее популярные функции в этой категории.
5. Функции прогнозирования
Имя функции | Description |
---|---|
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, рекомендуется переписать код и оформить его в виде функции, которая содержит четко определенные входные и выходные данные.