PolyBase 기능 및 제한 사항

적용 대상: SQL Server 2016 (13.x) 및 이후 버전 Azure SQL DatabaseAzure Synapse Analytics

이 문서는 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 데이터 레이크 Store에서 데이터를 가져오기 아니요 아니요 예
데이터를 Azure 데이터 레이크 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가 작동하고 누적 업데이트 설치가 성공하려면 읽기/쓰기 모드여야 합니다. 따라서 이러한 데이터베이스를 가용성 그룹에 두는 것은 지원되지 않습니다.