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


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

Применимо к:SQL ServerAzure Synapse AnalyticsСистема платформы аналитики (PDW)

PolyBase обеспечивает виртуализацию данных для SQL Server.

Что такое PolyBase?

PolyBase позволяет экземпляру SQL Server запрашивать данные с помощью Transact-SQL (T-SQL) непосредственно из SQL Server, Oracle, Teradata, MongoDB, кластеров Hadoop, Cosmos DB и хранилища объектов, совместимого с S3, без отдельной установки программного обеспечения подключения к клиенту. Можно также использовать универсальный соединитель ODBC для подключения к дополнительным поставщикам с помощью сторонних драйверов ODBC. PolyBase позволяет с помощью запросов T-SQL объединить данные из внешних источников с данными из реляционных таблиц в экземпляре SQL Server.

PolyBase также поддерживает запросы полуструктурированных и структурированных форматов данных на основе файлов, таких как CSV, Parquet, JSON и Delta Lake. Это позволяет легко интегрировать данные на основе файлов в рабочие процессы T-SQL.

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

Поддерживаемые продукты и службы SQL

PolyBase предоставляет одинаковые функции для следующих продуктов SQL от корпорации Майкрософт:

Усовершенствования PolyBase в SQL Server 2025

Новые возможности SQL Server 2025 (17.x) Сведения
Встроенная поддержка CSV, Parquet и Delta 1 Служба запросов PolyBase для установки внешних данных больше не требуется использовать OPENROWSETили CREATE EXTERNAL TABLECREATE EXTERNAL TABLE AS SELECT со следующими типами внешних данных: Parquet, Delta, Хранилище BLOB-объектов Azure (ABS), Azure Data Lake Storage (ADLS) или хранилище объектов S3-Compatible.
Использование универсальных источников данных ODBC в Linux Дополнительные сведения см. в статье Настройка PolyBase для доступа к внешним данным с помощью универсальных типов ODBC.
Поддержка TDS 8.0 PolyBase использует безопасную конфигурацию по умолчанию с драйвером ODBC для SQL Server версии 18 и Encrypt=Yes (обязательно). В отличие от других функций SQL Server, PolyBase поддерживает сценарии использования самозаверяющих сертификатов TrustServerCertificate=True. Чтобы применить протокол TLS 1.3 и строгое шифрование с помощью TDS 8.0, установите Encrypt=Strict и TrustServerCertificate=No. Дополнительную информацию см. в статье CREATE EXTERNAL DATA SOURCE - CONNECTION_OPTIONS. Просмотрите критические изменения функций ядра СУБД в SQL Server 2025.
Управляемая идентичность Управляемое удостоверение доступно для SQL Server, включенного Azure Arc и SQL Server 2025 на виртуальных машинах Azure.

1 В SQL Server 2025 (17.x) служба запросов PolyBase для внешних данных по-прежнему требуется для подключения к другим базам данных. Например, SQL Server, Oracle, DB2, Teradata, MongoDB или ODBC.

Усовершенствования PolyBase в SQL Server 2022

Новые возможности SQL Server 2022 (16.x) Сведения
S3-совместимое хранилище объектов SQL Server 2022 (16.x) добавляет новый соединитель, хранилище объектов, совместимое с S3, с помощью REST API S3. С помощью OPENROWSET и CREATE EXTERNAL TABLE можно запрашивать файлы данных в хранилище объектов, совместимом с S3.
Некоторые соединители отделены от служб PolyBase Соединитель хранилища объектов, совместимый с S3, ADSL второго поколения и Azure Blob Storage больше не зависят от служб PolyBase. Службы PolyBase по-прежнему должны работать для поддержки подключения к Oracle, Teradata, MongoDB и универсальному подключению ODBC. Компонент PolyBase по-прежнему должен быть установлен на экземпляре SQL Server.
Пример файла Parquet PolyBase теперь может запрашивать данные из файлов Parquet, хранящихся в S3-совместимом хранилище объектов. Дополнительные сведения см. в статье Виртуализация файла parquet в S3-совместимом хранилище объектов с помощью PolyBase..
Формат разностной таблицы PolyBase теперь может запрашивать (только для чтения) данные из формата Delta Table, хранящегося в хранилище объектов, совместимом с S3, служба хранилища Azure Account версии 2 и Azure Data Lake Storage 2-го поколения. Дополнительные сведения см. в статье "Виртуализация разностной таблицы" с помощью PolyBase
Создание внешней таблицы как выбор (CETAS) PolyBase теперь может использовать CETAS для создания внешней таблицы, а затем экспорта, параллельного выполнения инструкции Transact-SQL SELECT в Azure Data Lake Storage 2-го поколения, учетной записи хранения Azure версии 2 и хранилища объектов, совместимого с S3. Дополнительные сведения см. в разделе CREATE EXTERNAL TABLE AS SELECT (CETAS).

Дополнительные возможности SQL Server 2022 (16.x) см. в статье "Новые возможности SQL Server 2022".

Совет

Руководство по функциям и возможностям PolyBase в SQL Server 2022 (16.x) см. в статье "Начало работы с PolyBase в SQL Server 2022".

Соединители PolyBase

Компонент PolyBase обеспечивает подключение к следующим внешним источникам данных:

Внешние источники данных SQL Server 2016-2019 с PolyBase SQL Server 2022 (16.x) с PolyBase APS PDW Azure Synapse Analytics
Oracle, MongoDB, Teradata Читать Читать нет нет
Базовый протокол ODBC Чтение (только Windows) Чтение (только Windows) нет нет
Хранилище Azure Чтение и запись Чтение и запись Чтение и запись Чтение и запись
Hadoop Чтение и запись нет Чтение и запись нет
SQL Server Читать Читать нет нет
S3-совместимое хранилище объектов нет Чтение и запись нет нет
  • SQL Server 2022 (16.x) и более поздних версий не поддерживают Hadoop.
  • SQL Server 2016 (13.x) представил PolyBase с поддержкой подключений к Hadoop и Хранилище BLOB-объектов Azure.
  • В SQL Server 2019 (15.x) появились дополнительные соединители, включая SQL Server, Oracle, Teradata и MongoDB.
  • SQL Server 2022 (16.x) представил соединитель хранилища, совместимый с S3.
  • Накопительное обновление 19 sql Server 2019 (15.x) ввело поддержку TNS Oracle.
  • Накопительное обновление 2 для SQL Server 2022 (16.x) ввело поддержку TNS Oracle.

В числе внешних соединителей PolyBase:

1 PolyBase поддерживает двух поставщиков Hadoop, Hortonworks Data Platform (HDP) и Cloudera Distributed Hadoop (CDH) через SQL Server 2019. Поддержка SQL Server для внешних источников данных HDFS Cloudera (CDP) и Hortonworks (HDP) прекращена и не включена в SQL Server 2022 (16.x) и более поздние версии. Дополнительные сведения см. в разделе Параметры больших данных на платформе Microsoft SQL Server.

Чтобы использовать PolyBase в экземпляре SQL Server:

  1. Установите PolyBase в Windows или в Linux.
  2. Начиная с SQL Server 2019 (15.x), включите PolyBase в sp_configure при необходимости.
  3. Создайте внешний источник данных.
  4. Создайте внешнюю таблицу.

Интеграция с Azure

Запросы T-SQL на основе PolyBase также можно использовать для импорта данных из хранилища BLOB-объектов Azure и экспорта данных в него. Кроме того, PolyBase позволяет Azure Synapse Analytics импортировать данные из Хранилища BLOB-объектов Azure и Azure Data Lake Store, а также экспортировать в них данные.

Зачем нужна технология PolyBase

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

  • передать часть данных, чтобы все они находились в одном месте;
  • запросить данные из двух источников, а затем написать пользовательскую логику запроса для объединения и интеграции данных на уровне клиента.

PolyBase позволяет использовать Transact-SQL для присоединения к данным.

PolyBase не требует установки дополнительного программного обеспечения в среду Hadoop. При запросе внешних данных используется такой же синтаксис T-SQL, как и при запросе таблицы базы данных. Все вспомогательные действия, реализуемые PolyBase, выполняются прозрачно. Автор запроса не нуждается в каких-либо знаниях о внешнем источнике.

Варианты использования PolyBase

PolyBase поддерживает перечисленные ниже сценарии в SQL Server.

  • Простой доступ к данным: Запрос других RDBM или внешних файлов, таких как CSV, Parquet и Delta Lake, с помощью T-SQL, как если бы они были собственными таблицами.
  • Выключенная загрузка холодных данных: Сохраняя его легкодоступным.
  • Улучшенная производительность: Уменьшите время и усилия, необходимые для интеграции и анализа данных из нескольких источников.
  • Экономичность: Свести к минимуму потребность в репликации и хранении данных, связанных с традиционными методами интеграции данных.
  • Аналитика в режиме реального времени: Включите запросы и аналитические сведения в режиме реального времени без задержек, вызванных перемещением или синхронизацией данных.
  • Безопасность: Используйте функции безопасности SQL Server для детализированных разрешений, управления учетными данными и управления.

Производительность

Трудно ограничить количество файлов или объем данных, которые можно запрашивать. Производительность запросов зависит от объема данных, формата данных, способа упорядочения данных и сложности запросов и соединений.

Дополнительные сведения о рекомендациях по производительности и рекомендациях по PolyBase см . в разделе "Рекомендации по производительности" в PolyBase для SQL Server.

Обновление до SQL Server 2022

Начиная с SQL Server 2022 (16.x) Платформа данных Hortonworks (HDP) и Cloudera Distributed Hadoop (CDH) больше не поддерживаются. Из-за этих изменений необходимо вручную удалить внешние источники данных PolyBase, созданные в предыдущих версиях SQL Server, использующих TYPE = HADOOP или службу хранилища Azure, перед миграцией на SQL Server 2022 (16.x) или более поздней версии. Удаление внешних источников данных также требует удаления связанных объектов базы данных, таких как учетные данные базы данных и внешние таблицы.

Соединители службы хранилища Azure должны быть изменены на основе следующей справочной таблицы:

Внешний источник данных С дт. По
Azure Blob-хранилище wasb[s] abs
ADLS 2-го поколения abfs[s] adls

Начало работы

Чтобы начать использовать компонент PolyBase, его необходимо установить в Windows или Linux и включить в sp_configure (если требуется).

Руководство по функциям и возможностям PolyBase см. в статье "Начало работы с PolyBase" в SQL Server 2022.

Дополнительные руководства по различным внешним источникам данных см. в следующем разделе:

Виртуализация данных на других платформах

Функции виртуализации данных также доступны на других платформах: