По мере внедрения новых технологий, предусматривающих сбор и анализ огромных объемов данных, например Интернета вещей (Internet-Of-Things, IoT), Большие Данные (Big Data) быстро превращаются в важный актив многих компаний. Как правило, Большие Данные отличаются от реляционных данных тем, что они не всегда объединяются в упорядоченные реляционные множества. Определяющими характеристиками Больших Данных являются «три V»: объем (Volume), скорость (Velocity) и многообразие (Variety). Это означает, что проекты, относящиеся к категории Big Data, связаны либо с обработкой огромных массивов данных, либо с данными, поступающими или собираемыми с очень высокой скоростью, либо с данными, представленными во множестве форм и размеров. Реляционные базы данных, как правило, не используются в проектах больших данных. Вместо них обычно применяются базы данных NoSQL. Многие проекты Big Data реализуются с помощью таких решений, как разработанные специалистами Microsoft системы HDInsight или Hadoop. С другой стороны, эти системы Big Data обычно необходимо интегрировать с существующими данными из реляционных баз данных или хранилищ данных.
Вот здесь-то в дело и вступает реализованная в SQL Server 2016 функция PolyBase. В сущности, она представляет собой своеобразный мост между реализованными в SQL Server реляционными базами данных или хранилищами данных и неструктурированными базами данных Big Data, такими как Hadoop. Строго говоря, PolyBase — функция не новая. Раньше она применялась только в программно-аппаратном комплексе SQL Server Parallel Data Warehouse, который позднее получил новое наименование, Microsoft Analytics Platform System. Комплекс Parallel Data Warehouse, как правило, эксплуатировался только в самых крупных организациях. С включением PolyBase в основную линейку продуктов SQL Server 2016 мост Больших Данных становится доступным для всех установок SQL Server 2016.
PolyBase дает возможность использовать существующие инструменты SQL Server, такие как SSMS и T-SQL, для опроса хранилищ Big Data. Мы можем обращаться к данным в кластерах Hadoop и даже писать запросы, в которых полуструктурированные Большие Данные будут объединены с таблицами в реляционных базах данных SQL Server. С появлением первого выпуска SQL Server 2016 PolyBase получает возможность извлекать внешние данные из версий Cloudera и Hortonworks баз данных Hadoop и хранилища больших двоичных объектов Azure Blob Storage. Представители Microsoft заявили о своем намерении в дальнейшем добавить и другие источники данных. Схема взаимодействия с Hadoop и хранилищем больших двоичных объектов Azure представлена на рисунке.
Рисунок. Подключение SQL Server 2016 к Big Data с помощью PolyBase |
PolyBase устанавливается в ходе развертывания SQL Server по желанию администратора. Чтобы установить PolyBase, нужно во время установки SQL Server 2016 выбрать настройку PolyBase Query Service for External Data. В отличие от всех других факультативных средств SQL Server 2016, PolyBase предполагает обязательную установку среды Oracle Java SE Runtime Environment (JRE) версии 7.51 или выше. Java Runtime должна быть установлена прежде функции PolyBase. используется аналогично связанному серверу. PolyBase прозрачна для приложения, и внешние источники данных включены в схему базы данных. Когда PolyBase используется для выполнения запросов к данным Hadoop, процессор PolyBase определяет время формирования карты Hadoop, по мере необходимости сокращает число заданий и затем возвращает данные на SQL Server.
Интеграция Big Data в SQL Server расширяет возможности SQL Server и реализованных в нем инструментов, а также позволяет задействовать эти данные в ваших приложениях и в средствах подготовки отчетов, таких как Reporting Services, Power Query и Power BI.