Para que las funciones siguientes funcionen, la configuración del servidor debe especificar las rutas y direcciones necesarias para obtener todos los diccionarios integrados. Los diccionarios se cargan en la primera llamada a cualquiera de estas funciones. Si no se pueden cargar las listas de referencia, se produce una excepción.Por lo tanto, los ejemplos que se muestran en esta sección producirán una excepción en ClickHouse Fiddle y en los despliegues quick release y de producción de forma predeterminada, a menos que se hayan configurado previamente.
Múltiples geobases
clickhouse-server especifica el archivo con la jerarquía regional:
<path_to_regions_hierarchy_file>/opt/geo/regions_hierarchy.txt</path_to_regions_hierarchy_file>
Además de este archivo, también busca archivos cercanos que tengan el símbolo _ y cualquier sufijo añadido al nombre (antes de la extensión del archivo).
Por ejemplo, también encontrará el archivo /opt/geo/regions_hierarchy_ua.txt, si existe. Aquí, ua se denomina la clave del diccionario. En el caso de un diccionario sin sufijo, la clave es una cadena vacía.
Todos los diccionarios se recargan durante el tiempo de ejecución (cada cierto número de segundos, según se define en el parámetro de configuración builtin_dictionaries_reload_interval, o una vez por hora de forma predeterminada). Sin embargo, la lista de diccionarios disponibles se define una sola vez, cuando se inicia el servidor.
Todas las funciones para trabajar con regiones tienen un argumento opcional al final: la clave del diccionario. A esto se le llama la geobase.
Ejemplo:
regionToName
Acepta un ID de región y geobase, y devuelve una cadena con el nombre de la región en el idioma correspondiente. Si no existe una región con el ID especificado, se devuelve una cadena vacía. Sintaxisid— ID de la región de la geobase. UInt32.geobase— Clave del diccionario. Consulte Múltiples geobases. String. Opcional.
- Nombre de la región en el idioma correspondiente indicado por
geobase. String. - De lo contrario, una cadena vacía.
Query
Response
regionToCity
Acepta un ID de región de la geobase. Si esta región es una ciudad o parte de una ciudad, devuelve el ID de región de la ciudad correspondiente. En caso contrario, devuelve 0. Sintaxisid— ID de la región de la geobase. UInt32.geobase— Clave del diccionario. Consulte Múltiples geobases. String. Opcional.
- ID de la región de la ciudad correspondiente, si existe. UInt32.
- 0, si no existe.
Query
Response
regionToArea
Convierte una región en un área (tipo 5 en la geobase). En todos los demás aspectos, esta función es igual que ‘regionToCity’. Sintaxisid— ID de la región de la geobase. UInt32.geobase— Clave del diccionario. Consulte Múltiples geobases. String. Opcional.
- ID de la región del área correspondiente, si existe. UInt32.
- 0 si no existe.
Query
Response
regionToDistrict
Convierte una región en un distrito federal (tipo 4 en la geobase). Por lo demás, esta función es igual que ‘regionToCity’. Sintaxisid— ID de la región de la geobase. UInt32.geobase— Clave del diccionario. Consulta Múltiples geobases. String. Opcional.
- ID de la región de la ciudad correspondiente, si existe. UInt32.
- 0, si no existe ninguna.
Query
Response
regionToCountry
Convierte una región en un país (tipo 3 de la geobase). Por lo demás, esta función es igual que ‘regionToCity’. Sintaxisid— ID de la región de la geobase. UInt32.geobase— Clave del diccionario. Consulte Múltiples geobases. String. Opcional.
- ID de la región del país correspondiente, si existe. UInt32.
- 0, si no existe.
Query
Response
regionToContinent
Convierte una región en un continente (tipo 1 de la geobase). En todo lo demás, esta función es igual que ‘regionToCity’. Sintaxisid— ID de la región de la geobase. UInt32.geobase— Clave del diccionario. Véase Múltiples geobases. String. Opcional.
- ID de la región del continente correspondiente, si existe. UInt32.
- 0, si no existe.
Query
Response
regionToTopContinent
Devuelve el continente de nivel superior en la jerarquía para la región. Sintaxisid— ID de la región de la geobase. UInt32.geobase— Clave del diccionario. Consulte Múltiples Geobases. String. Opcional.
- Identificador del continente de nivel superior (al subir por la jerarquía de regiones).UInt32.
- 0, si no existe ninguno.
Query
Response
regionToPopulation
Obtiene la población de una región. La población puede estar registrada en archivos de geobase. Consulte la sección “Diccionarios”. Si la población no está registrada para la región, devuelve 0. En la geobase, la población puede estar registrada para regiones subordinadas, pero no para las regiones superiores. Sintaxisid— ID de la región de la geobase. UInt32.geobase— Clave del diccionario. Consulte Múltiples geobases. String. Opcional.
- Población de la región. UInt32.
- 0, si no existe.
Query
Response
regionIn
Comprueba si una regiónlhs pertenece a una región rhs. Devuelve un valor UInt8 igual a 1 si pertenece, o 0 si no.
Sintaxis
lhs— ID de región delhsde la geobase. UInt32.rhs— ID de región derhsde la geobase. UInt32.geobase— Clave del diccionario. Consulte Múltiples geobases. String. Opcional.
- 1, si pertenece. UInt8.
- 0, si no pertenece.
Query
Response
regionHierarchy
Acepta un número UInt32: el ID de región de la geobase. Devuelve un array de ID de región que incluye la región proporcionada y todas sus regiones padre en la jerarquía. Sintaxisid— ID de región de la geobase. UInt32.geobase— Clave del diccionario. Consulte Múltiples geobases. String. Opcional.
- Array de ID de región que consta de la región proporcionada y de todos sus padres en la cadena. Array(UInt32).
Query
Response