딕셔너리 레이아웃 유형
| 레이아웃 | 설명 |
|---|---|
| flat | 키로 인덱싱된 평면 배열에 데이터를 저장합니다. 가장 빠른 레이아웃이지만 키는 UInt64여야 하며, max_array_size 범위로 제한됩니다. |
| hashed | 데이터를 해시 테이블에 저장합니다. 키 크기 제한이 없고 요소 수에도 제한이 없습니다. |
| sparse_hashed | hashed와 유사하지만, 메모리 사용량을 줄이는 대신 CPU를 더 사용합니다. |
| complex_key_hashed | hashed와 유사하며, 복합 키에 사용합니다. |
| complex_key_sparse_hashed | sparse_hashed와 유사하며, 복합 키에 사용합니다. |
| hashed_array | 해시 테이블로 키를 배열 인덱스에 매핑하고, 속성은 배열에 저장합니다. 속성이 많을 때 메모리 효율이 좋습니다. |
| complex_key_hashed_array | hashed_array와 유사하며, 복합 키에 사용합니다. |
| range_hashed | 정렬된 범위를 사용하는 해시 테이블입니다. 키 + 날짜/시간 범위 기준 조회를 지원합니다. |
| complex_key_range_hashed | range_hashed와 유사하며, 복합 키에 사용합니다. |
| cache | 고정 크기의 인메모리 캐시입니다. 자주 액세스되는 키만 저장합니다. |
| complex_key_cache | cache와 유사하며, 복합 키에 사용합니다. |
| ssd_cache | cache와 유사하지만, 메모리 내 인덱스를 두고 데이터는 SSD에 저장합니다. |
| complex_key_ssd_cache | ssd_cache와 유사하며, 복합 키에 사용합니다. |
| direct | 메모리에 저장하지 않고, 각 요청마다 소스를 직접 쿼리합니다. |
| complex_key_direct | direct와 유사하며, 복합 키에 사용합니다. |
| ip_trie | 빠른 IP 프리픽스 조회(CIDR 기반)를 위한 트라이 구조입니다. |
딕셔너리 레이아웃 지정
LAYOUT 절(DDL) 또는 설정 파일 정의의 layout 설정을 사용해 딕셔너리 레이아웃을 구성할 수 있습니다.
- DDL
- 설정 파일
전체 DDL 구문은 CREATE DICTIONARY를 참고하십시오. 레이아웃에
complex-key*라는 단어가 없는 딕셔너리는 UInt64 타입의 키를 사용하고, complex-key* 딕셔너리는 복합 키(임의의 타입으로 구성 가능)를 사용합니다.
숫자 키 예시 (key_column 컬럼은 UInt64 타입):
- DDL
- 설정 파일
복합 키 예시 (키는 String 타입 요소 1개로 구성됨):
- DDL
- 설정 파일
딕셔너리 성능 개선
GROUP BY뒤에서 딕셔너리 작업 함수를 호출합니다.- 추출할 속성을 injective로 표시합니다.
서로 다른 키가 서로 다른 속성 값에 대응할 때 해당 속성을 injective라고 합니다.
따라서
GROUP BY에서 키로 속성 값을 가져오는 함수를 사용하면, 이 함수는 자동으로GROUP BY밖으로 분리됩니다.
- 접근하는 딕셔너리를 로드할 수 없습니다.
cached딕셔너리를 쿼리하는 중 오류가 발생했습니다.