클러스터된 기본 테이블

Clustered Base Table(CBT)은 4가지 구성 키 중 하나를 사용하여 구성되는 데이터가 포함된 사용자 테이블입니다. 정리 키는 테이블 레코드를 클러스터링하기 위해 지정하는 테이블의 열로, 테이블 내에서 레코드를 그룹화하여 동일하거나 가까운 범위에 저장하는 데 사용됩니다. 또한 Netezza Performance Server 정리 열에 대한 영역 맵을 생성하여 해당 테이블에서 정리 키 사용을 제한하는 쿼리의 성능을 가속화합니다.

다음 그림은 트랜잭션 테이블과 같은 테이블의 단순 모델을 보여줍니다. 구성되지 않은 해당 양식에서 데이터는 각 트랜잭션이 발생한 날짜 및 시간을 기준으로 구성되고 색상은 고유 트랜잭션을 나타냅니다. 테이블의 쿼리가 날짜/시간 제한사항에 의해 가장 자주 조회되는 경우 날짜/시간 구성은 쿼리의 일반 제한사항과 일치하기 때문에 이러한 쿼리는 잘 실행됩니다.

그러나 대부분의 쿼리가 트랜잭션 유형에 제한되는 경우 트랜잭션 유형별로 레코드를 구성하여 쿼리 성능을 향상시킬 수 있습니다. 트랜잭션 유형으로 제한되는 쿼리는 레코드가 주요 제한사항에 의해 구성되고 그룹화되기 때문에 성능을 향상시킵니다. 쿼리는 관련 레코드를 더 빠르게 확보할 수 있지만 관련 트랜잭션을 찾기 위해 날짜/시간 구성에서 훨씬 더 많은 테이블을 스캔해야 합니다. 보통 필터링된 데이터가 동일하거나 인근의 디스크 익스텐트에 위치하도록 테이블에서 데이터를 구성하면, 쿼리는 관련 레코드를 찾기 위해 불필요한 디스크 스캔을 제거하는 데 지역 맵을 이용할 수 있습니다.

그림 1. CBT가 포함된 테이블 구성

CBT는 수많은 행을 가질 수 있는 이벤트 테이블 및 대형 요소에 가장 자주 사용됩니다. 테이블에 실행하는 쿼리 유형과 일치하는 레코드 구성이 없는 경우 대형 테이블의 레코드를 스캔하려면 관련 레코드를 수집하는 데 전체 디스크 스캔이 필요할 수 있으므로 긴 처리 시간이 필요합니다. 테이블을 쿼리와 일치하도록 재구성함으로써 레코드를 그룹화하여 지역 맵을 이용하고 성능을 향상시킬 수 있습니다.

CBT에서 제공하는 몇 가지 혜택:

  • CBT는 하나, 둘, 셋 또는 네 개의 검색 키로 레코드를 구성할 수 있는 "다차원" 검색을 지원합니다. 이전 그림에 표시되는 예제에서 쿼리가 보통 트랜잭션 유형과 저장소 ID에 대해 제한하는 경우 쿼리 성능을 향상시키기 위해 이러한 키를 둘 다 사용하여 레코드를 구성할 수 있습니다.
  • 구성 키 컬럼도 지역에 맵핑되기 때문에(구성 컬럼 데이터 유형은 지역 맵을 지원함) CBT는 테이블에 대한 지역 맵을 추가하여 쿼리 성능을 향상시킵니다.
  • CBT는 다차원에 따라 제한하는 쿼리의 성능을 향상시키기 위해 지역 맵핑된 컬럼에 대해 지원되는 데이터 유형을 증가시킵니다.
  • CBT는 삽입/로드 전에 미리 주문을 위해 데이터가 스테이징 영역에 쉽게 누적될 수 없는 경우 사용자 테이블 내에서 데이터를 점진적으로 구성합니다. CBT는 로드/삽입 조작 전에 새 테이블 레코드의 사전 정렬을 제거하거나 감소시키도록 도와줄 수 있습니다.
  • CBT는 디스크 공간을 절약합니다. 인덱스, 구체화된 보기 및 다른 보조 데이터 구조와는 다르게 CBT는 기본 테이블 데이터를 복제하지 않으며 추가 데이터 구조를 할당하지 않습니다.