PolyBase スケールアウト グループ

適用対象: SQL Server (Windows のみ) Not supported. Azure SQL DatabaseNot supported. Azure Synapse Analytics Not supported. Analytics Platform System (PDW)

PolyBase を使用するスタンドアロンの SQL Server インスタンスは、Hadoop または Azure BLOB ストレージの大量のデータ セットを処理する場合、パフォーマンス ボトルネックになる可能性があります。 PolyBase グループ機能では、Hadoop や Azure BLOB ストレージなどの外部データ ソースからの大量のデータ セットを、クエリ パフォーマンスの向上のためにスケールアウト形式で処理するために、SQL Server インスタンス クラスターを作成することができます。 これで、ワークロードで要求されるパフォーマンスを満たすように、お使いの SQL Server のコンピューティングをスケーリングできます。 SQL Server インスタンスのグループの PolyBase スケールアウト グループでは、並列処理アーキテクチャで大規模な外部データ セットを処理できます。 このグループに、SQL Server インスタンスを追加するほど、データの読み込みおよびクエリのパフォーマンスは線形に増加します。

重要

Microsoft SQL Server PolyBase スケールアウト グループは廃止されます。 SQL Server 2022 (16.x) では、スケールアウト グループ機能が製品から削除されます。 PolyBase データ仮想化は、SQL Server のスケールアップ機能として引き続き完全にサポートされます。 詳細については、「Microsoft SQL Server プラットフォームのビッグ データ オプション」を参照してください。

PolyBase の概要 」および「 PolyBase ガイド」を参照してください。

Diagram showing PolyBase scale-out groups.

ヘッド ノード

ヘッド ノードには、PolyBase クエリの送信先の SQL Server インスタンスが含まれています。 各 PolyBase グループは、ヘッド ノードを 1 つだけ保持できます。 ヘッド ノードは、SQL Server インスタンス上の SQL Server データベース エンジン、PolyBase エンジン、および PolyBase データ移動サービスの論理グループです。 SQL Server 2017 および SQL Server 2016 では、ヘッド ノードは Enterprise Edition である必要があります。 SQL Server 2019 以降では、PolyBase ヘッド ノードは Enterprise または Standard Edition のいずれかを使用できます。

コンピューティング ノード

コンピューティング ノードには、外部データに対するスケールアウト クエリ処理を支援する SQL Server インスタンスが含まれています。 コンピューティング ノードは、SQL Server インスタンス上の SQL Server と PolyBase データ移動サービスの論理グループです。 PolyBase グループは、複数のコンピューティング ノードを保持できます。 ヘッド ノードとコンピューティング ノードはすべて、同じバージョンの SQL Server を実行する必要があります。 SQL Server 2016 の最初のリリースでは、計算ノードを Enterprise または Standard Edition のいずれかにすることができました。 SQL Server 2016 SP1 以降では、SQL Server のすべてのエディションを計算ノードにすることができます。

スケールアウト読み取り

外部の SQL Server に対してクエリを実行する場合、Oracle インスタンスまたは Teradata インスタンス、パーティション分割されたテーブルには、読み取りスケールアウトのメリットがあります。 PolyBase スケールアウト グループの各ノードは、外部データを読み取るのに、最大 8 つのリーダーにスピンできます。 そして各リーダーには、読み取る外部テーブルのパーティションが 1 つ割り当てられます。

たとえば、12 の月別パーティションを持つ外部 SQL Server テーブルと 3 ノードの PolyBase スケールアウト グループがある場合、各ノードは 4 つの PolyBase リーダーを使って 12 のパーティションのそれぞれを処理します。 それを示したのが次の画像です。

Note

これは Hadoop を介したスケールアウト読み取りとは異なります。

PolyBase scale-out reads

分散クエリ処理

PolyBase クエリは、ヘッド ノード上の SQL Server に送信されます。 外部テーブルを参照するクエリの一部は、PolyBase エンジンに渡されます。

PolyBase エンジンは、PolyBase クエリの背後にある重要なコンポーネントです。 外部データに対するクエリを解析し、クエリ プランを生成して、作業を実行するためにコンピューティング ノード上のデータ移動サービスに配布します。 作業が完了すると、コンピューティング ノードから結果を受信し、この結果を処理してクライアントに返すために SQL Server に送信します。

PolyBase データ移動サービスは、PolyBase エンジンから指示を受信し、HDFS と SQL Server の間、およびヘッド ノードとコンピューティング ノード上の SQL Server インスタンス間でデータを転送します。

次のステップ

PolyBase スケールアウト グループを構成するには、次のガイドを参照してください。

Windows で PolyBase スケールアウト グループを改善する

参照

sys-dm-exec-compute-nodes
sys-dm-exec-compute-node-status
sys.dm_exec_compute_node_errors