SQL Server 2016: R Services, часть 1, обзор

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

Основным минусом языка R становится то, что все обрабатываемые данные должны находиться в памяти. А на сегодняшний день, как мы знаем, количество анализируемых данных постоянно растет и выходит за пределы оперативной памяти. В SQL Server 2016 это ограничение можно обойти за счет используемых технологий. Чуть более года назад компания Microsoft купила Revolution Analytics, которая выпускает свои коммерческие продукты на основе языка R. Одним из этих продуктов является R Server, который содержит расширенные пакеты и свои версии многих популярных R функций, которые позволяют обрабатывать данные многопоточно, подгружая в память необходимые куски по мере необходимости. Все эти технологии были встроены и в SQL Server 2016. При этом осталась 100% совместимость с языком R. Вы можете выполнять внутри любой код на R, а также устанавливать и использовать дополнительные пакеты для R, которые расширяют возможности этого языка.

Отдельно стоит отметить возможности R по графическому представлению данных. Теперь вы можете генерировать эти графики внутри SQL Server 2016 и отображать в Reporting Services или в других своих приложениях.

Существует 2 сценария работы с R в SQL Server 2016. Во-первых, ваше приложение может выполнять хранимые процедуры на SQL Server, которые могут содержать код на R, и получать к себе результаты в виде таблиц, графиков, предсказаний и т.п. А во-вторых, ваш выделенный аналитик может с помощью специального API посылать команды на SQL Server, чтобы все вычисления выполнились там, а вернулись только результаты. Таким образом он может избежать долгого процесса загрузки данных на свою машину.

Если подвести небольшой итог под вступлением, то R Services позволяют значительно расширить возможности SQL Server 2016 в области анализа данных, добавляют те функции, которые отсутствуют в T-SQL и вряд-ли там когда-то появятся. В следующих статьях я начну постепенно раскрывать возможности R Services и приводить примеры обработки данных, чтобы вам было легче начать работу с этой системой.