적용 대상: SQL Server 2016(13.x) 이상 버전
Azure SQL Database
Azure Synapse Analytics
분석 플랫폼 시스템(PDW)
이 문서는 SQL Server 제품 및 서비스에 사용할 수 있는 PolyBase 기능에 대한 요약입니다.
제품 릴리스에 대한 기능 요약
이 표에는 PolyBase의 주요 기능과 해당 기능을 사용할 수 있는 제품이 나열되어 있습니다.
| 기능 | SQL Server (2016부터) | Azure SQL 데이터베이스 | Azure Synapse Analytics | 병렬 데이터 웨어하우스 |
|---|---|---|---|---|
| Transact-SQL을 사용한 Hadoop 데이터 쿼리 | 예 | 아니요 | 아니요 | 예 |
| Hadoop에서 데이터 가져오기 | 예 | 아니요 | 아니요 | 예 |
| Hadoop으로 데이터 내보내기 | 예 | 아니요 | 아니요 | 예 |
| Azure HDInsight 쿼리, Azure HDInsight에서 가져오기, Azure HDInsight로 내보내기 | 아니요 | 아니요 | 아니요 | 아니요 |
| 쿼리 계산을 Hadoop으로 푸시다운하기 | 예 | 아니요 | 아니요 | 예 |
| Azure Blob Storage에서 데이터 가져오기 | 예 | 예 1 | 예 | 예 |
| Azure Blob Storage로 데이터 내보내기 | 예 | 아니요 | 예 | 예 |
| Azure Data Lake Store에서 데이터를 가져오기 | 아니요 | 아니요 | 예 | 아니요 |
| 데이터를 Azure Data Lake Storage로 내보내기 | 아니요 | 아니요 | 예 | 아니요 |
| Microsoft BI 도구에서 PolyBase 쿼리 실행 | 예 | 아니요 | 예 | 예 |
1 SQL Server 2017 (14.x)에 소개된 Azure Blob Storage의 데이터에 대량 액세스 예제를 참조하세요.
알려진 제한 사항
PolyBase에는 다음과 같은 제한 사항이 적용됩니다.
SQL Server 2019(15.x) 이전에는 가변 길이 열의 전체 길이를 포함하는 행의 최대 가능 크기는 SQL Server에서 32KB를 초과하거나, Azure Synapse Analytics에서 1MB를 초과할 수 없습니다. SQL Server 2019(15.x) 이상 버전에서는 이 제한이 해제됩니다. 이 제한은 Hadoop 데이터 원본의 경우 계속 1MB이지만 다른 데이터 원본에 대해서는 최대 SQL Server 한도까지로만 제한됩니다.
SQL Server 또는 Azure Synapse Analytics에서 ORC 파일 형식으로 데이터를 내보낼 때 텍스트가 많은 열이 제한될 수 있습니다. Java 메모리 부족 오류 메시지로 인해 열 수를 50개까지 제한할 수 있습니다. 이러한 문제 사항을 해결하려면 열의 하위 집합만 내보냅니다.
Knox를 사용하는 경우 PolyBase는 Hadoop 인스턴스에 연결할 수 없습니다.
트랜잭션 = true인 Hive 테이블을 사용하는 경우 PolyBase는 Hive 테이블의 디렉터리에 있는 데이터에 액세스할 수 없습니다.
PolyBase 서비스가 제대로 작동하려면 SQL Server 서비스에 TCP/IP 네트워크 프로토콜이 사용하도록 설정되어야 합니다. 또한 TCP/IP 프로토콜 구성 설정 Listen All이 아니요로 설정된 경우 다음 TCP/IP 구성이 필요합니다.
- TCP 동적 포트 또는 TCP 포트에서 올바른 수신기 포트의 항목을 IPAll 아래에 추가하십시오. PolyBase 서비스가 SQL Server 엔진의 수신기 포트를 확인하는 방법 때문에 이 항목이 필요합니다.
- TCP/IP 속성 > IP 주소에서 원하는 IP 주소를 사용하도록 설정합니다. 그렇지 않으면 SQL Server 엔진은 TCP/IP 연결을 허용하지 않으며 PolyBase 서비스는 여전히 SQL Server 엔진에 연결하지 못합니다.
커널에서 IPv6가 사용되지 않는 경우 SQL Server on Linux의 PolyBase가 작동하지 않습니다. 자세한 정보는 Linux의 SQL Server 알려진 문제를 참조해 주세요.
PolyBase 서비스가 제대로 작동하려면 공유 메모리 프로토콜을 사용하도록 설정해야 합니다.
1433 이외의 다른 TCP 포트에서 수신 대기하도록 구성된 기본 SQL Server 인스턴스가 있는 경우 이를 PolyBase 스케일 아웃 그룹의 헤드 노드로 사용할 수 없습니다.
sp_polybase_join_group을 실행할 때 ‘MSSQLSERVER’를 인스턴스 이름으로 전달하면 SQL Server는 포트 1433을 수신기 포트로 가정하므로 데이터 이동 서비스가 시작될 때 헤드 노드에 연결할 수 없습니다.Oracle 동의어의 경우 PolyBase 사용이 지원되지 않습니다.
Hadoop 외부 데이터 원본에는 UTF-8 데이터 정렬이 지원되지 않습니다.
Hadoop은 SQL Server 2022(16.x) 이상의 버전에서 더 이상 지원되지 않습니다.
서버 이름 길이는 15자 NetBIOS 이름 길이 제한으로 바인딩됩니다. 서버 이름을 만든 후 16자 이상으로 변경하면 PolyBase 데이터 이동 서비스가 시작되지 않습니다.
PolyBase 스케일 아웃 그룹은 Always On 가용성 그룹에서 지원되지 않습니다.
PolyBase를 사용하여 설치되는 데이터베이스(DWConfiguration, DWDiagnostics, DWQueue)는 PolyBase가 작동하고 누적 업데이트 설치가 성공하려면 읽기/쓰기 모드여야 합니다. 따라서 이러한 데이터베이스를 가용성 그룹에 두는 것은 지원되지 않습니다.