内部字典
ClickHouse包含用于处理地理数据库的内置功能。
这使您可以:
- 使用区域的ID以所需语言获取其名称。
- 使用区域ID获取城市、地区、联邦区、国家或大陆的ID。
- 检查一个区域是否属于另一个区域。
- 获取父区域链。
所有功能支持 “translocality,” 能够同时使用不同的角度对区域所有权。 有关详细信息,请参阅部分 “Functions for working with Yandex.Metrica dictionaries”.
在默认包中禁用内部字典。
要启用它们,请取消注释参数 path_to_regions_hierarchy_file
和 path_to_regions_names_files
在服务器配置文件中。
Geobase从文本文件加载。
将 regions_hierarchy*.txt
文件到 path_to_regions_hierarchy_file
目录。 此配置参数必须包含指向 regions_hierarchy.txt
文件(默认区域层次结构)和其他文件 (regions_hierarchy_ua.txt
)必须位于同一目录中。
把 regions_names_*.txt
在文件 path_to_regions_names_files
目录。
您也可以自己创建这些文件。 文件格式如下:
regions_hierarchy*.txt
:TabSeparated(无标题),列:
- 地区ID (
UInt32
) - 父区域ID (
UInt32
) - 区域类型 (
UInt8
):1-大陆,3-国家,4-联邦区,5-地区,6-城市;其他类型没有价值 - 人口 (
UInt32
) — optional column
regions_names_*.txt
:TabSeparated(无标题),列:
- 地区ID (
UInt32
) - 地区名称 (
String
) — Can't contain tabs or line feeds, even escaped ones.
平面阵列用于存储在RAM中。 出于这个原因,Id不应该超过一百万。
字典可以在不重新启动服务器的情况下更新。 但是,不会更新可用字典集。
对于更新,将检查文件修改时间。 如果文件已更改,则更新字典。
检查更改的时间间隔在 builtin_dictionaries_reload_interval
参数。
字典更新(首次使用时加载除外)不会阻止查询。 在更新期间,查询使用旧版本的字典。 如果在更新过程中发生错误,则将错误写入服务器日志,并使用旧版本的字典继续查询。
我们建议定期使用geobase更新字典。 在更新期间,生成新文件并将其写入单独的位置。 一切准备就绪后,将其重命名为服务器使用的文件。
还有与操作系统标识符和Yandex的工作功能。Metrica搜索引擎,但他们不应该被使用。