適用対象: SQL Server 2016 (13.x) 以降のバージョン
Azure SQL Database
Azure Synapse Analytics
Analytics Platform System (PDW)
この記事は、SQL Server の製品やサービスで利用可能な PolyBase 機能の概要です。
製品リリースの機能の概要
PolyBase の主な機能と、これらの機能を利用できる製品を一覧表示した表を次に示します。
| 機能 | SQL Server (2016 以降) | Azure SQL データベース | Azure Synapse Analytics | Parallel Data Warehouse |
|---|---|---|---|---|
| Transact-SQL を使用して Hadoop データに対するクエリを実行する | はい | いいえ | いいえ | はい |
| Hadoop からデータをインポートする | はい | いいえ | いいえ | はい |
| データを Hadoop にエクスポートする | はい | いいえ | いいえ | はい |
| Azure HDInsight のクエリ、インポート、エクスポート | いいえ | いいえ | いいえ | いいえ |
| クエリの計算を Hadoop にプッシュダウンする | はい | いいえ | いいえ | はい |
| Azure Blob Storage からデータをインポートする | はい | はい 1 | はい | はい |
| Azure Blob Storage にデータをエクスポートする | はい | いいえ | はい | はい |
| Azure Data Lake Store からデータをインポートする | いいえ | いいえ | はい | いいえ |
| Azure Data Lake Store にデータをエクスポートする | いいえ | いいえ | はい | いいえ |
| Microsoft BI ツールから PolyBase クエリを実行する | はい | いいえ | はい | はい |
1 SQL Server 2017 (14.x) で導入されました。「Azure Blob Storage のデータに一括アクセスする例」を参照してください。
既知の制限事項
PolyBase には次の制限事項があります。
SQL Server 2019 (15.x) より前は、最大行サイズ (可変長列の最大長を含む) は、SQL Server で 32 KB 以下、Azure Synapse Analytics で 1 MB 以下にする必要があります。 SQL Server 2019 (15.x) 以降のバージョンでは、この制限は解除されています。 Hadoop データ ソースの場合、制限は 1 MB のままですが、他のデータ ソースについては、SQL Server の上限によって制限されるだけです。
SQL Server または Azure Synapse Analytics からデータが ORC ファイル形式にエクスポートされるときに、テキストの量が多い列が制限される可能性があります。 Java のメモリ不足エラー メッセージにより、わずか 50 列に制限される場合があります。 この問題を回避するには、列のサブセットだけをエクスポートします。
Knox が有効になっている場合、PolyBase を Hadoop インスタンスに接続することはできません。
transactional = true の Hive テーブルを使用している場合、PolyBase は Hive テーブルのディレクトリにあるデータにアクセスできません。
PolyBase サービスが正常に機能するには、SQL Server サービスで TCP/IP ネットワーク プロトコルを有効にする必要があります。 さらに、TCP/IP プロトコル構成設定 Listen All が No に設定されている場合は、次の TCP/IP 構成が必要です。
- TCP 動的ポートまたは TCP ポートIPAll の適切なリスナー ポートのエントリ。 これが必要なのは、PolyBase サービスによる SQL Server エンジンのリスナー ポートの解決方法によるものです。
- TCP/IP プロパティ> IP アドレスで目的の IP アドレスを有効にします。それ以外の場合、SQL Server エンジンは TCP/IP 接続を受け入れず、PolyBase サービスは引き続き SQL Server エンジンに接続できません。
IPv6 がカーネルで無効になっている場合、Linux の SQL Server では PolyBase が機能しません。 詳細については、「Linux 上の SQL Server: 既知の問題」を参照してください。
PolyBase サービスが正常に機能するには、共有メモリ プロトコルを有効にする必要があります。
既定の SQL Server インスタンスが、1433 以外の TCP ポートをリッスンするように構成されている場合、それを PolyBase スケールアウト グループのヘッド ノードとして使用できません。
sp_polybase_join_groupの実行時に、"MSSQLSERVER" をインスタンス名として渡すと、SQL Server では、ポート 1433 がリスナー ポートであると想定するため、開始時にデータ移動サービスがヘッド ノードに接続することはできません。PolyBase での使用では、Oracle シノニムはサポートされていません。
Hadoop 外部データ ソースでは、UTF-8 照合順序はサポートされていません。
SQL Server 2022 (16.x) 以降のバージョンでは、Hadoop がサポートされなくなりました。
サーバー名の長さは、15 文字の NetBIOS 名の長さの制限によって制限されます。 作成後にサーバー名を 16 文字以上に変更した場合、PolyBase Data Movement サービスは開始されません。
PolyBase スケールアウト グループは、Always On 可用性グループではサポートされていません。
PolyBase を使用してインストールされるデータベース (DWConfiguration、DWDiagnostics、DWQueue) は、PolyBase が機能し、累積的な更新プログラムのインストールが成功するためには、読み取り/書き込みモードである必要があります。 そのため、これらのデータベースを可用性グループに含めるのはサポートされていません。