Анализ внутри базы данных с использованием языка R в SQL Server 2016

Дата публикации: 29.04.2016

 

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

Компании, планирующие использовать язык R в промышленной среде, могут столкнуться с некоторыми серьезными проблемами:

  • Масштабирование и производительность: большинство распространенных пакетов R с открытым исходным кодом работают в однопоточном режиме и могут обрабатывать только те наборы данных, которые умещаются в оперативной памяти локальной машины. Данное ограничение становится критическим недостатком в условиях, когда растет объем данных или необходимо ускорить выполнение аналитических процессов.
  • Интеграция с приложениями (операционализация): приложения в промышленной среде должны быть способны вызывать код R. Многие компании переводят код R на разные языки, чтобы интегрировать аналитику в приложения. Этот процесс, как правило, требует много усилий, больших денежных расходов, сопряжен с ошибками и не поддерживает гибкое внедрение инноваций. Компаниям нужны удобные способы построения прогнозов, оценок, графиков, а также интеграция с существующей логикой приложений.
  • Перемещение данных: по возможности следует избегать перемещения данных из БД. Перенос данных с целью анализа на отдельной машине, где запущен язык R, может создать проблемы с безопасностью и задержкой в случае роста объема данных. Кроме того, это может привести к фрагментации данных, поскольку разные люди в организации будут работать с разными версиями данных.

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



Решение

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

  • Службы R Services позволяют выполнять анализ внутри базы данных. Вы можете хранить данные в SQL Server 2016, а приложения вызывают скрипты R через хранимую процедуру T-SQL. Это упрощает интеграцию приложений с языком R. Скрипты R выполняются на той же машине, где хранятся данные, поэтому вам не нужно беспокоиться о безопасности: код R не сможет получить доступ к Интернету или к другим процессам, запущенным на SQL Server.
  • Пользователи R Services могут использовать библиотеку алгоритмов ScaleR — набор функций, который предлагает эквиваленты для повседневных задач, выполняемых на языке R. Однако в отличие от аналогов CRAN-R, функции ScaleR масштабируемы для обработки сотен миллионов и миллиардов строк посредством параллельных вычислений. Это обеспечивает производительность, которой невозможно достичь при использовании распространенных пакетов с открытым исходным кодом. API ScaleR были разработаны компанией Revolution Analytics. После того как Microsoft приобрела эту компанию, API были интегрированы в SQL Server. Они являются кроссплатформенными, то есть поддерживают не только SQL Server, но и другие платформы.
  • SQL Server также предлагает существующие функции и механизмы для интеграции и повышения производительности. Например, возможно использование ColumnStore индексов вместе с языком R, чтобы быстрее выполнять аналитические запросы. Встроенный механизм управления позволяет контролировать ресурсы, выделенные для среды выполнения R. А службы SQL Server Integration Services (SSIS) обеспечивают бесшовную интеграцию с ETL и планирование регламентных задач через интерфейс хранимых процедур.
  • Другая важная особенность R Services заключается в том, что пользователи могут работать со знакомыми инструментами:
    • Специалисты, занимающиеся изучением данных, имеют возможность использовать привычную среду R IDE. Они могут работать с R Studio, с недавно анонсированными средствами R Tools for Visual Studio или с любой средой IDE по своему усмотрению. Вместо того чтобы переносить данные на локальную машину, можно воспользоваться средством ScaleR для удаленного выполнения непосредственно из IDE. Применение средств SQL Server 2016 для анализа внутри БД позволяет ускорить анализ больших наборов данных.
    • К услугам администраторов серверов — хорошо им знакомое ПО SQL Server Management Studio для управления службами R Services, контроля ресурсов и назначения прав доступа.
    • Разработчикам приложений доступны API T-SQL. Они могут создавать отчеты SQL Server Reporting Services или панели мониторинга Power BI с оценками, прогнозами и графикой из R без необходимости изучать сам язык R.
    • Инженеры данных могут комбинировать R с существующими потоками ETL и планировать регламентные задачи с помощью служб SQL Server Integration Services.

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

 

С чего начать?

Вот список ресурсов, которые помогут вам приступить к работе с R Services:

  • Документация по продукту на MSDN
  • Видео от Data Driven, в котором рассказывается о том, как службы SQL Server R Services помогают создавать интеллектуальные приложения, выполнять предиктивный анализ и извлекать ценную информацию из данных. Другие видео по R Services см. в плейлисте Data Driven и на канале Channel9.
  • Руководства на MSDN
  • Шаблоны решения на сайте Cortana Analytics Gallery, образцы данных и кода на GitHub.
  • Если вы ничего не знаете о языке R, пройдите наши онлайн-курсы, например на сайте Datacamp, где вы также сможете найти углубленные курсы по API ScaleR.


Авторы публикации: Дотан Эльхаррар (Dotan Elharrar), главный руководитель программы машинного обучения, и Умачандар Джайачандран (Umachandar Jayachandran), старший руководитель программы SQL Server.