다음을 통해 공유


Linux의 SQL Server에서 PolyBase를 사용하여 ODBC 데이터 원본에 연결

적용 대상: SQL Server 2025(17.x) 미리 보기

이 문서에서는 Sql Server on Linux에서 PolyBase 서비스를 사용하는 방법을 설명합니다.

SQL Server 2025(17.x) 미리 보기부터 Linux의 배포는 PolyBase용 ODBC 데이터 원본을 사용할 수 있습니다. 이렇게 하면 BYOD(사용자 고유의 드라이버)를 가져올 수 있습니다. Linux에서 이 기능은 Windows에서 작동하는 방식과 유사하게 작동합니다. 자세한 내용은 ODBC 제네릭 형식을 사용하여 외부 데이터에 액세스하도록 PolyBase 구성을 참조하세요.

주의

BYOD(Bring-Your-Driver) 모델에는 고객 및 드라이버 공급자의 책임인 위험이 포함됩니다. Microsoft는 타사 드라이버로 인해 발생할 수 있는 문제에 대해 책임을 지지 않습니다.

예시

Linux에 설치

다음 예제에서는 Ubuntu의 SQL ODBC 드라이버를 보여 줍니다.

  1. Microsoft 리포지토리를 추가합니다.

    1. Microsoft GPG 키 가져오기

      curl https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
      
    2. 시스템에 Microsoft 리포지토리 추가

      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_nameodbcinst.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

제한점

Linux의 SQL Server용 PolyBase는 외부 서비스를 사용하여 드라이버를 안전하게 격리하고 로드합니다. 이 서비스는 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.

이 문제를 해결하려면 사용 가능한 포트를 사용하도록 서비스를 사용자 지정하고 다시 시작합니다.

  1. /var/opt/mssql/binn/PolyBase/DMs.exe.config 파일을 찾아 편집하십시오. 키 항목을 EESPort찾아 새 포트를 할당합니다.

  2. /var/opt/mssql/binn/PolyBase/DWEngineService.exe.config 파일을 찾아 편집하십시오. 키 항목을 EESPort찾아 새 포트를 할당합니다.

  3. 다음 명령을 실행하여 새 포트에 알리는 서비스를 다시 시작합니다.

    sudo /opt/mssql/lib/dotnet6/dotnet/opt/mssql/lib/ExternalExecutionService.dll -port <newportnumber>
    

    SQL Server 2025(17.x) 미리 보기 이상 버전에서는 다음 명령을 대신 사용합니다.

    sudo /opt/mssql/bin/mssql-conf set polybaseEES eesport <newportnumber>
    
  4. PolyBase 서비스를 다시 시작하라는 메시지가 표시됩니다.

    systemctl restart mssql-ees.service