YAMLRegExpTree 字典源
Not supported in ClickHouse Cloud
YAMLRegExpTree 源会从本地文件系统中的 YAML 文件加载一个正则表达式树。
它专门用于与 regexp_tree 字典布局配合使用,
并为基于模式的查找(例如 User-Agent 解析)提供分层的正则表达式到属性的映射。
注意
YAMLRegExpTree 源仅在 ClickHouse 开源版本中可用。
对于 ClickHouse Cloud,请先将字典导出为 CSV,然后通过 ClickHouse table source 加载。
详情参见 在 ClickHouse Cloud 中使用 regexp_tree 字典。
配置
设置字段:
| Setting | Description |
|---|---|
PATH | 指向包含正则表达式树的 YAML 文件的绝对路径。在通过 DDL 创建时,该文件必须位于 user_files 目录中。 |
YAML 文件结构
YAML 文件包含一个正则表达式树的节点列表。每个节点都可以具有属性和子节点,从而形成一个层级结构:
每个节点具有以下结构:
regexp:该节点对应的正则表达式。- attributes:用户自定义的字典属性(例如
name、version)。属性值可以包含对正则表达式中捕获组的反向引用,写作\1或$1(数字 1-9)。这些引用会在查询时被替换为相应的匹配捕获组。 - child nodes:子节点列表,每个子节点都有自己的属性,并且可以选择包含更多子节点。子节点列表的名称是任意的(例如上面的
versions)。字符串匹配以深度优先的方式进行:如果某个字符串匹配到某个节点,其子节点也会被检查。最深层匹配节点的属性优先级最高,会覆盖同名的父节点属性。
相关页面
- regexp_tree 字典布局 — 布局配置、查询示例和匹配模式
- dictGet, dictGetAll — 用于查询 regexp_tree 字典的函数