가상 뷰보다 빠른 응답 시간을 위해 예약 또는 온디맨드 방식으로 새로 고쳐지는 물리적 테이블로 미리 계산된 쿼리 결과를 저장하는 데이터베이스 개체
작성자: Databricks 직원
구체화 뷰는 쿼리 결과를 물리적 테이블로 저장하는 데이터베이스 객체입니다. 가상이며 기본 테이블에서 데이터를 파생하는 일반 데이터베이스 뷰와 달리, 구체화 뷰에는 예약 또는 온디맨드 방식으로 증분 업데이트되는 미리 계산된 데이터가 포함됩니다. 이러한 데이터의 사전 계산을 통해 특정 시나리오에서 쿼리 응답 시간을 단축하고 성능을 향상할 수 있습니다.
구체화된 뷰는 복잡한 쿼리나 집계가 자주 수행되고 기본 데이터가 드물게 변경되는 상황에서 특히 유용합니다. 미리 계산된 결과를 저장함으로써 데이터베이스는 복잡한 쿼리를 반복적으로 실행할 필요가 없어 응답 시간이 더 빨라집니다.
“데이터 구체화”와 “구체화된 뷰”라는 용어는 관련이 있지만, 서로 다른 개념을 나타냅니다. 그렇다면 이 맥락에서 '구체화됨'은 무슨 의미일까요?
데이터 구체화는 계산된 데이터를 하드 디스크와 같은 물리적 매체에 저장하는 개념입니다. 일반적으로 성능 개선이라는 하나의 핵심적인 목적으로 가상 또 는 논리적 뷰에서 생성됩니다.
어떤 면에서 데이터 구체화는 캐싱과 유사합니다. 두 프로세스 모두 데이터를 더 효율적으로 검색할 수 있게끔 저장하는 과정을 포함합니다. 두 가지의 주된 차이점은 캐싱이 사용 지점과 가까운 곳에 데이터를 임시로 저장하는 데 사용되는 반면, 구체화된 데이터는 일반적으로 수명 주기가 더 길고 업데이트 일정이 더 명확하게 정의된다는 점입니다.
이러한 데이터 구체화의 정의를 바탕으로, 이제 이것이 구체화된 뷰의 개념과 어떻게 관련되는지 살펴보겠습니다.
구체화된 뷰는 관계형 데이터베이스에서 더 빠른 검색을 위해 쿼리 결과를 저장하는 데 사용되는 데이터 구체화의 한 유형입니다.
데이터 웨어하우스 환경에서 구체화를 사용하는 것은 주로 편의성을 위한 것입니다. 데이터가 저장될 때 저장 방법의 선택은 일반적으로 데이터가 처음에 어떻게 형식화되었는지에 따라 결정됩니다. 하지만 데이터를 읽으려 할 때 그 선택이 쉬운 검색에 도움이 되지 않을 수 있습니다.
예를 들어, 정기적으로 데이터의 하위 집합을 읽어야 하는 대규모 데이터 세트가 있다고 가정해 봅시다. 데이터의 작은 부분에만 액세스하고 싶었음에도 불구하고 매번 전체 데이터 세트에 대해 쿼리를 실행해야 하므로, 매번 새로 검색하는 것은 비교적 시간이 많이 걸릴 수 있습니다.
이러한 상황에서는 구체화 뷰를 만드는 것이 좋습니다. 읽어야 할 데이터로 미리 채워지도록 설정하고, 자동으로 또는 시스템이 기본 소스 데이터의 변경을 감지할 때 새로 고침 일정을 정의하게 됩니다.