适用于: SQL Server 2025 (17.x) 预览版
本文介绍如何将 PolyBase 服务与 Linux 上的 SQL Server 配合使用。
从 SQL Server 2025 (17.x) 预览版开始,Linux 上的部署可以使用 PolyBase 的 ODBC 数据源。 这使你可以自带驱动程序(BYOD)。 在 Linux 上,此功能的工作方式与它在 Windows 上的工作原理类似。 有关详细信息,请参阅 配置 PolyBase 以使用 ODBC 泛型类型访问外部数据。
谨慎
自带驾驶员(BYOD)模型涉及客户和驾驶员提供商需要承担的风险。 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
安装将创建以下文件:
文件 | DESCRIPTION |
---|---|
/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 上的 PolyBase for SQL Server 使用外部服务安全地隔离和加载驱动程序。 安装 PolyBase 包 (mssql-server-polybase
) 时,默认情况下会启动此服务。
该服务使用默认端口号 25100
。 如果此端口正在使用,则失败并显示以下消息:
Failed to bind port "127.0.0.1:25100"
可以在 PolyBase 的日志文件中找到此消息,网址为: /var/opt/mssql-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>