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


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

Применимо:SQL ServerНе поддерживается.База данных SQL AzureAzure Synapse Analytics Analytics Platform System (PDW)

PolyBase — это функция виртуализации данных для SQL Server.

Что такое PolyBase?

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

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

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

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

  • SQL Server 2016 (13.x) и более поздние версии (Windows).
  • SQL Server 2019 (15.x) и более поздние версии (Windows и Linux).
  • Система платформы аналитики SQL Server (PDW)
  • Azure Synapse Analytics (для выделенных пулов SQL)

Примечание.

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

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

Новое в предварительной версии SQL Server 2025 (17.x) Сведения
Встроенная поддержка CSV, Parquet и Delta 1 Вам не нужно устанавливать службу запросов PolyBase для внешних данных, чтобы использовать OPENROWSET, CREATE EXTERNAL TABLE или CREATE EXTERNAL TABLE AS SELECT с следующими типами внешних данных: Parquet, Delta, Azure Blob Storage (ABS), Azure Data Lake Storage (ADLS) или хранилище объектов S3-Compatible.
Использование универсальных источников данных ODBC в Linux Дополнительные сведения см. в статье Настройка PolyBase для доступа к внешним данным с помощью универсальных типов ODBC.

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 account версии 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:

* 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.

  • Запрашивать данные, хранящиеся в хранилище BLOB-объектов Azure. Хранилище BLOB-объектов Azure удобно хранить данные для использования службами Azure. PolyBase позволяет легко обращаться к данным с помощью T-SQL.

  • Запрашивание данных, хранящихся в Hadoop, из экземпляра SQL Server или PDW. Пользователи хранят данные в более экономичных распределенных и масштабируемых системах, таких как Hadoop. PolyBase позволяет легко запрашивать данные с помощью T-SQL.

  • Импорт данных из Hadoop, хранилища BLOB-объектов Azure или Azure Data Lake Store. Используйте скорость технологии и анализа столбцов Microsoft SQL, импортируя данные из Hadoop, хранилища BLOB-объектов Azure или Azure Data Lake Store в реляционные таблицы. Не требуется отдельное средство для ETL или импорта.

  • Экспортировать данные в Hadoop, хранилище BLOB-объектов Azure или Azure Data Lake Store. Архивация данных в Hadoop, хранилище BLOB-объектов Azure или Azure Data Lake Store позволяет создать экономичное хранилище и обеспечить его подключение к сети для удобного доступа к данным.

  • Интегрироваться со средствами бизнес-аналитики. Используйте PolyBase с бизнес-аналитикой и стеком анализа Майкрософт или используйте сторонние средства, совместимые с 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 должны быть изменены на основе следующей справочной таблицы:

Внешний источник данных С дт. По
Хранилище BLOB-объектов Azure wasb(s) абдоминальные мышцы
ADLS 2-го поколения abfs(s) adls

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

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

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

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

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

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