Возможности и ограничения PolyBase

Применимо к: SQL Server 2016 (13.x) и более поздние версии Azure SQL базы данных, Azure Synapse Analytics, аналитическая платформа Analytics Platform System (PDW)

В этой статье приведена сводка функций PolyBase, доступных для продуктов и служб SQL Server.

Сводка функций по выпускам продукта

В следующей таблице перечислены основные функции PolyBase и продукты, в которых они доступны.

Функция SQL Server (начиная с версии 2016) База данных SQL Azure Azure Synapse Analytics Параллельное хранилище данных
Запрос данных Hadoop с помощью Transact-SQL Да Нет Нет Да
Импорт данных из Hadoop Да Нет Нет Да
Экспорт данных в Hadoop Да Нет Нет Да
Запрос, импорт и экспорт данных в Azure HDInsight Нет Нет Нет Нет
Отправка результатов вычислений запросов в Hadoop Да Нет Нет Да
Импорт данных из хранилища BLOB-объектов Azure Да Да 1 Да Да
Экспорт данных в хранилище BLOB-объектов Azure Да Нет Да Да
Импорт данных из хранилища Azure Data Lake Store Нет Нет Да Нет
Экспорт данных в хранилище Azure Data Lake Store Нет Нет Да Нет
Выполнение запросов PolyBase из средств бизнес-аналитики Майкрософт Да Нет Да Да

1 Представлено в SQL Server 2017 (14.x), см. Примеры массового доступа к данным в Azure Blob Storage.

Известные ограничения

PolyBase имеет следующие ограничения.

  • До SQL Server 2019 (15.x) максимальный размер строки, который включает полную длину столбцов переменной длины, не может превышать 32 КБ в SQL Server или 1 МБ в Azure Synapse Analytics. В SQL Server 2019 (15.x) и более поздних версиях это ограничение будет отменено. Ограничение остается 1 МБ для источников данных Hadoop, но ограничено только максимальным ограничением SQL Server для других источников данных.

  • При экспорте данных в файл формата ORC из SQL Server или Azure Synapse Analytics число столбцов с большим количеством текста может быть ограничено. Количество может быть ограничено до 50 из-за ошибок нехватки памяти в Java. Чтобы обойти эту проблему, экспортируйте подмножество столбцов.

  • PolyBase не может подключаться к экземплярам Hadoop при включении Knox.

  • Если вы используете таблицы Hive с параметром transactional = true, то PolyBase не может обратиться к данным в каталоге таблицы Hive.

  • Для правильной работы служб PolyBase требуется включить сетевой протокол TCP/IP для службы SQL Server. Кроме того, если для параметра конфигурации протокола TCP/IP установлено Прослушивать все в Нет, требуются следующие конфигурации TCP/IP:

    • Запись для соответствующего порта прослушивателя в динамических портах TCP или TCP-портах в IPAll. Это необходимо из-за способа, которым службы PolyBase разрешают порт прослушивателя подсистемы SQL Server.
    • Включите нужные IP-адреса в Свойства TCP/IP IP-адреса; в противном случае движок SQL Server не будет принимать подключения TCP/IP, и службам PolyBase по-прежнему не удастся подключиться к движку SQL Server.
  • PolyBase в SQL Server на Linux не работает, если IPv6 отключен в ядре. Дополнительные сведения см. в разделе SQL Server на Linux: известные проблемы.

  • Для правильной работы служб PolyBase требуется включить протокол общей памяти.

  • Если у вас есть экземпляр SQL Server по умолчанию, настроенный для прослушивания TCP-порта, отличного от 1433, его нельзя использовать в качестве головного узла в группе горизонтального масштабирования PolyBase. При выполнении sp_polybase_join_group, если передать 'MSSQLSERVER' в качестве имени экземпляра, SQL Server предполагает, что порт 1433 является портом прослушивателя. В результате служба перемещения данных не может подключиться к головному узлу во время запуска.

  • Синонимы Oracle не поддерживаются для использования с PolyBase.

  • Параметры сортировки UTF-8 не поддерживаются для внешних источников данных Hadoop.

  • Hadoop больше не поддерживается в SQL Server 2022 (16.x) и более поздних версиях.

  • Длина имени сервера привязана к 15-символьным ограничениям длины имени NetBIOS. Если после создания сервера изменить имя сервера на 16 символов или длиннее, служба перемещения данных PolyBase не запустится.

  • Группы горизонтального масштабирования PolyBase не поддерживаются в группах доступности AlwaysOn.

  • Базы данных, которые устанавливаются с помощью PolyBase (DWConfiguration, DWDiagnostics, DWQueue), должны находиться в режиме чтения и записи, чтобы PolyBase функционировал и для успешной установки накопительных обновлений. Поэтому эти базы данных в группе доступности не поддерживаются.