CREATE DICTIONARY ... Embedded

CREATE DICTIONARY ... Embedded (내장 딕셔너리)

이 페이지는 ClickHouse Cloud에는 적용되지 않아요. 여기 문서화된 기능은 ClickHouse Cloud 서비스에서 사용할 수 없습니다. 자세한 내용은 ClickHouse Cloud Compatibility 가이드를 참고하세요.

ClickHouse에는 지리 기반(geobase) 작업을 위한 내장 기능이 포함되어 있어요.

이를 통해 다음을 할 수 있어요.

  • 지역의 ID를 사용해 원하는 언어로 된 이름을 얻는다.
  • 지역의 ID를 사용해 도시, 지역, 연방 관구, 국가 또는 대륙의 ID를 얻는다.
  • 지역이 다른 지역의 일부인지 확인한다.
  • 부모 지역의 체인을 얻는다.

모든 함수는 "translocality"를 지원하는데, 지역 소유권에 대한 서로 다른 관점을 동시에 사용하는 능력이에요. 자세한 내용은 "Functions for working with web analytics dictionaries" 섹션을 참고하세요.

내부 딕셔너리는 기본 패키지에서 비활성화되어 있어요. 활성화하려면 서버 구성 파일에서 path_to_regions_hierarchy_filepath_to_regions_names_files 파라미터의 주석을 해제하세요.

지오베이스는 텍스트 파일에서 로드됩니다.

regions_hierarchy*.txt 파일을 path_to_regions_hierarchy_file 디렉터리에 배치하세요. 이 구성 파라미터는 regions_hierarchy.txt 파일(기본 지역 계층)의 경로를 포함해야 하며, 다른 파일들(regions_hierarchy_ua.txt)은 같은 디렉터리에 있어야 해요.

regions_names_*.txt 파일을 path_to_regions_names_files 디렉터리에 넣으세요.

이 파일들을 직접 만들 수도 있어요. 파일 형식은 다음과 같아요.

regions_hierarchy*.txt: TabSeparated(헤더 없음), 컬럼:

  • 지역 ID (UInt32)
  • 부모 지역 ID (UInt32)
  • 지역 타입 (UInt8): 1 - 대륙, 3 - 국가, 4 - 연방 관구, 5 - 지역, 6 - 도시; 다른 타입은 값을 갖지 않아요.
  • 인구 (UInt32) — 선택 컬럼

regions_names_*.txt: TabSeparated(헤더 없음), 컬럼:

  • 지역 ID (UInt32)
  • 지역 이름 (String) — 탭이나 줄바꿈을 포함할 수 없어요(이스케이프된 것도 포함).

RAM에 저장하기 위해 플랫 배열이 사용돼요. 이런 이유로 ID는 백만을 넘으면 안 됩니다.

딕셔너리는 서버를 재시작하지 않고 업데이트할 수 있어요. 그러나 사용 가능한 딕셔너리 집합은 업데이트되지 않습니다. 업데이트를 위해 파일 수정 시간이 확인돼요. 파일이 변경되었으면 딕셔너리가 업데이트됩니다. 변경 사항을 확인하는 간격은 builtin_dictionaries_reload_interval 파라미터에 구성돼요. 딕셔너리 업데이트(첫 사용 시 로드 제외)는 쿼리를 차단하지 않아요. 업데이트 중에는 쿼리가 이전 버전의 딕셔너리를 사용해요. 업데이트 중 오류가 발생하면 오류가 서버 로그에 기록되고, 쿼리는 이전 버전의 딕셔너리를 계속 사용합니다.

지오베이스로 딕셔너리를 주기적으로 업데이트하는 것을 권장해요. 업데이트 중에는 새 파일을 생성해 별도의 위치에 기록하세요. 모든 것이 준비되면 서버가 사용하는 파일로 이름을 바꿔요.

OS 식별자와 검색 엔진 작업을 위한 함수도 있지만, 사용하면 안 돼요.

더 알아보기 (Learn more)