Pour que les fonctions ci-dessous puissent fonctionner, la configuration du serveur doit spécifier les chemins et les adresses permettant d’obtenir tous les dictionnaires intégrés. Les dictionnaires sont chargés lors du premier appel à l’une de ces fonctions. Si les listes de référence ne peuvent pas être chargées, une exception est levée.Par conséquent, les exemples présentés dans cette section lèveront une exception dans ClickHouse Fiddle, ainsi que dans les déploiements quick release et de production par défaut, sauf configuration préalable.
Géobases multiples
<path_to_regions_hierarchy_file>/opt/geo/regions_hierarchy.txt</path_to_regions_hierarchy_file>
En plus de ce fichier, il recherche également les fichiers voisins dont le nom comporte le symbole _ suivi d’un suffixe quelconque (avant l’extension du fichier).
Par exemple, il trouvera aussi le fichier /opt/geo/regions_hierarchy_ua.txt, s’il est présent. Ici, ua est appelé la clé du dictionnaire. Pour un dictionnaire sans suffixe, la clé est une chaîne vide.
Tous les dictionnaires sont rechargés en cours d’exécution (à intervalles réguliers, selon le nombre de secondes défini dans le paramètre de config builtin_dictionaries_reload_interval, ou une fois par heure par défaut). Cependant, la liste des dictionnaires disponibles n’est définie qu’une seule fois, au démarrage du serveur.
Toutes les fonctions permettant de manipuler les régions ont un argument facultatif à la fin : la clé du dictionnaire. C’est ce qu’on appelle la géobase.
Exemple :
regionToName
Prend un ID de région et une geobase, et renvoie une chaîne contenant le nom de la région dans la langue correspondante. Si la région correspondant à l’ID spécifié n’existe pas, une chaîne vide est renvoyée. Syntaxeid— ID de la région dans la geobase. UInt32.geobase— Clé du dictionnaire. Voir Multiple Geobases. String. Facultatif.
- Nom de la région dans la langue correspondante indiquée par
geobase. String. - Sinon, une chaîne vide.
Query
Response
regionToCity
Accepte un identifiant de région provenant de la geobase. Si cette région est une ville ou une partie de ville, la fonction renvoie l’identifiant de région de la ville correspondante. Sinon, elle renvoie 0. Syntaxeid— ID de région issu de la geobase. UInt32.geobase— Clé de dictionnaire. Voir Bases géographiques multiples. String. Facultatif.
- ID de région de la ville correspondante, si elle existe. UInt32.
- 0, s’il n’en existe pas.
Query
Response
regionToArea
Convertit une région en aire (type 5 dans la geobase). Pour le reste, cette fonction est identique à ‘regionToCity’. Syntaxeid— ID de région issu de la geobase. UInt32.geobase— Clé de dictionnaire. Voir Géobases multiples. String. Facultatif.
- ID de région pour la zone correspondante, si elle existe. UInt32.
- 0, s’il n’en existe pas.
Query
Response
regionToDistrict
Convertit une région en district fédéral (type 4 dans la geobase). Pour le reste, cette fonction est identique à ‘regionToCity’. Syntaxeid— ID de région issu de la geobase. UInt32.geobase— Clé de dictionnaire. Voir Multiple Geobases. String. Facultatif.
- ID de région de la ville correspondante, si elle existe. UInt32.
- 0, si aucune ne correspond.
Query
Response
regionToCountry
Convertit une région en un pays (type 3 dans la geobase). Par ailleurs, cette fonction est identique à ‘regionToCity’. Syntaxeid— ID de région issu de la geobase. UInt32.geobase— Clé de dictionnaire. Voir Bases géographiques multiples. String. Facultatif.
- ID de région du pays correspondant, s’il existe. UInt32.
- 0, s’il n’existe pas.
Query
Response
regionToContinent
Convertit une région en un continent (type 1 dans la geobase). Pour le reste, cette fonction est identique à ‘regionToCity’. Syntaxeid— ID de région issu de la geobase. UInt32.geobase— Clé du dictionnaire. Voir Géobases multiples. String. Facultatif.
- ID de région du continent correspondant, s’il existe. UInt32.
- 0 dans le cas contraire.
Query
Response
regionToTopContinent
Renvoie le continent situé au niveau le plus élevé de la hiérarchie pour la région. Syntaxeid— ID de région de la geobase. UInt32.geobase— Clé de dictionnaire. Voir Geobases multiples. String. Facultatif.
- Identifiant du continent de niveau supérieur (obtenu en remontant la hiérarchie des régions). UInt32.
- 0, s’il n’y en a pas.
Query
Response
regionToPopulation
Renvoie la population d’une région. La population peut être enregistrée dans des fichiers avec la geobase. Voir la section “Dictionaries”. Si la population n’est pas enregistrée pour la région, la fonction renvoie 0. Dans la geobase, la population peut être renseignée pour des régions enfants, mais pas pour des régions parentes. Syntaxeid— ID de région de la geobase. UInt32.geobase— Clé du dictionnaire. Voir Multiple Geobases. String. Facultatif.
- Population de la région. UInt32.
- 0, s’il n’y en a pas.
Query
Response
regionIn
Vérifie si une régionlhs fait partie d’une région rhs. Renvoie un nombre UInt8 égal à 1 si c’est le cas, ou à 0 sinon.
Syntaxe
lhs— ID de régionlhsde la geobase. UInt32.rhs— ID de régionrhsde la geobase. UInt32.geobase— Clé de dictionnaire. Voir Bases géographiques multiples. String. Facultatif.
- 1, si elle en fait partie. UInt8.
- 0, si elle n’en fait pas partie.
Query
Response
regionHierarchy
Accepte un UInt32 correspondant à l’ID de région de la geobase. Renvoie un tableau d’ID de région comprenant la région transmise et tous ses parents dans la chaîne. Syntaxeid— ID de région provenant de la geobase. UInt32.geobase— Clé de dictionnaire. Voir Multiple Geobases. String. Facultatif.
- Array d’ID de région comprenant la région fournie et toutes les régions parentes de la hiérarchie. Array(UInt32).
Query
Response