Часто задаваемые вопросы о PolyBase

Область применения: SQL Server 2016 (13.x) и более поздних версий

PolyBase и связанные серверы

В следующей таблице показаны различия между возможностями PolyBase и связанного сервера.

PolyBase Связанные серверы
Объект с областью видимости в базе данных Объект ограниченный областью экземпляра
Использует драйверы ODBC Использует поставщики OLE DB
Поддерживает операции чтения для всех источников данных и записи в некоторые внешние источники данных Поддерживает как операции чтения, так и записи
Запросы к удаленному источнику данных из одного соединения могут масштабироваться Запросы к удалёному источнику данных с одного соединения нельзя масштабировать
Поддерживается опускание предикатов Поддерживается опускание предикатов
Для группы доступности не требуется отдельная конфигурация Для каждого экземпляра в группе доступности требуется отдельная конфигурация
Только обычная проверка подлинности Базовая и интегрированная аутентификация
Подходит для аналитических запросов с обработкой большого числа строк Подходит для OLTP-запросов, возвращающих одну или несколько строк
Запросы с использованием внешней таблицы не могут участвовать в распределённой транзакции Распределенные запросы могут участвовать в распределенной транзакции

Новые возможности PolyBase в SQL Server 2022?

SQL Server 2022 (16.x) поддерживает файлы CSV, Parquet и Delta, хранящиеся на служба хранилища Azure Account v2, Azure Data Lake Storage 2-го поколения или любом объектном хранилище, совместимом с S3, используя S3 REST API, локально или в облаке.

SQL Server 2022 (16.x) поддерживает CREATE EXTERNAL TABLE AS SELECT (CETAS), а также такие команды, как OPENROWSET, CREATE EXTERNAL TABLE (CET), и улучшения T-SQL.

SQL Server 2022 (16.x) не поддерживает внешние источники данных Hadoop.

SQL Server 2022 (16.x) Кумулятивное обновление 2 вводит поддержку файлов Oracle TNS. Дополнительные сведения и примеры см. в статье CREATE EXTERNAL DATA SOURCE CONNECTION_OPTIONS.

Для получения дополнительной информации см. раздел «Виртуализация данных с помощью PolyBase для SQL Server 2022» и обзор улучшений SQL Server 2022 PolyBase.

Новые возможности PolyBase в SQL Server 2019?

PolyBase в SQL Server 2019 (15.x) может читать данные из нескольких источников. Вы можете хранить данные из этих внешних источников в виде внешних таблиц на вашем экземпляре SQL Server. PolyBase также поддерживает передачу вычислений на нижний уровень внешним источникам данных, за исключением универсальных типов ODBC.

Совместимые источники данных

  • SQL Server
  • Oracle
  • Teradata
  • MongoDB
  • Совместимые универсальные типы ODBC

SQL Server 2019 (15.x) Кумулятивное обновление 19 вводит поддержку файлов Oracle TNS. Дополнительные сведения и примеры см. в статье CREATE EXTERNAL DATA SOURCE CONNECTION_OPTIONS.

Note

PolyBase может подключаться к внешним источникам данных, используя сторонние драйверы ODBC. PolyBase не включает эти драйверы, и они могут работать не так, как задумано. Дополнительные сведения см. в статье Настройка PolyBase для доступа к внешним данным с использованием универсальных типов ODBC.

Что CONNECTION_OPTIONS можно указать для подключения к сторонним источникам данных?

Ознакомьтесь CREATE EXTERNAL DATA SOURCE CONNECTION_OPTIONS с поддерживаемыми вариантами подключения поставщиков данных для SQL Server, Oracle, Teradata, API MongoDB для Cosmos DB и универсальных поставщиков данных ODBC.

Как просмотреть план выполнения удаленного запроса для вычисления pushdown PolyBase?

Вы можете просматривать план удаленного выполнения запросов, используя разные методы в зависимости от версии SQL Server. Дополнительные сведения см. в Устранение неполадок PolyBase — просмотр плана запроса PolyBase.

Как определить, происходит ли вычисление PolyBase с использованием pushdown?

Дополнительные сведения см. в разделе Как определить, произошел ли внешний pushdown (внешнее сжатие).

Поддерживается ли PolyBase в База данных SQL Azure?

Нет, но вы можете запрашивать данные из файлов в Хранилище BLOB-объектов Azure с помощью функции OPENROWSET или использовать CREATE EXTERNAL TABLE для чтения данных из бессерверного пула SQL в Synapse Analytics. Дополнительные сведения см. в статье Azure SQL может считывать файлы хранилища Azure Data Lake с помощью внешних таблиц Synapse SQL.

Поддерживается ли PolyBase в управляемом экземпляре SQL Azure?

Управляемый экземпляр SQL Azure имеет собственные возможности виртуализации данных для хранилища Azure Data Lake Storage (ADLS) и Хранилище BLOB-объектов Azure в качестве источников данных. Для получения дополнительной информации см. виртуализация данных с Управляемый экземпляр SQL Azure.

Какие порты следует разрешить через брандмауэр для PolyBase?

Сам PolyBase не требует открытия дополнительных портов, за исключением случаев, когда используется группа масштабирования PolyBase. Без группы масштабирования сервис PolyBase не нуждается в правилах межсетевого экрана.

На серверах Windows PolyBase использует порты, которые использует экземпляр SQL Server в разделе IPAll настроек TCP/IP в диспетчер конфигурации SQL Server. Для получения дополнительной информации см. раздел TCP/IP Properties (вкладка IP-адресов). На серверах Linux PolyBase использует эту network.tcpport настройку. Дополнительные сведения см. в разделе TCP-порт.

Если используется масштабируемая группа PolyBase на нескольких серверах Windows, см. сведения о порте в следующем вопросе.

Однако необходимо разрешить использование других портов для обмена данными с различными внешними источниками данных, которые использует PolyBase. См. документацию по конфигурации ODBC, конфигурации ресурсов Azure или документацию по используемым источникам данных. Рассмотрим пример.

Исходная платформа Reference
Microsoft SQL Server Порты, используемые SQL Server
Hortonworks HDP Администрирование HDFS
Cloudera CDH Порты, используемые компонентами CDH

Какие порты используются для группы PolyBase для масштабирования?

По умолчанию служба перемещения данных PolyBase подключается к головному узлу масштабируемой группы через диапазон портов TCP 16450-16460 (обычно 16450-1645), а также через порт 17001. PolyBase использует эти порты только при настройке масштабируемой группы, так что разрешайте их через серверные межсетевые экраны. SQL Server Setup автоматически создаёт локальное правило межсетевого экрана, которое позволяет использовать эти порты при установке функции. Дополнительные сведения см. в статье Настройка групп масштабирования PolyBase в Windows.

Note

Группы горизонтального масштабирования PolyBase в SQL Server были удалены в SQL Server 2022 (16.x).