PolyBase 확장 그룹PolyBase scale-out groups

이 항목은 다음에 적용됩니다. 예SQL Server(2016부터 시작)아니요Azure SQL 데이터베이스아니요Azure SQL 데이터 웨어하우스아니요병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)noAzure SQL DatabasenoAzure 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 그룹 기능을 사용하면 SQL Server 인스턴스 클러스터를 만들어 Hadoop 또는 Azure Blob 저장소와 같은 외부 데이터 원본에서 쿼리 성능을 향상하기 위해 스케일 아웃 방식으로 대규모 데이터를 처리할 수 있습니다.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.

PolyBase 시작PolyBase 가이드를 참조하세요.See Get started with PolyBase and PolyBase Guide.

PolyBase 확장 그룹PolyBase scale-out groups

개요Overview

헤드 노드Head node

헤드 노드는 PolyBase 쿼리가 제출되는 SQL Server 인스턴스를 포함합니다.The head node contains the SQL Server instance to which PolyBase queries are submitted. 각 PolyBase 그룹은 헤드 노드를 하나만 가질 수 있습니다.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.

분산형 쿼리 처리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 엔진에서 지침을 수신하고 헤드 및 계산 노드의 SQL Server 인스터스 사이 및 HDFS 와 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.

PolyBase 그룹을 구성하려면To configure a PolyBase group

필수 구성 요소Prerequisites

  • 동일 도메인에 위치하는 N개의 시스템N machines in the same domain

  • PolyBase 서비스를 실행하기 위한 도메인 사용자 계정A domain user account to run PolyBase services

단계Steps

  1. N개의 시스템에 PolyBase 사용하는 SQL Server를 설치합니다.Install SQL Server with PolyBase on N machines.

  2. SQL Server 인스턴스를 헤드 노드로 선택합니다.Select one SQL Server instance as the head node. 헤드 노드는 SQL Server Enterprise를 실행하는 인스턴스에만 지정될 수 있습니다.A head node can only be designated on an instance running SQL Server Enterprise.

  3. 나머지 SQL Server 인스턴스를 sp_polybase_join_group을 사용하여 계산 노드로 추가합니다.Add remaining SQL Server instances as compute nodes using sp_polybase_join_group.

  4. sys.dm_exec_compute_nodes(Transact-SQL)를 사용하여 그룹에서 노드를 모니터링합니다.Monitor nodes in the group using sys.dm_exec_compute_nodes (Transact-SQL).

  5. (선택 사항)Optional. sp_polybase_leave_group(Transact-SQL)을 사용하여 계산 노드를 제거합니다.Remove a compute node from using sp_polybase_leave_group (Transact-SQL).

예제 연습Example walk-through

이 예제는 다음을 사용하여 PolyBase 그룹을 구성하는 단계를 보여줍니다.This walks through the steps of configuring a PolyBase Group using:

  1. PQTH4A 도메인의 시스템 두 대. 시스템 이름:Two machines in the domain PQTH4A The machine names are:

    • PQTH4A-CMP01PQTH4A-CMP01

    • PQTH4A-CMP02PQTH4A-CMP02

  2. 도메인 계정: PQTH4A\PolybaseUserDomain account: PQTH4A\PolybaseUser

1단계: 모든 시스템에 PolyBase 사용하는 SQL Server 설치Step 1: Install SQL Server with PolyBase on all machines

  1. setup.exe를 실행합니다.Run setup.exe.

  2. 기능 선택 페이지에서 외부 데이터용 PolyBase 쿼리 서비스를 선택합니다.On the the Feature Selection page, select PolyBase Query Service for External Data.

  3. 서버 구성 페이지에서 SQL Server PolyBase에 대한 도메인 계정 PQTH4A\PolybaseUser 및 SQL Server PolyBase 데이터 이동 서비스를 사용합니다.On the the Server Configuration page, use the domain account PQTH4A\PolybaseUser for SQL Server PolyBase Engine and SQL Server PolyBase Data Movement Service.

  4. PolyBase 구성 페이지에서 PolyBase 확장 그룹의 일부로 SQL Server 인스턴스 사용옵션을 선택합니다.On the PolyBase Configuration page, select the option Use the SQL Server instance as part of a PolyBase scale-out group. 이 옵션은 PolyBase 서비스로 들어오는 연결을 허용하도록 방화벽을 엽니다.This opens the firewall to allow incoming connections to the PolyBase services.

  5. 설치가 완료된 후 services.msc를 실행합니다.After setup is complete, run services.msc. SQL Server, PolyBase 엔진 및 PolyBase 데이터 이동 서비스가 실행 중인지 확인합니다.Verify that SQL Server, PolyBase Engine and PolyBase Data Movement Service are running.

    PolyBase 서비스PolyBase services

2단계: 헤드 노드로 하나의 SQL Server 선택Step 2: Select one SQL Server as head node

  • 설치가 완료 된 후 두 시스템 모두가 PolyBase 그룹 헤드 노드로 작동할 수 있습니다.After setup is complete, both machines can function as PolyBase Group head nodes. 이 예제에서는 PQTH4A-CMP01의 “MSSQLSERVER”를 헤드 노드로 선택합니다.In this example, we will choose “MSSQLSERVER” on PQTH4A-CMP01 as the head node.

3단계: 다른 SQL Server 인스턴스를 계산 노드로 추가Step 3: Add other SQL Server instances as compute nodes

  1. PQTH4A-CMP02에서 SQL Server에 연결합니다.Connect to SQL Server on PQTH4A-CMP02.

  2. 저장 프로시저 sp_polybase_join_group을 실행합니다.Run the stored procedure sp_polybase_join_group.

    -- Enter head node details:   
    -- head node machine name, head node dms control channel port, head node sql server name  
    EXEC sp_polybase_join_group 'PQTH4A-CMP01', 16450, 'MSSQLSERVER';  
    
  3. 계산 노드(PQTH4A-CMP02)에서 services.msc를 실행합니다.Run services.msc on the compute node (PQTH4A-CMP02).

  4. PolyBase 엔진을 종료하고 PolyBase 데이터 이동 서비스를 다시 시작합니다.Shutdown the PolyBase engine and restart the PolyBase data movement service.

선택 사항: 계산 노드 제거Optional: Remove a compute node

  1. 계산 노드 SQL Server(PQTH4A CMP02)에 연결합니다.Connect to the compute node SQL Server (PQTH4A-CMP02).

  2. 저장 프로시저 sp_polybase_leave_group을 실행합니다.Run the stored procedure sp_polybase_leave_group.

    EXEC sp_polybase_leave_group;  
    
  3. 제거 중인 계산 노드(PQTH4A-CMP02)에서 services.msc를 실행합니다.Run services.msc on the compute node that is being removed (PQTH4A-CMP02).

  4. PolyBase 엔진을 시작합니다.Start PolyBase Engine. PolyBase 데이터 이동 서비스를 다시 시작합니다.Restart PolyBase data movement service.

  5. PQTH4A-CMP01에서 DMV sys.dm_exec_compute_nodes를 실행하여 노드가 제거되었는지 확인합니다.Verify that the node has been removed by running the DMV sys.dm_exec_compute_nodes on PQTH4A-CMP01. 이제, PQTH4A-CMP02가 독립 실행형 헤드 노드로 작동합니다.Now, PQTH4A-CMP02 will function as a standalone head node

다음 단계Next steps

문제를 해결하려면 PolyBase troubleshooting with dynamic management views을(를) 참조하십시오.For troubleshooting, see PolyBase troubleshooting with dynamic management views.

참고 항목See Also

PolyBase 시작 Get started with PolyBase
PolyBase 가이드 PolyBase Guide
PolyBase Connectivity Configuration(Transact-SQL) PolyBase Connectivity Configuration (Transact-SQL)