Azure Synapse Analytics의 전용 SQL 풀 및 서버리스 SQL 풀을 사용한 T-SQL 뷰
본 문서에서는 Azure Synapse Analytics의 전용 SQL 풀 및 서버리스 SQL 풀을 통해 T-SQL 뷰를 사용하고 솔루션을 개발하기 위한 팁을 확인할 수 있습니다.
뷰를 사용하는 이유
뷰를 여러 가지 다양한 방법으로 사용하여 솔루션의 품질을 개선할 수 있습니다. 본 문서에서는 뷰를 통해 솔루션을 보완하는 방법에 대한 몇 가지 예를 중점적으로 설명하며 고려해야 할 제한 사항도 소개합니다.
SQL 풀 - 뷰 만들기
참고 항목
CREATE VIEW에 대한 구문은 이 문서에서 다루지 않습니다. 자세한 내용은 CREATE VIEW를 참조하세요.
아키텍처 추상화
일반적인 애플리케이션 패턴은 CTAS(CREATE TABLE AS SELECT) 뒤에 데이터 로드 중 개체 이름 바꾸기 패턴을 사용하여 테이블을 다시 작성하는 것입니다.
다음 예제에서는 새 날짜 레코드를 날짜 차원에 추가합니다. 먼저 새 테이블 DimDate_New를 만든 다음, 이름을 바꾸어 원래 버전의 테이블을 바꾸는 방법을 확인합니다.
CREATE TABLE dbo.DimDate_New
WITH (DISTRIBUTION = ROUND_ROBIN
, CLUSTERED INDEX (DateKey ASC)
)
AS
SELECT *
FROM dbo.DimDate AS prod
UNION ALL
SELECT *
FROM dbo.DimDate_stg AS stg
;
RENAME OBJECT DimDate TO DimDate_Old;
RENAME OBJECT DimDate_New TO DimDate;
이 방법을 사용하면 뷰에서 테이블이 표시되었다가 사라질 수 있으며 "테이블이 없습니다" 오류 메시지가 표시될 수 있음에 유의합니다. 뷰는 기본 개체의 이름을 바꾸는 동안 일관성 있는 프레젠테이션 계층을 제공하는 데 사용할 수 있습니다.
뷰를 통해 데이터에 대한 액세스를 제공하면 기본 테이블이 사용자에게 표시되지 않아도 됩니다. 이 계층을 통해 사용자 환경의 일관성을 유지할 뿐만 아니라 분석 디자이너가 데이터 모델을 향상시킬 수 있습니다. 기본 테이블을 개선할 수 있으므로 설계자가 CTAS를 사용하여 데이터 로드 프로세스 중에 성능을 극대화할 수 있습니다.
성능 및 최적화
뷰는 테이블 간에 성능 최적화된 조인을 적용하는 데도 활용할 수 있습니다. 예를 들어, 뷰는 데이터 이동을 최소화하는 조인 조건의 일부로 배포 중복 키를 통합할 수 있습니다.
특정 쿼리 또는 조인 힌트를 강요하는 것은 T-SQL 뷰를 사용하면서 얻을 수 있는 또 다른 장점입니다. 따라서 뷰 기능을 사용하면 조인이 항상 최적화됩니다. 조인을 위해 올바른 구분을 직접 기억할 필요가 없습니다.
제한 사항
Synapse SQL 뷰는 메타데이터로만 저장됩니다. 따라서 다음 옵션은 사용할 수 없습니다.
- 스키마 바인딩 옵션이 없습니다.
- 뷰를 통해 기본 테이블을 업데이트할 수 없습니다.
- 임시 테이블 뷰를 만들 수 없습니다.
- EXPAND / NOEXPAND 힌트를 지원하지 않습니다.
- Synapse SQL에 인덱싱된 뷰가 없습니다.
다음 단계
더 많은 개발 팁은 Synapse SQL 개발 개요를 참조하세요.