Виртуализация данных с помощью PolyBase в SQL Server
Применимо: SQL Server База данных 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)
- Виртуализация данных в Azure Synapse Analytics доступна в двух режимах, PolyBase и машинном коде. Дополнительные сведения см. в статье "Использование внешних таблиц с Synapse SQL".
Примечание.
Виртуализация данных также доступна для Управляемый экземпляр SQL Azure, в пределах запроса внешних данных, хранящихся в файлах в Azure Data Lake Storage (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:
- SQL Server
- Oracle
- Teradata
- MongoDB
- Hadoop*
- S3-совместимое хранилище объектов
- CSV в Хранилище BLOB-объектов Azure
* 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:
- Установите PolyBase в Windows или в Linux.
- Начиная с SQL Server 2019 (15.x), включите PolyBase в sp_configure при необходимости.
- Создайте внешний источник данных.
- Создайте внешнюю таблицу.
Интеграция с 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.
Дополнительные руководства по различным внешним источникам данных см. в следующем разделе:
- Hadoop
- Хранилище BLOB-объектов Azure
- SQL Server
- Oracle
- Teradata
- MongoDB
- Универсальные типы ODBC
- S3-совместимое хранилище объектов
- CSV
- Таблица Delta
Виртуализация данных на других платформах
Функции виртуализации данных также доступны на других платформах:
- Использование внешних таблиц в Synapse SQL
- Виртуализация данных с помощью Управляемый экземпляр SQL Azure