PolyBase の機能と制限事項

適用対象: SQL Server 2016 (13.x) 以降のバージョン Azure SQL Database Azure Synapse Analytics Analytics Platform System (PDW)

この記事は、SQL Server の製品やサービスで利用可能な PolyBase 機能の概要です。

製品リリースの機能の概要

PolyBase の主な機能と、これらの機能を利用できる製品を一覧表示した表を次に示します。

機能 SQL Server (2016 以降) Azure SQL Database 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 プロトコルの構成設定 [すべて受信待ち][いいえ] に設定されている場合は、TCP/IP プロパティの [IPAll][TCP 動的ポート] または [TCP ポート] のどちらかに正しいリスナー ポートのエントリが残っている必要があります。 これが必要なのは、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 がサポートされなくなりました。

  • PolyBase スケールアウト グループは、Always On 可用性グループではサポートされていません。