PolyBase를 사용한 데이터 가상화 소개
적용 대상: SQL Server
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 Platform System(PDW)
- Azure Synapse Analytics
참고
PolyBase 기능을 사용하는 데이터 가상화는 ADLS(Azure Data Lake Storage) Gen2 및 Azure Blob Storage 파일에 저장된 외부 데이터를 쿼리하는 범위로 범위가 지정된 Azure SQL Managed Instance 사용할 수 있습니다. 자세한 내용은 Azure SQL Managed Instance를 사용한 데이터 가상화를 참조하세요.
SQL Server 2022 PolyBase 향상된 기능
2022년 SQL Server(16.x) | 세부 정보 |
---|---|
S3 호환 개체 스토리지 | SQL Server 2022(16.x)는 S3 REST API를 사용하여 새 커넥터 S3 호환 개체 스토리지를 추가합니다. 및 를 EXTERNAL TABLES 모두 OPENROWSET 사용하여 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 저장된 Delta Table 형식의 데이터를 쿼리(읽기 전용)할 수 있습니다. 자세한 내용은 델타 테이블 형식 가상화를 참조하세요. |
외부 테이블을 선택으로 만들기(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를 사용하여 Azure Storage에서 CSV 파일을 가상화하는 예제는 PolyBase를 사용하여 CSV 파일 가상화를 참조하세요.
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 플랫폼의 빅 데이터 옵션을 참조하세요.
PolyBase를 사용하려면 SQL Server 인스턴스에서 다음을 수행합니다.
- Windows에 PolyBase를 설치하거나 Linux에 PolyBase를 설치합니다.
- SQL Server 2019 (15.x)부터는 필요한 경우 sp_configure에서 PolyBase를 사용하도록 설정합니다.
- 외부 데이터 원본을 만듭니다.
- 외부 테이블을 만듭니다.
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 SQLss columnstore 기술 및 분석 기능의 속도를 활용합니다. 별도 ETL 또는 가져오기 도구에 대한 필요가 없습니다.
Hadoop, Azure Blob Storage 또는 Azure Data Lake Store로 데이터를 내보냅니다. Hadoop, Azure Blob Storage 또는 Azure Data Lake Store에 데이터를 보관하여 비용 효율적인 스토리지를 구현하고 손쉽게 액세스할 수 있도록 온라인 상태로 유지합니다.
BI 도구와 통합. Microsoft의 비즈니스 인텔리전스 및 분석 스택과 함께 PolyBase를 사용하거나 SQL Server와 호환되는 타사 도구를 사용합니다.
성능
Hadoop에 계산을 푸시합니다. (SQL Server 2016(13.x), SQL Server 2017(14.x), SQL Server 2019(15.x)에만 적용됩니다.) PolyBase는 전체 쿼리를 최적화하기 위해 일부 계산을 외부 원본으로 푸시합니다. 쿼리 최적화 프로그램은 쿼리 성능을 높일 수 있는 경우 Hadoop에 계산을 푸시하는 비용 기반 결정을 내립니다. 쿼리 최적화 프로그램은 외부 테이블의 통계를 사용하여 비용 기반 결정을 내립니다. 계산을 푸시하는 데는 MapReduce 작업을 만들고 Hadoop의 분산된 계산 리소스를 활용합니다. 자세한 내용은 PolyBase의 푸시다운 계산을 참조하세요.
컴퓨팅 리소스 크기 조정. (SQL Server 2016(13.x), SQL Server 2017(14.x), SQL Server 2019(15.x)에만 적용됩니다.) 쿼리 성능을 향상시키기 위해 SQL Server PolyBase 스케일 아웃 그룹을 사용할 수 있습니다. 이를 통해 SQL Server 인스턴스와 Hadoop 노드 간에 병렬 데이터 전송이 가능하며, 외부 데이터에서 작동하기 위한 컴퓨팅 리소스가 추가됩니다.
중요
Microsoft SQL Server PolyBase 스케일 아웃 그룹은 사용 중지됩니다. 스케일 아웃 그룹 기능은 SQL Server 2022(16.x) 제품에서 제거됩니다. PolyBase 데이터 가상화는 SQL Server 스케일 업 기능으로 계속 완벽하게 지원됩니다. 자세한 내용은 Microsoft SQL Server 플랫폼의 빅 데이터 옵션을 참조하세요.
SQL Server 2022로 업그레이드
2022년 SQL Server(16.x) HDP(Hortonworks Data Platform) 및 CDH(Cloudera Distributed Hadoop)는 더 이상 지원되지 않습니다. 이러한 변경으로 인해 SQL Server 2022(16.x)로 마이그레이션하기 전에 이전 버전의 SQL Server 또는 TYPE = HADOOP
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 Transact-SQL 참조를 참조하세요.
다양한 데이터 원본에 대한 외부 데이터 원본 및 외부 테이블의 예제와 함께 PolyBase Transact-SQL 참조 를 검토합니다. 자세한 자습서는 다음 문서를 검토하세요.