메인 콘텐츠로 건너뛰기

range_hashed

딕셔너리는 정렬된 범위 배열과 해당 값을 포함하는 해시 테이블 형태로 메모리에 저장됩니다. 이 저장 메서드는 hashed와 동일하게 작동하며, 키에 더해 날짜/시간(임의의 숫자 유형) 범위도 사용할 수 있습니다. 예시: 테이블에는 각 광고주의 할인 정보가 다음 포맷으로 저장되어 있습니다:
날짜 범위에 샘플을 사용하려면 구조range_minrange_max 요소를 정의합니다. 이 요소들에는 nametype 요소가 포함되어야 합니다(type을 지정하지 않으면 기본 유형인 Date가 사용됩니다). type은 임의의 숫자 유형(Date / DateTime / UInt64 / Int32 / 기타)일 수 있습니다.
range_minrange_max 값은 Int64 유형에 맞아야 합니다.
예시:

이러한 딕셔너리를 사용하려면 범위가 선택될 수 있도록 dictGet 함수에 추가 인수를 전달해야 합니다:
쿼리 예시:
이 함수는 지정된 id에 대해, 전달된 날짜를 포함하는 날짜 범위의 값을 반환합니다. 알고리즘의 세부 사항은 다음과 같습니다.
  • id를 찾을 수 없거나 해당 id에 대한 범위를 찾을 수 없으면, 속성 타입의 기본값을 반환합니다.
  • 겹치는 범위가 있고 range_lookup_strategy=min이면, range_min이 가장 작은 일치 범위를 반환합니다. 여러 범위를 찾으면 range_max가 가장 작은 범위를 반환하고, 여전히 여러 범위가 있으면(range_minrange_max가 같은 범위가 여러 개인 경우) 그중 임의의 범위를 반환합니다.
  • 겹치는 범위가 있고 range_lookup_strategy=max이면, range_min이 가장 큰 일치 범위를 반환합니다. 여러 범위를 찾으면 range_max가 가장 큰 범위를 반환하고, 여전히 여러 범위가 있으면(range_minrange_max가 같은 범위가 여러 개인 경우) 그중 임의의 범위를 반환합니다.
  • range_maxNULL이면 해당 범위는 열린 범위입니다. NULL은 가능한 최댓값으로 처리됩니다. range_min에는 열린 값으로 1970-01-01 또는 0 (-MAX_INT)을 사용할 수 있습니다.
구성 예시:

겹치는 범위와 열린 범위를 포함하는 구성 예시:

complex_key_range_hashed

딕셔너리는 범위와 해당 값의 정렬된 배열을 포함하는 해시 테이블 형태로 메모리에 저장됩니다(range_hashed 참조). 이 저장 방식은 복합 에 사용됩니다. 구성 예시:
마지막 수정일 2026년 6월 10일