아래 함수가 작동하려면 서버 설정에 모든 내장 딕셔너리를 가져오기 위한 경로와 주소가 지정되어 있어야 합니다. 딕셔너리는 이러한 함수 중 하나를 처음 호출할 때 로드됩니다. 참조 목록을 로드할 수 없으면 예외가 발생합니다.따라서 이 섹션에 나온 예시는 먼저 구성하지 않으면 기본적으로 ClickHouse Fiddle과 quick release 및 production 배포에서 예외를 발생시킵니다.
Multiple Geobases
<path_to_regions_hierarchy_file>/opt/geo/regions_hierarchy.txt</path_to_regions_hierarchy_file>
이 파일 외에도 이름(파일 확장자 앞)에 _ 기호와 임의의 접미사가 붙은 같은 위치의 파일도 검색합니다.
예를 들어 /opt/geo/regions_hierarchy_ua.txt 파일이 있으면 이 파일도 찾습니다. 여기서 ua를 딕셔너리 키라고 합니다. 접미사가 없는 딕셔너리의 키는 빈 문자열입니다.
모든 딕셔너리는 런타임 중 다시 로드됩니다(builtin_dictionaries_reload_interval 구성 매개변수에 정의된 초 단위 간격마다 한 번, 기본값은 1시간에 한 번). 하지만 사용 가능한 딕셔너리 목록은 서버가 시작될 때 한 번만 결정됩니다.
지역을 다루는 모든 함수는 마지막에 선택적 인수를 하나 받을 수 있으며, 이 인수가 딕셔너리 키입니다. 이를 지오베이스라고 합니다.
예시:
regionToName
지역 ID와 지오베이스를 받아 해당 언어의 지역 이름을 문자열로 반환합니다. 지정된 ID를 가진 지역이 존재하지 않으면 빈 문자열을 반환합니다. 구문id— 지오베이스의 지역 ID입니다. UInt32.geobase— 딕셔너리 키입니다. Multiple Geobases를 참조하십시오. String. 선택 사항입니다.
geobase에 지정된 해당 언어의 지역 이름입니다. String.- 그렇지 않으면 빈 문자열입니다.
Query
Response
regionToCity
지오베이스의 Region ID를 인수로 받습니다. 이 Region ID가 도시이거나 도시의 일부이면, 해당 도시의 Region ID를 반환합니다. 그렇지 않으면 0을 반환합니다. 구문id— 지오베이스의 Region ID입니다. UInt32.geobase— 딕셔너리 키입니다. Multiple Geobases를 참조하십시오. String. 선택 사항입니다.
- 해당 도시가 존재하면 그 도시의 Region ID입니다. UInt32.
- 없으면 0입니다.
Query
Response
regionToArea
지역을 area(지오베이스의 유형 5)로 변환합니다. 그 외에는 이 함수는 ‘regionToCity’와 동일합니다. 구문id— 지오베이스의 지역 ID입니다. UInt32.geobase— 딕셔너리 키입니다. Multiple Geobases를 참조하십시오. String. 선택 사항입니다.
- 해당 영역이 있으면 그 지역 ID를 반환합니다. UInt32.
- 없으면 0을 반환합니다.
Query
Response
regionToDistrict
지역을 연방 지구(지오베이스의 유형 4)로 변환합니다. 그 외에는 이 함수는 ‘regionToCity’와 동일합니다. 구문id— 지오베이스의 Region ID입니다. UInt32.geobase— 딕셔너리 키입니다. Multiple Geobases를 참조하십시오. String. 선택 사항입니다.
- 해당 도시가 존재하면 그 도시에 해당하는 Region ID를 반환합니다. UInt32.
- 없으면 0을 반환합니다.
Query
Response
regionToCountry
지역을 국가(지오베이스의 유형 3)로 변환합니다. 그 외에는 이 함수는 ‘regionToCity’와 동일합니다. 구문id— 지오베이스의 Region ID입니다. UInt32.geobase— 딕셔너리 키입니다. Multiple Geobases를 참조하십시오. String. 선택 사항입니다.
- 해당 국가가 있으면 그 국가의 Region ID입니다. UInt32.
- 없으면 0입니다.
Query
Response
regionToContinent
지역을 대륙으로 변환합니다(지오베이스의 유형 1). 그 밖의 모든 면에서 이 함수는 ‘regionToCity’와 동일합니다. 구문id— 지오베이스의 Region ID입니다. UInt32.geobase— 딕셔너리 키입니다. Multiple Geobases를 참조하십시오. String. 선택 사항입니다.
- 해당하는 대륙이 존재하면 그 대륙의 Region ID를 반환합니다. UInt32.
- 존재하지 않으면 0을 반환합니다.
Query
Response
regionToTopContinent
해당 지역이 속한 최상위 대륙을 찾습니다. 구문id— 지오베이스의 지역 ID입니다. UInt32.geobase— 딕셔너리 키입니다. Multiple Geobases를 참조하십시오. String. 선택 사항입니다.
- 최상위 대륙의 식별자입니다(즉, 지역 계층을 따라 위로 올라갔을 때의 대륙). UInt32.
- 없으면 0입니다.
Query
Response
regionToPopulation
지역의 인구를 반환합니다. 인구는 지오베이스가 포함된 파일에 기록될 수 있습니다. “Dictionaries” 섹션을 참조하십시오. 해당 지역의 인구가 기록되어 있지 않으면 0을 반환합니다. 지오베이스에서는 하위 지역의 인구는 기록되어 있지만 상위 지역의 인구는 기록되어 있지 않을 수 있습니다. 구문id— 지오베이스의 Region ID입니다. UInt32.geobase— 딕셔너리 키입니다. Multiple Geobases를 참조하십시오. String. 선택 사항입니다.
- 해당 Region의 인구입니다. UInt32.
- 값이 없으면 0입니다.
Query
Response
regionIn
lhs 지역이 rhs 지역에 속하는지 확인합니다. 속하면 1, 속하지 않으면 0인 UInt8 값을 반환합니다.
구문
lhs— 지오베이스의 좌측 지역 ID입니다. UInt32.rhs— 지오베이스의 우측 지역 ID입니다. UInt32.geobase— 딕셔너리 키입니다. Multiple Geobases를 참조하십시오. String. 선택 사항입니다.
- 속하면 1입니다. UInt8.
- 속하지 않으면 0입니다.
Query
Response
regionHierarchy
UInt32 숫자(지오베이스의 지역 ID)를 받습니다. 전달된 지역과 계층 구조를 따라 상위 지역을 모두 포함하는 지역 ID 배열을 반환합니다. 구문id— 지오베이스의 Region ID입니다. UInt32.geobase— 딕셔너리 키입니다. Multiple Geobases를 참조하십시오. String. 선택 사항입니다.
Query
Response