Настройка PolyBase для доступа к внешним данным в SQL Server
Область применения: SQL Server
Эта статья описывает, как с помощью PolyBase в экземпляре SQL Server запросить внешние данные другого экземпляра SQL Server.
Необходимые компоненты
Если вы не установили PolyBase, см. раздел Установка PolyBase. Необходимые условия описываются в статье, посвященной установке. По завершении установки необходимо также включить PolyBase.
Внешний источник данных SQL Server использует проверку подлинности SQL.
Главный ключ необходимо создать перед созданием учетных данных для базы данных.
Настройка внешнего источника данных SQL Server
Чтобы запросить данные из источника данных SQL Server, необходимо создать внешние таблицы, чтобы ссылаться на внешние данные. Этот раздел содержит пример кода для создания таких внешних таблиц.
Чтобы обеспечить оптимальную производительность запросов, создайте статистику столбцов внешней таблицы, особенно тех, которые используются для объединения, фильтров и статистических выражений.
В рамках этого раздела используются следующие команды Transact-SQL:
- CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)
- CREATE EXTERNAL DATA SOURCE (Transact-SQL)
- CREATE EXTERNAL TABLE (Transact-SQL)
- CREATE STATISTICS (Transact-SQL)
Создайте учетные данные в области базы данных для доступа к источнику SQL Server. В следующем примере создаются учетные данные для внешнего источника данных с
IDENTITY = 'username'
иSECRET = 'password'
.CREATE DATABASE SCOPED CREDENTIAL SqlServerCredentials WITH IDENTITY = 'username', SECRET = 'password';
Внимание
Соединитель ODBC SQL для PolyBase поддерживает только обычную проверку подлинности, но не проверку подлинности Kerberos.
Создайте внешний источник данных с помощью инструкции CREATE EXTERNAL DATA SOURCE. Следующий пример:
- Создает внешний источник данных
SQLServerInstance
. - Определяет внешний источник данных (
LOCATION = '<vendor>://<server>[:<port>]'
). В примере он указывает на экземпляр SQL Server по умолчанию. - Определяет, следует ли передавать вычисления на источник (
PUSHDOWN
).PUSHDOWN
по умолчанию равенON
.
Наконец, в примере используются учетные данные, созданные ранее.
CREATE EXTERNAL DATA SOURCE SQLServerInstance WITH ( LOCATION = 'sqlserver://SqlServer', PUSHDOWN = ON, CREDENTIAL = SQLServerCredentials);
- Создает внешний источник данных
Создание внешней таблицы с помощью инструкции CREATE EXTERNAL TABLE Для этой инструкции требуются параметры сортировки, а для расположения требуется нотация из трех частей (
<database>.<schema>.<table>
).CREATE EXTERNAL TABLE DatabasesExternal ( name VARCHAR(128) COLLATE SQL_Latin1_General_CP1_CI_AS) WITH (LOCATION = 'master.sys.databases', DATA_SOURCE = SQLServerInstance);
(Необязательно) Создайте статистику для внешней таблицы.
Чтобы обеспечить оптимальную производительность запросов, создайте статистику столбцов внешней таблицы, особенно тех, которые используются для объединения, фильтров и статистических выражений.
CREATE STATISTICS statistics_name ON customer (C_CUSTKEY)
WITH FULLSCAN;
Внимание
После создания внешнего источника данных можно использовать команду CREATE EXTERNAL TABLE, чтобы создать таблицу с поддержкой запросов по этому источнику.
Совместимые типы соединителей SQL Server
Для доступа к База данных SQL Azure можно также использовать соединитель SQL Server (sqlserver://). Для этого выполните те же действия, что указаны ранее. Убедитесь, что учетные данные базы данных, адрес сервера, порт и строка расположения сопоставляются с данными База данных SQL Azure источника данных, к которому требуется подключиться.
Следующие шаги
Дополнительные руководства по созданию внешних источников данных и внешних таблиц в различных источниках данных см . в справочнике по PolyBase Transact-SQL.
Дополнительные сведения о PolyBase см. в статье Руководство по PolyBase.