次の方法で共有


Sql Server on Linux 上の PolyBase を使用して ODBC データ ソースに接続する

適用対象: 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 ドライバーの例を次に示します。

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

制限事項

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に移動しました。

修正するには、使用可能なポートを使用するようにサービスをカスタマイズし、再起動します。

  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) Preview 以降のバージョンでは、代わりに次のコマンドを使用します。

    sudo /opt/mssql/bin/mssql-conf set polybaseEES eesport <newportnumber>
    
  4. PolyBase サービスを再起動するように求められます。

    systemctl restart mssql-ees.service