PolyBase スケールアウト グループPolyBase scale-out groups

適用対象: ○SQL Server (Windows のみ)×Azure SQL Database ×Azure SQL Data Warehouse ×Parallel Data Warehouse APPLIES TO: yesSQL Server (Windows only) noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

PolyBase を使用するスタンドアロンの SQL Server インスタンスは、Hadoop または Azure BLOB ストレージの大量のデータ セットを処理する場合、パフォーマンス ボトルネックになる可能性があります。A standalone SQL Server instance with PolyBase can become a performance bottleneck when dealing with massive data sets in Hadoop or Azure Blob Storage. PolyBase グループ機能では、Hadoop や Azure BLOB ストレージなどの外部データ ソースからの大量のデータ セットを、クエリ パフォーマンスの向上のためにスケールアウト形式で処理するために、SQL Server インスタンス クラスターを作成することができます。The PolyBase Group feature allows you to create a cluster of SQL Server instances to process large data sets from external data sources, such as Hadoop or Azure Blob Storage, in a scale-out fashion for better query performance. これで、ワークロードで要求されるパフォーマンスを満たすように、お使いの SQL Server のコンピューティングをスケーリングできます。You can now scale your SQL Server compute to meet the performance demands of your workload. SQL Server インスタンスのグループの PolyBase スケールアウト グループでは、並列処理アーキテクチャで大規模な外部データ セットを処理できます。PolyBase Scale-out Groups, a group of SQL Server instances, enable you to process large external data sets in a parallel processing architecture. このグループに、SQL Server インスタンスを追加するほど、データの読み込みおよびクエリのパフォーマンスは線形に増加します。Data loading and query performance can increase linearly as you add more SQL Server instances to the group.

PolyBase の概要 」および「 PolyBase ガイド」を参照してください。See Get started with PolyBase and PolyBase Guide.

PolyBase スケールアウト グループPolyBase scale-out groups

ヘッド ノードHead node

ヘッド ノードには、PolyBase クエリの送信先の SQL Server インスタンスが含まれています。The head node contains the SQL Server instance to which PolyBase queries are submitted. 各 PolyBase グループは、ヘッド ノードを 1 つだけ保持できます。Each PolyBase group can have only one head node. ヘッド ノードは、SQL Server インスタンス上の SQL データベース エンジン、PolyBase エンジン、および PolyBase データ移動サービスの論理グループです。A head node is a logical group of SQL Database Engine, PolyBase Engine and PolyBase Data Movement Service on the SQL Server instance.

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

コンピューティング ノードには、外部データに対するスケールアウト クエリ処理を支援する SQL Server インスタンスが含まれています。A compute node contains the SQL Server instance that assists with scale-out query processing on external data. コンピューティング ノードは、SQL Server インスタンス上の SQL Server と PolyBase データ移動サービスの論理グループです。A compute node is a logical group of SQL Server and the PolyBase data movement service on the SQL Server instance. PolyBase グループは、複数のコンピューティング ノードを保持できます。A PolyBase group can have multiple compute nodes. ヘッド ノードとコンピューティング ノードはすべて、同じバージョンの SQL Server を実行する必要があります。The head node and the compute nodes must all run the same version of SQL Server.

スケールアウト読み取りScale-out Reads

外部の SQL Server に対してクエリを実行する場合、Oracle インスタンスまたは Teradata インスタンス、パーティション分割されたテーブルには、読み取りスケールアウトのメリットがあります。When querying external SQL Server, Oracle or Teradata instances, partitioned tables will benefit from scale-out reads. PolyBase スケールアウト グループの各ノードは、外部データを読み取るのに、最大 8 つのリーダーにスピンできます。Each node in a PolyBase scale-out group can spin up to 8 readers to read external data. そして各リーダーには、読み取る外部テーブルのパーティションが 1 つ割り当てられます。And each reader is assigned one partition to read in the external table.

たとえば、SQL Server の外部テーブルに月ごとに 12 のパーティションがあり、3 つのノードの PolyBase スケールアウト グループがあるとします。各ノードは、12 のそれぞれのパーティションの処理に 4 つの PolyBase リーダーを使用します。For e.g., let's say you have an external SQL Server table with 12 monthly partitions and a 3-node PolyBase scale-out group, each node will use 4 PolyBase readers to process each of the 12 partitions. これを次の図で示します。This is illustrated in the image below.

注意

これは Hadoop を介したスケールアウト読み取りとは異なります。that this is different from scale-out reads over Hadoop.

PolyBase スケールアウト グループPolyBase scale-out groups

分散クエリ処理Distributed query processing

PolyBase クエリは、ヘッド ノード上の SQL Server に送信されます。PolyBase queries are submitted to the SQL Server on the head node. 外部テーブルを参照するクエリの一部は、PolyBase エンジンに渡されます。The part of the query that refers to external tables is handed-off to the PolyBase engine.

PolyBase エンジンは、PolyBase クエリの背後にある重要なコンポーネントです。The PolyBase engine is the key component behind PolyBase queries. 外部データに対するクエリを解析し、クエリ プランを生成して、作業を実行するためにコンピューティング ノード上のデータ移動サービスに配布します。It parses the query on external data, generates the query plan and distributes the work to the data movement service on the compute nodes for execution. 作業が完了すると、コンピューティング ノードから結果を受信し、この結果を処理してクライアントに返すために SQL Server に送信します。After completion of the work, it receives the results from the compute nodes and submits them to SQL Server for processing and returning to the client.

PolyBase データ移動サービスは、PolyBase エンジンから指示を受信し、HDFS と SQL Server の間、およびヘッド ノードとコンピューティング ノード上の SQL Server インスタンス間でデータを転送します。The PolyBase data movement service receives instructions from the PolyBase engine and transfers data between HDFS and SQL Server, and between SQL Server instances on the head and compute nodes.

エディションの可用性Editions availability

SQL Server をセットアップしたら、インスタンスをヘッド ノードとコンピューティング ノードのどちらかとして指定できます。After setup of SQL Server, the instance can be designated as either a head node or a compute node. 指定できるノードは、実行されている SQL Server PolyBase のバージョンによって異なります。The choice depends on which version of SQL Server PolyBase is running on. Enterprise Edition インストールでは、インスタンスをヘッド ノードとコンピューティング ノードのどちらかとして指定できます。On an Enterprise edition installation, the instance can be designated either as head node or a compute node. Standard Edition では、インスタンスをコンピューティング ノードとしてのみ指定できます。On a Standard edition, the instance can only be designated as a compute node.

次の手順Next steps

PolyBase スケールアウト グループを構成するには、次のガイドを参照してください。To configure a PolyBase scale-out group, see the following guide:

Windows で PolyBase スケールアウト グループを改善するImprove PolyBase scale-out groups on Windows