SQL Server에서 PolyBase를 사용하여 데이터 가상화

적용 대상: SQL Server Not supported. Azure SQL Database Azure Synapse Analytics Analytics Platform System(PDW)

PolyBase는 SQL Server의 데이터 가상화 기능입니다.

PolyBase란?

PolyBase를 사용하면 별도로 클라이언트 연결 소프트웨어를 설치하지 않고도 SQL Server 인스턴스가 SQL Server, Oracle, Teradata, MongoDB, Hadoop 클러스터, Cosmos DB, S3 호환 개체 스토리지에서 직접 T-SQL을 사용하여 데이터를 쿼리할 수 있습니다. 제네릭 ODBC 커넥터를 사용하여 타사 ODBC 드라이버를 사용하여 추가 공급자에 연결할 수도 있습니다. PolyBase를 통해 T-SQL 쿼리가 외부 원본의 데이터를 SQL Server 인스턴스의 관계형 테이블에 조인할 수 있습니다.

PolyBase 기능을 사용한 데이터 가상화의 주요 사용 사례는 데이터가 원래 위치와 형식으로 유지되도록 하는 것입니다. SQL Server 인스턴스를 통해 외부 데이터를 가상화할 수 있으므로 SQL Server의 다른 테이블처럼 현재 위치에서 쿼리할 수 있습니다. 이 프로세스는 데이터 이동을 위한 ETL 프로세스의 필요성을 최소화합니다. 이 데이터 가상화 시나리오는 PolyBase 커넥터를 사용하여 가능합니다.

지원되는 SQL 제품 및 서비스

PolyBase는 Microsoft의 다음 SQL 제품에 대해 다음과 같은 기능을 제공합니다.

  • SQL Server 2016(13.x) 이상 버전(Windows)
  • SQL Server 2019(15.x) 이상 버전(Windows 및 Linux)
  • SQL Server Analytics 플랫폼 시스템(PDW)
  • Azure Synapse Analytics(전용 SQL 풀용)

참고 항목

ADLS(Azure Data Lake Storage) Gen2 및 Azure Blob Storage의 파일에 저장된 외부 데이터를 쿼리하는 범위가 지정된 Azure SQL Managed Instance에서도 데이터 가상화를 사용할 수 있습니다. 자세한 내용은 Azure SQL Managed Instance를 사용한 데이터 가상화를 참조하세요.

SQL Server 2022 PolyBase 향상된 기능

SQL Server 2022의 새로운 기능(16.x) 세부 정보
S3 호환 개체 스토리지 SQL Server 2022(16.x)는 S3 REST API를 사용하여 새 커넥터 S3 호환 개체 스토리지를 추가합니다. OPENROWSETCREATE EXTERNAL TABLE을 모두 사용하여 S3 호환 개체 스토리지의 데이터 파일을 쿼리할 수 있습니다.
PolyBase 서비스와 분리된 일부 커넥터 S3 호환 개체 스토리지 커넥터와 ADSL Gen2 및 Azure Blob Storage는 더 이상 PolyBase 서비스에 종속되지 않습니다. Oracle, Teradata, MongoDB, 일반 ODBC와의 연결을 지원하려면 PolyBase 서비스를 계속 실행해야 합니다. PolyBase 기능은 여전히 SQL Server 인스턴스에 설치되어 있어야 합니다.
Parquet 파일 형식 PolyBase는 이제 S3 호환 개체 스토리지에 저장된 Parquet 파일의 데이터를 쿼리할 수 있습니다. 자세한 내용은 PolyBase를 사용하는 S3 호환 개체 스토리지의 Parquet 파일 가상화를 참조하세요.
델타 테이블 형식 PolyBase는 이제 S3 호환 개체 스토리지, Azure Storage 계정 V2 및 Azure Data Lake Storage Gen2에 저장된 델타 테이블 형식의 데이터를 쿼리(읽기 전용)할 수 있습니다. 자세한 내용은 델타 테이블 형식 가상화를 참조 하세요.
외부 테이블을 선택으로 만들기(CETAS) 이제 PolyBase는 CETAS를 사용하여 외부 테이블을 만든 다음 Transact-SQL SELECT 문의 결과를 Azure Data Lake Storage Gen2, Azure Storage 계정 V2 및 S3 호환 개체 스토리지로 병렬로 내보낼 수 있습니다. 자세한 내용은 CREATE EXTERNAL TABLE AS SELECT (Transact-SQL)를 참조하십시오.

SQL Server 2022(16.x)의 새로운 기능에 대한 자세한 내용은 SQL Server 2022의 새로운 기능을 참조 하세요.

SQL Server 2022(16.x)의 PolyBase 기능 자습서는 SQL Server 2022에서 PolyBase 시작을 참조하세요.

PolyBase 커넥터

PolyBase 기능은 다음 외부 데이터 원본에 대한 연결을 제공합니다.

외부 데이터 원본 PolyBase를 사용하는 SQL Server 2016-2019 PolyBase를 사용하는 SQL Server 2022(16.x) APS PDW Azure Synapse Analytics
Oracle, MongoDB, Teradata 읽음 읽음 문제 문제
일반 ODBC 읽기(Windows만 해당) 읽기(Windows만 해당) 문제 문제
Azure Storage 읽기/쓰기 읽기/쓰기 읽기/쓰기 읽기/쓰기
Hadoop은 읽기/쓰기 아니요 읽기/쓰기 문제
SQL Server 읽음 읽음 문제 문제
S3 호환 개체 스토리지 문제 읽기/쓰기 문제 문제
  • SQL Server 2022(16.x)는 Hadoop을 지원하지 않습니다.
  • SQL Server 2016(13.x)은 Hadoop 및 Azure Blob Storage에 대한 연결을 지원하는 PolyBase를 도입했습니다.
  • SQL Server 2019(15.x)에는 SQL Server, Oracle, Teradata 및 MongoDB를 비롯한 추가 커넥터가 도입되었습니다.
  • SQL Server 2022(16.x)는 S3 호환 스토리지 커넥터를 도입했습니다.
  • SQL Server 2019(15.x) 누적 업데이트 19에는 Oracle TNS에 대한 지원이 도입되었습니다.
  • SQL Server 2022(16.x) 누적 업데이트 2는 Oracle TNS에 대한 지원을 도입했습니다.

외부 커넥터의 예는 다음과 같습니다.

* PolyBase는 SQL Server 2019를 통해 HDP(Hortonworks Data Platform) 및 CDH(Cloudera Distributed Hadoop)의 두 가지 Hadoop 공급자를 지원합니다. HDFS Cloudera(CDP) 및 Hortonworks(HDP) 외부 데이터 원본에 대한 SQL Server 지원은 사용 중지되며 SQL Server 2022(16.x)에 포함되지 않습니다. 자세한 내용은 Microsoft SQL Server 플랫폼의 빅 데이터 옵션을 참조하세요.

SQL Server 인스턴스에서 PolyBase를 사용하려면 다음을 수행합니다.

  1. Windows 에 PolyBase를 설치하거나 Linux에 PolyBase를 설치합니다.
  2. SQL Server 2019(15.x) 부터 필요한 경우 sp_configure PolyBase를 사용하도록 설정합니다.
  3. 외부 데이터 원본만듭니다.
  4. 외부 테이블을 만듭니다.

Azure 통합

PolyBase의 기본 도움말을 통해 T-SQL 쿼리는 Azure Blob Storage에서 데이터를 가져오고 내보낼 수도 있습니다. 또한 PolyBase를 사용하면 Azure Synapse Analytics가 Azure Data Lake Store 및 Azure Blob Storage에서 데이터를 가져오고 내보낼 수 있습니다.

PolyBase를 사용하는 이유는 무엇인가요?

PolyBase를 사용하면 SQL Server 인스턴스의 데이터를 외부 데이터와 조인할 수 있습니다. PolyBase가 외부 데이터 원본에 데이터를 조인하기 전에 다음 중 하나를 수행할 수 있습니다.

  • 데이터의 절반을 전송하여 모든 데이터를 한 위치에 배치합니다.
  • 두 데이터 원본을 모두 쿼리한 다음 사용자 지정 쿼리 논리를 작성하여 클라이언트 수준에서 데이터를 조인하고 통합합니다.

PolyBase를 사용하면 Transact-SQL만을 사용하여 데이터를 조인할 수 있습니다.

PolyBase에서는 Hadoop 환경에 추가 소프트웨어를 설치할 필요가 없습니다. 데이터베이스 테이블을 쿼리하는 데 사용한 동일한 T-SQL 구문을 사용하여 외부 데이터를 쿼리합니다. PolyBase에서 구현된 지원 작업은 모두 투명하게 수행됩니다. 쿼리 작성자가 외부 원본에 대한 지식이 필요하지 않습니다.

PolyBase 사용

PolyBase를 사용하면 SQL Server에서 다음 시나리오를 사용할 수 있습니다.

  • Azure Blob Storage에 저장된 데이터를 쿼리합니다. Azure Blob Storage는 Azure 서비스에서 사용할 데이터를 저장하는 편리한 장소입니다. PolyBase는 T-SQL을 사용하여 쉽게 데이터에 액세스할 수 있습니다.

  • SQL Server 인스턴스 또는 PDW에서 Hadoop에 저장된 데이터를 쿼리합니다. 사용자는 Hadoop과 같은 비용 효율적인 분산 및 확장 가능한 시스템에 데이터를 저장합니다. PolyBase를 사용하면 쉽게 T-SQL을 사용하여 데이터를 쿼리할 수 있습니다.

  • Hadoop, Azure Blob Storage 또는 Azure Data Lake Store에서 데이터를 가져옵니다. Hadoop, Azure Blob Storage 또는 Azure Data Lake Store에서 관계형 테이블로 데이터를 가져와 Microsoft SQL의 columnstore 기술 및 분석 기능의 속도를 활용합니다. 별도의 ETL 또는 가져오기 도구가 필요하지 않습니다.

  • Hadoop, Azure Blob Storage 또는 Azure Data Lake Store로 데이터를 내보냅니다. Hadoop, Azure Blob Storage 또는 Azure Data Lake Store에 데이터를 보관하여 비용 효율적인 스토리지를 구현하고 손쉽게 액세스할 수 있도록 온라인 상태로 유지합니다.

  • BI 도구와 통합합니다. Microsoft의 비즈니스 인텔리전스 및 분석 스택에서 PolyBase를 사용하거나 SQL Server와 호환되는 타사 도구를 사용합니다.

성능

쿼리할 수 있는 파일 수 또는 데이터 양에 대한 하드 제한은 없습니다. 쿼리 성능은 데이터 양, 데이터 형식, 데이터 구성 방식, 쿼리 및 조인의 복잡성에 따라 달라집니다.

PolyBase에 대한 성능 지침 및 권장 사항에 대한 자세한 내용은 SQL Server용 PolyBase의 성능 고려 사항을 참조 하세요.

SQL Server 2022로 업그레이드

SQL Server 2022(16.x) HDP(Hortonworks Data Platform) 및 CDH(Cloudera Distributed Hadoop)는 더 이상 지원되지 않습니다. 이러한 변경으로 인해 SQL Server 2022(16.x)로 마이그레이션하기 전에 사용하는 TYPE = HADOOP 이전 버전의 SQL Server 또는 Azure Storage에서 만든 PolyBase 외부 데이터 원본을 수동으로 삭제해야 합니다. 또한 외부 데이터 원본을 삭제하려면 데이터베이스 범위 자격 증명 및 외부 테이블과 같은 연결된 데이터베이스 개체를 삭제해야 합니다.

Azure Storage 커넥터는 아래 참조 테이블에 따라 변경해야 합니다.

외부 데이터 원본 시작 대상
Azure Blob Storage wasb[s] abs
ADLS Gen 2 abfs[s] adls

시작하기

PolyBase를 사용하기 전에 Windows에 PolyBase를 설치하거나 Linux에 PolyBase를 설치하고 필요한 경우 sp_configure PolyBase를 사용하도록 설정해야 합니다.

PolyBase 기능 자습서는 SQL Server 2022에서 PolyBase 시작(Get started in SQL Server 2022)을 참조하세요.

다양한 외부 데이터 원본에 대한 자세한 자습서는 다음을 검토하세요.

다른 플랫폼의 데이터 가상화

데이터 가상화 기능은 다른 플랫폼에서도 사용할 수 있습니다.