PolyBase の機能と制限事項

適用対象: SQL Server 2016 以降 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 からデータをインポートする はい はい* はい はい
Azure Blob Storage にデータをエクスポートする はい いいえ はい はい
Azure Data Lake Store からデータをインポートする いいえ いいえ はい いいえ
Azure Data Lake Store にデータをエクスポートする いいえ いいえ はい いいえ
Microsoft BI ツールから PolyBase クエリを実行する はい いいえ はい はい

* SQL Server 2017 (14.x) で導入されています。「Azure BLOB ストレージのデータに一括アクセスする例」をご覧ください。

既知の制限事項

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 2019 のリリース ノート」を参照してください。

  • PolyBase サービスが正常に機能するには、共有メモリ プロトコルを有効にする必要があります。

  • 既定の SQL Server インスタンスが、1433 以外の TCP ポートをリッスンするように構成されている場合、それを PolyBase スケールアウト グループのヘッド ノードとして使用できません。 sp_polybase_join_group の実行時に、"MSSQLSERVER" をインスタンス名として渡すと、SQL Server では、ポート 1433 がリスナー ポートであると想定するため、開始時にデータ移動サービスがヘッド ノードに接続できなくなります。

  • PolyBase での使用では、Oracle シノニムはサポートされていません。

  • UTF-8 照合順序は、Hadoop 外部データ ソースではサポートされていません。

  • SQL Server 2022 (16.x) 以降、Hadoop はサポートされなくなりました。

次のステップ

PolyBase の詳細については、「PolyBase によるデータ仮想化の概要」を参照してください。