적용 대상: Windows의 SQL Server 2016(13.x) 이상 버전
PolyBase를 사용하는 독립 실행형 SQL Server 인스턴스는 Hadoop 또는 Azure Blob Storage에서 대규모 데이터 집합을 처리하는 경우 성능상의 병목 지점이 될 수 있습니다. PolyBase 그룹 기능을 사용하면 SQL Server 인스턴스 클러스터를 만들어 Hadoop 또는 Azure Blob Storage와 같은 외부 데이터 원본에서 쿼리 성능을 향상하기 위해 스케일 아웃 방식으로 대규모 데이터를 처리할 수 있습니다. 이제 워크로드의 성능 요구에 맞게 SQL Server 컴퓨팅을 확장할 수 있습니다. SQL Server 인스턴스 그룹인 PolyBase 스케일 아웃 그룹을 사용하면 병렬 처리 아키텍처에서 큰 외부 데이터 집합을 처리할 수 있습니다. 그룹에 SQL Server 인스턴스를 더 추가하면 데이터 로드 및 쿼리 성능이 선형적으로 증가할 수 있습니다.
중요합니다
Microsoft SQL Server PolyBase 스케일 아웃 그룹이 사용 중지되었습니다. 스케일 아웃 그룹 기능은 SQL Server 2022(16.x) 이상 버전에서 제품에서 제거되었습니다. PolyBase 데이터 가상화는 SQL Server 스케일 업 기능으로 계속 완벽하게 지원됩니다. 자세한 내용은 Microsoft SQL Server 플랫폼의 빅 데이터 옵션을 참조하세요.
SQL Server의 PolyBase를 사용한 데이터 가상화 및 SQL Server의PolyBase를 사용한 데이터 가상화를 참조하세요.
헤드 노드
헤드 노드에는 PolyBase 쿼리가 제출되는 SQL Server 인스턴스가 포함됩니다. 각 PolyBase 그룹에는 헤드 노드가 하나만 있을 수 있습니다. 헤드 노드는 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개의 판독기를 회전하여 외부 데이터를 읽을 수 있습니다. 또한 각 판독기는 외부 테이블에서 읽을 하나의 파티션을 할당받습니다.
예를 들어 12개의 월별 파티션과 3노드 PolyBase 스케일 아웃 그룹이 있는 외부 SQL Server 테이블이 있다고 가정해 보겠습니다. 각 노드는 4개의 PolyBase 판독기를 사용하여 각 12개의 파티션을 처리합니다. 이 시나리오는 다음 이미지에 설명되어 있습니다.
참고 항목
이 기능은 Hadoop에 대한 스케일 아웃 읽기와 다르게 동작합니다.
분산 쿼리 처리
PolyBase 쿼리는 헤드 노드의 SQL Server에 제출됩니다. 외부 테이블을 참조하는 쿼리 부분은 PolyBase 엔진으로 분배됩니다.
PolyBase 엔진은 PolyBase 쿼리의 핵심 구성 요소입니다. 외부 데이터에 대한 쿼리를 구문 분석하고, 쿼리 계획을 생성하며, 실행을 위해 컴퓨팅 노드의 데이터 이동 서비스에 작업을 배포합니다. 작업이 완료되면 컴퓨팅 노드에서 결과를 수신하고 처리하고 클라이언트로 반환하기 위해 SQL Server에 제출합니다.
PolyBase 데이터 이동 서비스는 PolyBase 엔진에서 지침을 수신하고 HDFS와 SQL Server 간, 그리고 헤드와 컴퓨팅 노드의 SQL Server 인스턴스 간에 데이터를 전송합니다.