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

Область применения: SQL Server Not supported. База данных SQL Azure Azure 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 служба хранилища (ADLS) 2-го поколения и Хранилище BLOB-объектов Azure. Дополнительные сведения см. в статье Виртуализация данных с помощью Управляемого экземпляра Azure SQL.

Усовершенствования 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 2-го поколения и Хранилища BLOB-объектов Azure, больше не зависят от служб 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-го поколения. Дополнительные сведения см. в разделе "Виртуализация формата разностной таблицы"
Создание внешней таблицы как выбор (CETAS) PolyBase теперь может использовать CETAS для создания внешней таблицы и параллельного экспорта результата инструкции Transact-SQL SELECT для Azure Data Lake Storage 2-го поколения, служба хранилища Azure account версии 2 и хранилища объектов, совместимых с S3. Дополнительные сведения см. в разделе CREATE EXTERNAL TABLE AS SELECT (Transact-SQL).

Дополнительные возможности 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 Чтение и запись No Чтение и запись Нет
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 columnstore и возможности анализа, импортируя данные из 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) abs
ADLS 2-го поколения abfs(s) adls

Начать

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

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

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

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

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