적용 대상: 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 드라이버를 보여 줍니다.
Microsoft 리포지토리를 추가합니다.
Microsoft GPG 키 가져오기
curl https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
시스템에 Microsoft 리포지토리 추가
curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
패키지 목록 업데이트
sudo apt update
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
제한점
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
.
이 문제를 해결하려면 사용 가능한 포트를 사용하도록 서비스를 사용자 지정하고 다시 시작합니다.
/var/opt/mssql/binn/PolyBase/DMs.exe.config
파일을 찾아 편집하십시오. 키 항목을EESPort
찾아 새 포트를 할당합니다./var/opt/mssql/binn/PolyBase/DWEngineService.exe.config
파일을 찾아 편집하십시오. 키 항목을EESPort
찾아 새 포트를 할당합니다.다음 명령을 실행하여 새 포트에 알리는 서비스를 다시 시작합니다.
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>
PolyBase 서비스를 다시 시작하라는 메시지가 표시됩니다.
systemctl restart mssql-ees.service