Поделиться через


Настройка доступа к внешним данным в PolyBase с помощью универсальных типов ODBC

Область применения:SQL Server

PolyBase, начиная с SQL Server 2019, позволяет подключаться к источникам данных, совместимым с ODBC, с помощью соединителя ODBC. Начиная с предварительной версии SQL Server 2025 (17.x), эта функция доступна в Linux.

В этой статье показано, как создать подключение с помощью источника данных ODBC. В качестве примера в руководстве используется один конкретный драйвер ODBC. Для получения конкретных примеров обратитесь к поставщику ODBC. Чтобы определить подходящие параметры строки подключения, обратитесь к документации по драйверу ODBC для источника данных. Примеры, приведенные в этой статье, могут не применяться к конкретному драйверу ODBC.

Предварительные требования

Примечание.

В SQL Server 2022 (16.x) и предыдущих версиях эта функция требует SQL Server в Windows.

  • PolyBase должен быть установлен и включен для вашего экземпляра SQL Server PolyBase installation.

  • Перед созданием учетных данных базы данных необходимо создать главный ключ.

Установка драйвера ODBC

Следуйте инструкциям по установке операционной системы.

Предварительная версия SQL Server 2025 (17.x) по умолчанию использует Microsoft ODBC Driver версии 18 для источников данных PolyBase sqlserver. Этот драйвер поддерживает TDS 8.0 и включает различные обновления, функции и некоторые критические изменения. Чтобы использовать TDS 8.0, необходимо использовать новый параметр шифрования и установить доверенный сертификат на сервере.

Дополнительные сведения о драйвере Microsoft ODBC версии 18 для SQL Server см. в следующей статье:

Дополнительные сведения о поддержке TDS 8.0 SQL Server см. в статье TDS 8.0.

Скачайте и установите драйвер 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. Замените <password> надежным паролем.

    CREATE DATABASE SCOPED CREDENTIAL credential_name
        WITH IDENTITY = 'username', SECRET = '<password>';
    
  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
    • На ServerNodesap_server_node порт 5555
    • Настроен для обработки данных, отправляемых на сервер (PUSHDOWN = ON)
    • С использованием учетных данных credential_name
    CREATE EXTERNAL DATA SOURCE external_data_source_name
    WITH (
        LOCATION = 'odbc://SERVERNAME:4444',
        PUSHDOWN = ON,
        CONNECTION_OPTIONS = 'Driver={CData ODBC Driver For SAP 2015};
            ServerNode = sap_server_node:5555',
        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 (
        DATA_SOURCE = [<external_data_source_name>],
        LOCATION = '<sap_table_name>'
    );
    

    Примечание.

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

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

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

    CREATE STATISTICS statistics_name ON contact(FirstName) WITH FULLSCAN;