Para que as funções abaixo funcionem, a configuração do servidor deve especificar os caminhos e endereços usados para obter todos os dicionários incorporados. Os dicionários são carregados na primeira chamada de qualquer uma dessas funções. Se as listas de referência não puderem ser carregadas, será gerada uma exceção.Por isso, os exemplos mostrados nesta seção gerarão uma exceção no ClickHouse Fiddle e, por padrão, em implantações quick release e de produção, a menos que sejam previamente configurados.
Múltiplas geobases
<path_to_regions_hierarchy_file>/opt/geo/regions_hierarchy.txt</path_to_regions_hierarchy_file>
Além desse arquivo, ele também procura arquivos próximos que tenham o símbolo _ e qualquer sufixo anexado ao nome (antes da extensão do arquivo).
Por exemplo, ele também encontrará o arquivo /opt/geo/regions_hierarchy_ua.txt, se estiver presente. Aqui, ua é chamado de chave do dicionário. Para um dicionário sem sufixo, a chave é uma string vazia.
Todos os dicionários são recarregados em tempo de execução (uma vez a cada certo número de segundos, conforme definido no parâmetro de configuração builtin_dictionaries_reload_interval, ou uma vez por hora, por padrão). No entanto, a lista de dicionários disponíveis é definida apenas uma vez, quando o servidor é iniciado.
Todas as funções para trabalhar com regiões têm um argumento opcional no final — a chave do dicionário. Ela é chamada de geobase.
Exemplo:
regionToName
Aceita um ID de região e a geobase e retorna uma string com o nome da região no idioma correspondente. Se a região com o ID especificado não existir, será retornada uma string vazia. Sintaxeid— ID da região na geobase. UInt32.geobase— Chave do Dicionário. Consulte Múltiplas geobases. String. Opcional.
- Nome da região no idioma correspondente especificado por
geobase. String. - Caso contrário, uma string vazia.
Query
Response
regionToCity
Aceita um ID de região da geobase. Se essa região for uma cidade ou parte de uma cidade, retorna o ID da região correspondente à cidade. Caso contrário, retorna 0. Sintaxeid— ID da região da geobase. UInt32.geobase— Chave do dicionário. Consulte Múltiplas geobases. String. Opcional.
- ID da região da cidade correspondente, se existir. UInt32.
- 0, caso não exista.
Query
Response
regionToArea
Converte uma região em uma área (tipo 5 na geobase). Em todos os demais aspectos, esta função é igual a ‘regionToCity’. Sintaxeid— ID da região na geobase. UInt32.geobase— chave do dicionário. Consulte Múltiplas geobases. String. Opcional.
- ID da região da área correspondente, se existir. UInt32.
- 0, se não houver.
Query
Response
regionToDistrict
Converte uma região em um distrito federal (tipo 4 na geobase). Nos demais aspectos, esta função é igual a ‘regionToCity’. Sintaxeid— ID da região na geobase. UInt32.geobase— Chave do dicionário. Veja Múltiplas geobases. String. Opcional.
- ID da região da cidade correspondente, se existir. UInt32.
- 0, se não existir.
Query
Response
regionToCountry
Converte uma região em um país (tipo 3 na geobase). Em todos os demais aspectos, esta função é igual a ‘regionToCity’. Sintaxeid— ID da região da geobase. UInt32.geobase— Chave do Dicionário. Consulte Múltiplas geobases. String. Opcional.
- ID da região do país correspondente, se existir. UInt32.
- 0, se não houver.
Query
Response
regionToContinent
Converte uma região em um continente (tipo 1 na geobase). Em todos os demais aspectos, esta função é igual a ‘regionToCity’. Sintaxeid— ID da região da geobase. UInt32.geobase— chave do dicionário. Consulte Múltiplas geobases. String. Opcional.
- ID da região do continente correspondente, se existir. UInt32.
- 0, se não houver.
Query
Response
regionToTopContinent
Encontra o continente de nível mais alto na hierarquia da região. Sintaxeid— ID da região da geobase. UInt32.geobase— chave do Dicionário. Consulte Múltiplas geobases. String. Opcional.
- Identificador do continente de nível mais alto (o último ao subir na hierarquia de regiões). UInt32.
- 0, se não houver.
Query
Response
regionToPopulation
Obtém a população de uma região. A população pode estar registrada em arquivos da geobase. Consulte a seção “Dicionários”. Se a população não estiver registrada para a região, retorna 0. Na geobase, a população pode estar registrada para regiões filhas, mas não para a região pai. Sintaxeid— ID da região da geobase. UInt32.geobase— Chave do dicionário. Consulte Múltiplas geobases. String. Opcional.
- População da região. UInt32.
- 0, caso não exista.
Query
Response
regionIn
Verifica se uma regiãolhs pertence à região rhs. Retorna um número UInt8 igual a 1 se pertencer, ou 0 se não pertencer.
Sintaxe
lhs— ID da regiãolhsda geobase. UInt32.rhs— ID da regiãorhsda geobase. UInt32.geobase— Chave do Dicionário. Consulte Múltiplas geobases. String. Opcional.
- 1, se pertencer. UInt8.
- 0, se não pertencer.
Query
Response
regionHierarchy
Aceita um número UInt32 — o ID da região na geobase. Retorna um array de IDs de região composto pela região informada e por todas as regiões pai na hierarquia. Sintaxeid— ID da região na geobase. UInt32.geobase— Chave do dicionário. Consulte Múltiplas Geobases. String. Opcional.
- Array de IDs de região composto pela região informada e por todas as regiões pai ao longo da cadeia. Array(UInt32).
Query
Response