Поделиться через


Масштабируемые группы PolyBase

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

Обработка больших наборов данных в Hadoop или хранилище BLOB-объектов Azure автономным экземпляром SQL Server с PolyBase может сопровождаться снижением производительности. Группы PolyBase позволяют создавать кластеры экземпляров SQL Server для обработки больших наборов данных из внешних источников данных (например, Hadoop или хранилища BLOB-объектов Azure), используя возможности масштабирования. Это помогает повысить производительность запросов. Теперь можно масштабировать вычисления SQL Server в соответствии с требованиями производительности рабочей нагрузки. Масштабируемая группа PolyBase — это группа экземпляров SQL Server, позволяющая обрабатывать большие наборы внешних данных в архитектуре параллельной обработки. Производительность загрузки данных и запросов может увеличиваться линейно по мере добавления дополнительных экземпляров SQL Server в группу.

Внимание

Группы масштабирования Microsoft SQL Server PolyBase прекращены. Функциональность группы горизонтального масштабирования была удалена из продукта в SQL Server 2022 (16.x) и более поздних версиях. Виртуализация данных PolyBase будет по-прежнему полностью поддерживаться как функция вертикального увеличения масштаба в SQL Server. Дополнительные сведения см. в разделе Параметры больших данных на платформе Microsoft SQL Server.

Сведения о виртуализации данных с помощью PolyBase в SQL Server и виртуализации данных с помощью PolyBase в SQL Server.

Схема, показывающая группы расширения PolyBase.

Головной узел

Головной узел содержит экземпляр SQL Server, на который отправляются запросы PolyBase. Каждая группа PolyBase может иметь только один головной узел. Головной узел — это логическая группа на экземпляре SQL Server, в которую входят ядро СУБД SQL Server, а также ядро PolyBase и служба "Перемещение данных PolyBase". Для головного узла с SQL Server 2017 и SQL Server 2016 должен использоваться выпуск Enterprise. Начиная с SQL Server 2019, для головного узла PolyBase можно использовать выпуск Enterprise либо Standard.

Вычислительный узел

Вычислительный узел содержит экземпляр SQL Server, который помогает выполнять масштабируемую обработку запросов к внешним данным. Вычислительный узел — это логическая группа на экземпляре SQL Server, в которую входят SQL Server и служба перемещения данных PolyBase. Группа PolyBase может включать несколько вычислительных узлов. В головном узле и вычислительных узлах должна использоваться одна и та же версия SQL Server. В первом выпуске SQL Server 2016 допускалось, чтобы для вычислительных узлов использовались выпуски Enterprise или Standard. Начиная с SQL Server 2016 с пакетом обновления 1 (SP1), для вычислительный узлов могут использоваться все выпуски SQL Server.

Горизонтальное масштабирование операций чтения

При запросе внешних экземпляров SQL Server, Oracle или Teradata секционированные таблицы получают преимущества от горизонтального масштабирования операций чтения. Каждый узел в группе горизонтального масштабирования PolyBase может развернуть до восьми читателей для чтения внешних данных. И каждому средству чтения назначается один раздел во внешней таблице.

Например, предположим, что у вас есть внешняя таблица SQL Server с 12 ежемесячными секциями и трехузловой группой масштабирования PolyBase, каждый узел использует четыре средства чтения PolyBase для обработки каждой из 12 секций. Этот сценарий показан на следующем рисунке.

Примечание.

Эта функция отличается от горизонтального масштабирования операций чтения через Hadoop.

Схема операций горизонтального масштабирования PolyBase.

Распределенная обработка запросов

Запросы PolyBase отправляются на SQL Server на головном узле. Часть запроса, которая относится к внешним таблицам, передается в ядро PolyBase.

Ядро PolyBase — это ключевой компонент в процессе обработки запросов PolyBase. Он анализирует запрос на внешние данные, создает план запроса и распределяет работу в службу перемещения данных на вычислительных узлах для выполнения. После выполнения этой работы ядро PolyBase получает результаты от вычислительных узлов и отправляет их на SQL Server для финальной обработки и передачи клиенту.

Служба перемещения данных PolyBase получает инструкции от ядра PolyBase и передает данные между HDFS и SQL Server, а также между экземплярами SQL Server на головном и вычислительных узлах.