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


Подключение к источникам данных ODBC с помощью PolyBase на SQL Server в Linux

Применимо к: SQL Server 2025 (17.x)

В этой статье описывается, как использовать службы PolyBase с SQL Server в Linux.

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

Осторожность

Модель привлечения собственного водителя (BYOD) включает риски, которые являются ответственностью как клиента, так и поставщика водителей. Корпорация Майкрософт не несет ответственности за какие-либо проблемы, вызванные сторонним драйвером.

Примеры

Установка в Linux

В следующем примере показан драйвер ODBC SQL в Ubuntu.

  1. Добавьте репозиторий Майкрософт:

    1. Импорт ключа Microsoft GPG

      curl https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
      
    2. Добавление репозитория Майкрософт в систему

      curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
      
  2. Обновление списка пакетов

    sudo apt update
    
  3. Установка драйвера ODBC

    Установите последнюю версию драйвера ODBC. В следующем примере устанавливается версия 18.

    sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18
    

Установка создает следующие файлы:

Файл Описание
/etc/odbcinst.ini Имя драйвера, описание и сведения о версии.
/etc/odbc.ini DNS-имя, шифрование и другие спецификации.

Необходимо создать odbc.ini файл на основе свойств и спецификаций драйвера. Несколько драйверов используют одинаковые odbc.ini файлы и odbcinst.ini файлы с несколькими записями.

Примеры файлов

Пример odbc.ini

В этом примере driver_name должно совпадать с именем из odbcinst.ini.

[MyDSN]
Driver = driver_name
Server = your_server_name
Database = your_database_name
Trusted_Connection = yes

Пример Sybase odbcinst.ini

[ODBC Drivers]
Devart ODBC Driver for ASE=installed
[Devart ODBC Driver for ASE]
Driver=/usr/share/devart/odbcase/libdevartodbcase.3.5.0.so

Пример Sybase odbc.ini

[ODBC Data Sources]
DEVART_ASE=Devart ODBC Driver for ASE
[DEVART_ASE]
Driver=Devart ODBC Driver for ASE
Data Source=database_server_ip
Port=5000
Database=master
QuotedIdentifier=1

Полный список поддерживаемых параметров см. в документации поставщика драйвера.

Примеры запросов

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

Рассмотрим пример.

CREATE DATABASE SCOPED CREDENTIAL dsc_Sybase
    WITH IDENTITY = '<user>', SECRET = '<password>';
GO

CREATE EXTERNAL DATA SOURCE EDS_Sybase
WITH (
    LOCATION = 'odbc://<servername>:<port>',
    PUSHDOWN = ON, --- optional
    CONNECTION_OPTIONS = 'DSN=DEVART_ASE;DRIVER=Devart ODBC Driver for ASE',
    CREDENTIAL = dsc_Sybase
);
GO

CREATE EXTERNAL TABLE T_EXT
(
    C1 INT
)
WITH (
    DATA_SOURCE = [EDS_SYBASE],
    LOCATION = N'TEST.DBO.T'
);
GO

SELECT * FROM T_EXT;
GO

Ограничения

PolyBase для SQL Server в Linux использует внешнюю службу для безопасной изоляции и загрузки драйверов. Эта служба запускается по умолчанию при установке пакета PolyBase.mssql-server-polybase

Служба использует номер 25100порта по умолчанию. Если этот порт используется, возникает следующая ошибка:

Failed to bind port "127.0.0.1:25100"

Это сообщение можно найти в файле журнала PolyBase, расположенном по адресу: /var/opt/mssql-polybase-ees/log/ В SQL Server 2025 (17.x) и более поздних версиях расположение перемещено в /var/opt/mssql/log/polybase-ees-log.