Настройка доступа к внешним данным в 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.

Масштабируемые группы PolyBase

В приведенном выше примере имя драйвера обведено красным кружком. Используйте это имя при создании внешнего источника данных.

Внимание

Чтобы повысить производительность запросов, включите пулы соединений. Это можно сделать в разделе Администратор источников данных ODBC.

Создание зависимых объектов в SQL Server

Чтобы использовать источник данных ODBC, сначала необходимо создать несколько объектов для завершения настройки.

В рамках этого раздела используются следующие команды Transact-SQL:

  1. Создайте учетные данные в области базы данных для доступа к источнику 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%!';
    
  2. Создайте внешний источник данных с помощью инструкции 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:

  1. Создайте одну или несколько внешних таблиц.

    Создайте внешнюю таблицу. Вам нужно обратиться ко внешнему источнику данных, созданному выше с помощью аргумента 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>]
      )
      ;
    

    Примечание.

    Обратите внимание, что с помощью внешнего источника данных можно повторно использовать зависимые объекты для всех внешних таблиц.

  2. Необязательно. Создайте статистику для внешней таблицы.

    Чтобы обеспечить оптимальную производительность запросов, мы советуем создать статистику столбцов внешней таблицы, особенно тех, которые используются для объединения, применения фильтров и статистических выражений.

    CREATE STATISTICS statistics_name ON contact (FirstName) WITH FULLSCAN; 
    

Следующие шаги

Дополнительные сведения о PolyBase см. в статье Руководство по PolyBase.

Дополнительные руководства по созданию внешних источников данных и внешних таблиц в различных источниках данных см . в справочнике по PolyBase Transact-SQL.