Настройка доступа к внешним данным в PolyBase с помощью универсальных типов ODBC
Область применения: SQL Server
PolyBase, начиная с SQL Server 2019, позволяет подключаться к источникам данных, совместимым с ODBC, с помощью соединителя ODBC.
В этой статье показано, как создать подключение с помощью источника данных ODBC. В качестве примера в руководстве используется один конкретный драйвер ODBC. Для получения конкретных примеров обратитесь к поставщику ODBC. Чтобы определить подходящие параметры строки подключения, обратитесь к документации по драйверу ODBC для источника данных. Примеры, приведенные в этой статье, могут не применяться к конкретному драйверу ODBC.
Предварительные требования
Примечание.
Для использования этой функции требуется SQL Server в Windows.
PolyВase нужно установить и включить для установки PolyВase для экземпляра SQL Server.
Главный ключ необходимо создать перед созданием учетных данных для базы данных.
Установка драйвера ODBC
Скачайте и установите драйвер ODBC источника данных, к которому нужно подключиться, на каждом узле PolyBase. После установки драйвера вы можете просмотреть и протестировать его в разделе Администратор источников данных ODBC.
В приведенном выше примере имя драйвера обведено красным кружком. Используйте это имя при создании внешнего источника данных.
Внимание
Чтобы повысить производительность запросов, включите пулы соединений. Это можно сделать в разделе Администратор источников данных ODBC.
Создание зависимых объектов в SQL Server
Чтобы использовать источник данных ODBC, сначала необходимо создать несколько объектов для завершения настройки.
В рамках этого раздела используются следующие команды Transact-SQL:
Создайте учетные данные в области базы данных для доступа к источнику ODBC.
CREATE DATABASE SCOPED CREDENTIAL [<credential_name>] WITH IDENTITY = '<username>', Secret = '<password>';
Например, в следующем примере создаются учетные данные с именем
credential_name
с удостоверениемusername
и сложным паролем.CREATE DATABASE SCOPED CREDENTIAL credential_name WITH IDENTITY = 'username', Secret = 'BycA4ZjrE#*2W%!';
Создайте внешний источник данных с помощью инструкции CREATE EXTERNAL DATA SOURCE.
CREATE EXTERNAL DATA SOURCE [<external_data_source_name>] WITH ( LOCATION = 'odbc://<ODBC server address>[:<port>]', CONNECTION_OPTIONS = 'Driver={<Name of Installed Driver>}; ServerNode = <name of server address>:<Port>', -- PUSHDOWN = [ON] | OFF, CREDENTIAL = [<credential_name>] );
В следующем примере создается внешний источник данных:
- С именем
external_data_source_name
- Размещенный ODBC
SERVERNAME
с номером порта4444
- Подключение с помощью
CData ODBC Driver For SAP 2015
— это драйвер, созданный в разделе Установка драйвера ODBC - На
ServerNode
sap_server_node
с номером порта5555
- Настроен для обработки данных, отправляемых на сервер (
PUSHDOWN = ON
) - С использованием учетных данных
credential_name
CREATE EXTERNAL DATA SOURCE external_data_source_name WITH ( LOCATION = 'odbc://SERVERNAME:4444', CONNECTION_OPTIONS = 'Driver={CData ODBC Driver For SAP 2015}; ServerNode = sap_server_node:5555', PUSHDOWN = ON, CREDENTIAL = credential_name );
- С именем
Создание внешней таблицы
После создания зависимых объектов можно создать внешнюю таблицу с помощью T-SQL.
В рамках этого раздела используются следующие команды Transact-SQL:
Создайте одну или несколько внешних таблиц.
Создайте внешнюю таблицу. Вам нужно обратиться ко внешнему источнику данных, созданному выше с помощью аргумента
DATA_SOURCE
, и указать исходную таблицу в качествеLOCATION
. Ссылаться на все столбцы не нужно, однако стоит убедиться, что типы сопоставлены должным образом.CREATE EXTERNAL TABLE [<your_table_name>] ( [<col1_name>] DECIMAL(38) NOT NULL, [<col2_name>] DECIMAL(38) NOT NULL, [<col3_name>] CHAR COLLATE Latin1_General_BIN NOT NULL ) WITH ( LOCATION='<sap_table_name>', DATA_SOURCE= [<external_data_source_name>] ) ;
Примечание.
Обратите внимание, что с помощью внешнего источника данных можно повторно использовать зависимые объекты для всех внешних таблиц.
Необязательно. Создайте статистику для внешней таблицы.
Чтобы обеспечить оптимальную производительность запросов, мы советуем создать статистику столбцов внешней таблицы, особенно тех, которые используются для объединения, применения фильтров и статистических выражений.
CREATE STATISTICS statistics_name ON contact (FirstName) WITH FULLSCAN;
Следующие шаги
Дополнительные сведения о PolyBase см. в статье Руководство по PolyBase.
Дополнительные руководства по созданию внешних источников данных и внешних таблиц в различных источниках данных см . в справочнике по PolyBase Transact-SQL.