適用対象: SQL Server 2025 (17.x) プレビュー
この記事では、Linux 上の SQL Server で PolyBase サービスを使用する方法について説明します。
SQL Server 2025 (17.x) プレビュー以降、Linux でのデプロイでは PolyBase 用の ODBC データ ソースを使用できます。 これにより、独自のドライバー (BYOD) を使用できます。 Linux では、この機能は Windows での動作と同様に機能します。 詳細については、「 ODBC ジェネリック型を使用して外部データにアクセスするように PolyBase を構成する」を参照してください。
注意事項
Bring Your Own Driver (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
インストールでは、次のファイルが作成されます。
ファイル | 説明 |
---|---|
/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 for SQL Server on 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
に移動しました。
修正するには、使用可能なポートを使用するようにサービスをカスタマイズし、再起動します。
/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) Preview 以降のバージョンでは、代わりに次のコマンドを使用します。
sudo /opt/mssql/bin/mssql-conf set polybaseEES eesport <newportnumber>
PolyBase サービスを再起動するように求められます。
systemctl restart mssql-ees.service