마이크로소프트는 Azure 서비스를 최첨단 데이터 관리 및 분석 기능을 통합한 엔터프라이즈급 클라우드 솔루션으로 탈바꿈시켰습니다.
클라우드로 전환하기로 결정했을 때, 마이크로소프트는 Azure SQL 데이터 웨어하우스를 선보였습니다. 이 서비스는 탄력적인 데이터 웨어하우스 기능과 유연한 데이터베이스 관리 서비스를 결합한 강력한 솔루션으로, 마이크로소프트에서 적극적으로 추진하고 있습니다.
Azure SQL 데이터 웨어하우스란?
Azure SQL 데이터 웨어하우스(현재 클라우드 기반 데이터 웨어하우스인 Azure Synapse 전용 SQL 풀로 명칭 변경)를 사용하면 Microsoft Azure 환경에서 데이터 웨어하우스를 구축하고 활용할 수 있습니다. 이 솔루션은 대규모 관계형 및 비관계형 데이터를 처리할 수 있는 강력한 기능을 제공하며, SQL 데이터 웨어하우스 기능과 클라우드 컴퓨팅 플랫폼의 장점을 모두 갖추고 있습니다.
기본적으로 SQL 서버를 지원하여 기존 SQL 서버 환경을 SQL 데이터 웨어하우스로 쉽게 마이그레이션할 수 있으며, 기존 쿼리 및 구문을 그대로 사용할 수 있다는 장점이 있습니다. 또한, 사용자는 데이터 웨어하우스 리소스를 필요에 따라 즉시 확장, 일시 중지 및 축소할 수 있습니다.
Azure SQL 데이터 웨어하우스는 완벽한 엔터프라이즈급 SQL 기반 데이터 웨어하우스 솔루션을 제공하는 데 활용되며, 다음과 같은 다양한 방식으로 활용될 수 있습니다.
- 온프레미스 환경의 기존 데이터 웨어하우스를 클라우드로 이전
- 웹 애플리케이션과 같이 런타임 시 데이터 저장 및 검색이 필요한 애플리케이션 및 서비스에 최적화된 데이터 웨어하우스 솔루션 제공
- Azure에서 호스팅되는 데이터 웨어하우스와 온프레미스 SQL Server 환경을 연결하는 하이브리드 데이터 웨어하우스 솔루션 구성
Azure SQL 데이터 웨어하우스의 가장 큰 장점 중 하나는 탄력성입니다. 스토리지 및 컴퓨팅 리소스를 독립적으로 관리하여 확장성을 극대화할 수 있으며, 사용한 만큼만 비용을 지불하는 합리적인 모델을 통해 비용 효율성을 높일 수 있습니다.
컴퓨팅 측면에서 Azure SQL 데이터 웨어하우스는 DWU(데이터 웨어하우스 단위)를 기반으로 하며, 이는 참여하는 모든 컴퓨팅 노드에서 스토리지 I/O 및 메모리와 같은 컴퓨팅 리소스를 추적하는 데 사용됩니다.
또한, Azure SQL 데이터 웨어하우스는 강력한 연결 보안 기능을 제공합니다. 방화벽 규칙을 설정하여 특정 IP 주소 또는 IP 범위에서만 액세스하도록 제한할 수 있으며, Azure AAD(Active Directory 인증)와 통합하여 Azure AD의 ID를 사용하여 데이터 웨어하우스에 안전하게 연결할 수 있습니다.
다계층 암호화 방식을 통해 저장, 이동 및 사용 중인 데이터를 안전하게 보호하며, 데이터 감사 및 모니터링 도구를 통해 보안 위반을 감지하고 대응할 수 있습니다.
Azure SQL 데이터 웨어하우스는 Microsoft의 다른 다양한 도구와 함께 사용할 때 탁월한 성능을 발휘하며, 이는 시중의 다른 유사한 서비스와 비교할 때 큰 이점으로 작용합니다.
Azure Synapse 전용 SQL 풀
Azure Synapse SQL 풀 전용 SQL 풀(이전의 Azure SQL 데이터 웨어하우스)은 Snowflake 및 Amazon Redshift와 유사한 컬럼 기반 스케일 아웃 데이터베이스 기술을 사용하는 대규모 병렬 처리 데이터뱅크입니다. 최종 사용자에게는 기존 SQL Server처럼 보일 수 있지만, 실제로는 데이터를 단일 노드에 저장하고 처리하지 않습니다.
이러한 아키텍처는 몇 테라바이트 이상의 대용량 데이터 웨어하우스의 성능을 크게 향상시킬 수 있지만, 더 작은 규모의 구현에는 더 나은 솔루션이 존재할 수 있습니다.
기본 아키텍처는 기존 SQL Server와 상당히 다르므로, 구문과 개발 방식에도 차이가 있을 수 있습니다.
배포는 전용 SQL 풀의 컴퓨팅 노드에 매핑되며, 더 많은 컴퓨팅 리소스를 구매하면 풀이 컴퓨팅 노드에 배포를 재매핑합니다.
간단한 PolyBase SQL 쿼리를 사용하여 대용량 데이터를 가져온 다음, 고성능 분석을 위해 분산 쿼리 엔진을 사용할 수 있습니다.
전용 SQL 풀(이전의 SQL DW)은 데이터를 신속하게 통합 및 분석하고, 비즈니스에 더 강력한 통찰력을 제공하는 단일 정보 소스를 제공합니다.
Azure Synapse Analytics 작업 영역의 Azure Synapse 전용 SQL 풀과 전용 SQL 풀의 차이점은 무엇인가요?

PowerShell을 사용할 때 “전용 SQL 풀(이전의 SQLDW)”과 “Synapse Analytics” 전용 SQL 풀 사이의 설명이 혼란스러운 경우가 있습니다.
SQL DW의 초기 구현은 Azure SQL DB와 유사한 논리 서버를 사용했으며, Az.Sql이라는 PowerShell 모듈을 공유했습니다.
이 모듈은 New-AzSqlDatabase cmdlet을 사용하여 새 SQL 풀(이전의 SQLDW)을 생성했으며, DataWarehouse를 원하는지 지정할 수 있는 “Edition” 매개변수를 제공했습니다.
Synapse Analytics는 Az.Synapse가 처음 출시되었을 때 새로운 PowerShell 모듈과 함께 제공되었습니다. Synapse Analytics Workspace에서 전용 SQL 풀을 생성하려면 New-AzSynapseSqlPool을 사용해야 합니다.
이 PowerShell 모듈은 Synapse 아티팩트 전용이므로 “Edition” 매개변수를 포함할 필요가 없습니다.
전용 SQL 풀은 T-SQL 기반 컴퓨팅 및 스토리지를 제공하며, Synapse 환경에서 데이터를 로드, 모델링 및 처리하여 더 빠른 통찰력을 얻을 수 있도록 지원합니다.
Azure Synapse는 전용 SQL 풀 외에도 서버리스 SQL 및 Apache Spark 풀을 제공하므로, 사용자의 요구 사항에 따라 적절한 솔루션을 선택할 수 있습니다. 서버리스 SQL 풀을 사용하면 데이터 레이크에 저장된 데이터를 직접 쿼리할 수 있습니다.
Azure Synapse 전용 SQL 풀의 기능은 무엇인가요?

Azure Synapse 전용 SQL 풀은 확장 가능한 아키텍처를 사용하여 데이터 계산을 여러 노드에 분산시킵니다. 컴퓨팅은 스토리지와 분리되어 있으므로 필요에 따라 컴퓨팅 리소스를 독립적으로 확장할 수 있습니다.
서버리스 SQL 풀은 서버리스 환경에서 쿼리 리소스 요구 사항을 충족하도록 자동으로 확장됩니다. 토폴로지 변경에 따라 노드를 추가, 제거 또는 장애 조치하여 쿼리가 성공적으로 완료될 수 있도록 보장합니다.
Synapse SQL은 노드 기반 아키텍처를 사용합니다. 애플리케이션은 제어 노드에 연결하고 T-SQL 명령을 실행할 수 있으며, 이것이 Synapse SQL의 단일 진입점입니다.
Azure Synapse SQL 제어 노드는 병렬 처리를 위해 쿼리를 최적화한 다음, 분산 쿼리 엔진을 사용하여 작업을 컴퓨팅 노드에 전달하여 병렬로 처리하도록 합니다.
서버리스 SQL 풀 제어 노드는 DQP(분산 쿼리 처리 엔진)를 사용하여 분산 실행을 최적화하고 조정합니다.
이러한 최적화는 사용자 쿼리를 컴퓨팅 노드에서 실행할 수 있는 더 작은 쿼리로 분할하여 수행되며, 각 작업은 분산 실행 단위로 작동합니다. 각 작업은 다른 작업에서 데이터를 검색하고, 파일을 그룹화하고, 스토리지에서 데이터를 읽습니다.
컴퓨팅 노드는 사용자 데이터를 저장하고 병렬 쿼리를 실행합니다. 시스템 수준 내부 서비스인 DMS(데이터 이동 서비스)는 노드 간에 데이터를 이동시켜 병렬 쿼리를 가능하게 하고 정확한 결과를 반환합니다.
Synapse SQL은 사용자 데이터 보안을 위해 Azure Storage를 사용하며, Azure Storage는 데이터를 저장하고 관리하는 역할을 담당합니다. 스토리지 사용료는 별도로 부과됩니다.
Azure Synapse 전용 SQL 풀의 기능
다음은 Azure Synapse SQL 풀의 주요 기능입니다.
- 데이터 레이크에서 Parquet, JSON, CSV 등 다양한 형식의 데이터를 직접 조회할 수 있습니다.
- 관계형 추상화를 통해 가장 최신 데이터를 실시간으로 확인할 수 있습니다.
- T-SQL을 사용하여 간단하고 확장 가능한 방식으로 레이크 데이터를 변환할 수 있습니다.
- 데이터 과학자는 OPENROWSET 또는 자동 스키마 추론 기능을 사용하여 레이크 데이터의 구조와 내용을 빠르게 조사할 수 있습니다.
- 데이터 엔지니어는 풀을 사용하여 레이크를 탐색하고, 데이터 변환 파이프라인을 구축, 수정 또는 단순화할 수 있습니다.
- 데이터 분석가는 T-SQL 언어 및 기타 익숙한 도구를 통해 데이터에 액세스하고 외부 테이블을 활용할 수 있으며, 서버리스 SQL 풀에도 연결할 수 있습니다.
- Spark 테이블 또는 데이터 레이크를 통해 비즈니스 인텔리전스 전문가가 즉시 BI 보고서를 생성할 수 있습니다.
전용 SQL 풀과 서버리스 SQL 풀 비교
서버리스 SQL 풀
Azure Synapse 작업 영역에는 데이터 레이크에 대한 쿼리 서비스 역할을 하는 서버리스 SQL 풀이 포함되어 있습니다. 추가 구성 없이 데이터에 바로 액세스할 수 있으며, 완전히 서버리스 환경이므로 설정하거나 유지 관리해야 할 인프라가 필요하지 않습니다.
리소스 요구 사항에 따라 자동으로 확장될 수 있으며, 사용자는 처리된 데이터에 대해서만 비용을 지불하고 예약된 리소스에 대해서는 비용을 지불하지 않습니다. 서버리스 SQL 풀은 쿼리 실행을 최적화하기 위한 통계도 자동으로 생성합니다.
예를 들어, 쿼리를 두 번 실행하거나 유사한 실행 계획을 가진 두 개의 쿼리를 실행할 때 해당 통계를 재사용할 수 있습니다. 이러한 기능을 통해 특정 저장소에 복사하거나 로드하지 않고도 대량의 데이터를 빠르게 분석할 수 있습니다.
전용 SQL 풀
Synapse 전용 SQL 풀은 Azure SQL Data Warehouse의 후속 버전으로, 모든 엔터프라이즈 데이터 웨어하우징 기능을 제공합니다. 하지만 서버리스 SQL 풀과는 달리, 사용자가 Synapse 전용 SQL 풀을 생성하고 삭제해야 하며, 사용할 리소스를 직접 선택해야 합니다.
이러한 리소스는 Synapse의 전용 SQL 풀에서 데이터 웨어하우징 유닛(DWU)으로 측정됩니다. DWU는 CPU, 메모리 및 IO 리소스의 조합을 나타냅니다.
DWU의 수는 풀의 성능과 비용을 결정합니다. 쿼리당 요금이 부과되는 대신, 풀이 수행한 작업량과 관계없이 풀이 활성화된 시간에 대해 요금이 부과됩니다.
추가 비용을 방지하기 위해 전용 풀을 중지했다가 필요할 때 다시 시작할 수 있습니다. 테스트 목적으로 100 DWU 전용 SQL 풀을 생성할 수 있습니다.
풀을 생성한 후에는 COPY 명령, T-SQL 쿼리가 포함된 PolyBase 또는 파이프라인을 사용하여 데이터를 풀에 로드할 수 있으며, 이러한 데이터는 관계형 테이블의 컬럼 저장소에 저장됩니다.
| 전용 SQL 풀 | 서버리스 SQL 풀 | |
| 데이터 레이크 쿼리 | 데이터 레이크를 쿼리하고 데이터를 수집할 수 있습니다. | 사용자가 데이터 레이크 파일을 쿼리할 수 있습니다. |
| 인프라 | 인프라가 필요합니다. | 인프라를 구축하거나 클러스터를 유지 관리할 필요가 없습니다. |
| 서버 | 작업을 수행하기 전에 전용 서버가 필요합니다. | 데이터 변환 또는 탐색에 인프라가 필요하지 않습니다. |
| 데이터 저장 | 관계형 테이블을 사용하여 데이터를 저장합니다. | 데이터 레이크는 데이터를 저장합니다. |
| 비용 관리 | SQL 풀을 일시 중지하고 웨어하우스를 축소하여 비용을 관리할 수 있습니다. | 요청당 지불 기준입니다. |
| 비용 청구 | 예약된 리소스에 대해 비용이 청구됩니다. | 쿼리당 데이터 처리 비용이 청구됩니다. |
| 비용 모델 | 프로비저닝된 DWU당 지불합니다. | 처리된 TB당 지불합니다. |
결론
요약하자면, 지금까지 Azure SQL 데이터 웨어하우스(현재 Azure Synapse 전용 SQL 풀로 명칭 변경)에 대해 알아보았습니다. 전용 SQL 풀은 여러 측면에서 기존 SQL Server와 유사해 보일 수 있지만, 기본 아키텍처(대규모 병렬 처리)는 완전히 다릅니다. 따라서 특정 개념과 기술은 전용 SQL 풀에만 적용됩니다.
이와 함께 데이터 레이크와 데이터 웨어하우스의 차이점에 대해서도 살펴보는 것이 좋습니다.