익스텐트(데이터 분할)

테이블은 익스텐트 또는 데이터 분할로 분할됩니다. 각 익스텐트 는 생성 시간 및 선택적 태그와 같은 데이터 및 메타데이터를 포함하는 테이블의 가로 세그먼트입니다. 이러한 모든 범위의 합집합에는 테이블의 전체 데이터 세트가 포함됩니다. 익스텐션은 클러스터의 노드에 균등하게 분산되며 최적화된 성능을 위해 로컬 SSD와 메모리 모두에 캐시됩니다.

익스텐트는 변경할 수 없으므로 쿼리하거나, 다른 노드에 재할당하거나, 테이블에서 삭제되지만 수정되지 않을 수 있습니다. 데이터 수정은 새 익스텐트 만들기 및 트랜잭션 방식으로 이전 익스텐트와 새 익스텐트 교환을 통해 발생합니다. 익스텐트의 불변성은 향상된 견고성과 이전 스냅샷으로의 손쉬운 회귀와 같은 이점을 제공합니다.

익스텐트에서는 열에 물리적으로 정렬된 레코드 컬렉션을 보유하므로 데이터를 효율적으로 인코딩하고 압축할 수 있습니다. 쿼리 효율성을 유지하기 위해 구성된 병합 정책분할 정책에 따라 더 작은 범위가 더 큰 범위로 병합됩니다. 익스텐트 병합은 관리 오버헤드를 줄이고 인덱스 최적화 및 압축 향상으로 이어집니다.

일반적인 익스텐트 수명 주기는 다음과 같습니다.

  1. 익스텐트 는 수집 작업에 의해 생성됩니다.
  2. 익스텐트 는 다른 익스텐트와 병합됩니다.
  3. 병합된 익스텐트(계보를 다른 범위로 추적하는 범위일 수 있음)는 보존 정책으로 인해 결국 삭제됩니다.

익스텐트 생성 시간

날짜/시간 값은 익스텐트 MinCreatedOn 당 추적됩니다. 및 MaxCreatedOn입니다. 이러한 값은 처음에는 동일하지만 익스텐트 가 다른 익스텐트와 병합되면 변경 될 수 있습니다. 범위가 다른 익스텐트와 병합되면 새 값은 병합된 익스텐트에서 원래 최소값 및 최대값에 따라 다릅니다.

익스텐트 생성 시간은 다음과 같은 용도로 사용됩니다.

  • 보존: 이전에 만든 익스텐트 이전에 삭제됩니다.
  • 캐싱: 최근에 만든 익스텐트 는 핫 캐시에 유지됩니다.
  • 샘플링: take과 같은 쿼리 작업을 사용할 때 최근 익스텐트 선호도입니다.

익스텐트의 생성 시간을 덮어쓰려면 데이터 수집 속성에 대체 creationTime 를 제공합니다. 데이터를 다시 수집하려고 하지만 늦게 도착한 것처럼 표시하지 않으려는 경우와 같이 보존 목적에 유용할 수 있습니다.

참고

시간에 따라 익스텐트를 제거하는 계산에서는 병합된 익스텐트 내에서 최신 익스텐트 생성 시간을 사용합니다.