以下の関数を動作させるには、すべての埋め込み Dictionary を取得するためのパスとアドレスをサーバー設定で指定しておく必要があります。これらの Dictionary は、これらの関数のいずれかが最初に呼び出されたときに読み込まれます。参照リストを読み込めない場合は、例外が発生します。そのため、このセクションの例は、事前に設定しない限り、デフォルトでは ClickHouse Fiddle とクイックリリース環境および本番環境のデプロイメントで例外を発生させます。
複数のジオベース
clickhouse-server の設定では、地域階層のファイルを指定します。
<path_to_regions_hierarchy_file>/opt/geo/regions_hierarchy.txt</path_to_regions_hierarchy_file>
このファイルに加えて、同じ場所にあり、ファイル名に _ 記号と任意の接尾辞が付いたファイル (拡張子の前) も検索されます。
たとえば、/opt/geo/regions_hierarchy_ua.txt というファイルが存在すれば、それも検出されます。ここで ua は辞書キーと呼ばれます。接尾辞のない Dictionary では、キーは空文字列です。
すべての Dictionary は実行時に再読み込みされます (builtin_dictionaries_reload_interval 設定パラメータで定義された一定秒数ごと、またはデフォルトでは 1 時間ごと) 。ただし、利用可能な Dictionary の一覧は、サーバーの起動時に一度だけ定義されます。
地域を扱うすべての関数には、末尾に省略可能な引数として辞書キーを指定できます。これを geobase と呼びます。
例:
regionToName
Region ID と geobase を受け取り、対応する言語で地域名を表す文字列を返します。指定した ID の地域が存在しない場合は、空文字列が返されます。 構文geobaseで指定された言語に対応する地域名。String。- それ以外の場合は空文字列。
Query
Response
regionToCity
geobase の地域IDを受け取ります。この地域が都市または都市の一部である場合は、対応する都市の地域IDを返します。それ以外の場合は 0 を返します。 構文- 該当する都市が存在する場合は、その都市の Region ID。UInt32。
- 存在しない場合は 0。
Query
Response
regionToArea
region を area (geobase の type 5) に変換します。その他の点については、この関数は ‘regionToCity’ と同じです。 構文- 該当する地域が存在する場合は、その Region ID。UInt32。
- 存在しない場合は 0。
Query
Response
regionToDistrict
リージョンを連邦管区 (geobase の type 4) に変換します。その他の点では、この関数は ‘regionToCity’ と同じです。 構文- 該当する都市が存在する場合は、その都市の Region ID。UInt32。
- 存在しない場合は 0。
Query
Response
regionToCountry
region を国 (geobase の type 3) に変換します。その他の点については、この関数は ‘regionToCity’ と同じです。 構文- 存在する場合は、該当する国の Region ID。UInt32。
- 存在しない場合は 0。
Query
Response
regionToContinent
リージョンを大陸 (geobase の type 1) に変換します。それ以外は、この関数は ‘regionToCity’ と同じです。 構文- 該当する大陸が存在する場合は、その Region ID。UInt32。
- 存在しない場合は 0。
Query
Response
regionToTopContinent
指定した地域が属する階層の中で最上位の大陸を返します。 構文- 地域階層をさかのぼったときの、最上位の大陸の識別子。UInt32。
- 存在しない場合は 0。
Query
Response
regionToPopulation
地域の人口を取得します。人口は geobase を含むファイルに記録できます。“Dictionaries” のセクションを参照してください。地域の人口が記録されていない場合は、0 を返します。geobase では、子地域には人口が記録されていても、親地域には記録されていないことがあります。 Syntax- そのリージョンの人口。 UInt32。
- 該当するものがない場合は 0。
Query
Response
regionIn
lhs の地域が rhs の地域に属するかどうかを判定します。属する場合は 1、属さない場合は 0 を返します。返り値は UInt8 です。
構文
lhs— geobase 内の lhs の地域 ID。UInt32。rhs— geobase 内の rhs の地域 ID。UInt32。geobase— 辞書キー。複数のジオベースを参照してください。String。省略可能です。
- 属する場合は 1。UInt8。
- 属さない場合は 0。
Query
Response
regionHierarchy
UInt32 の数値 (geobase の地域 ID) を受け取ります。指定した地域と、その階層上のすべての親地域を含む地域 ID の配列を返します。 構文Query
Response