跳转到主内容
跳转到主内容

system.dictionaries

在 ClickHouse Cloud 中进行查询

该系统表中的数据保存在 ClickHouse Cloud 中每个节点的本地。因此,如需获得所有数据的完整视图,需要使用 clusterAllReplicas 函数。更多详情请参阅此处

包含有关 字典 的信息。

列:

  • database (String) — 通过 DDL 查询创建该字典所在数据库的名称。对于其他字典,为空字符串。
  • name (String) — 字典名称。
  • uuid (UUID) — 字典的 UUID。
  • status (Enum8('NOT_LOADED' = 0, 'LOADED' = 1, 'FAILED' = 2, 'LOADING' = 3, 'FAILED_AND_RELOADING' = 4, 'LOADED_AND_RELOADING' = 5, 'NOT_EXIST' = 6)) — 字典状态。可能的取值:
    • NOT_LOADED — 字典未被加载,因为尚未使用
    • LOADED — 字典已成功加载
    • FAILED — 由于错误导致无法加载字典
    • LOADING — 字典正在加载
    • LOADED_AND_RELOADING — 字典已成功加载
    • and is being reloaded right now (frequent reasons: SYSTEM RELOAD DICTIONARY query — 并且正在重新加载(常见原因:SYSTEM RELOAD DICTIONARY 查询
    • timeout — 超时
    • dictionary config has changed) — 字典配置已更改)
    • FAILED_AND_RELOADING — 由于错误导致无法加载字典,目前正在重新加载。
  • origin (String) — 描述该字典的配置文件路径。
  • type (String) — 字典分配的类型。将字典存储在内存中。
  • key.names (Array(String)) — 字典提供的键名称数组。
  • key.types (Array(String)) — 与字典提供的键名称对应的键类型数组。
  • attribute.names (Array(String)) — 字典提供的属性名称数组。
  • attribute.types (Array(String)) — 与字典提供的属性名称对应的属性类型数组。
  • bytes_allocated (UInt64) — 为该字典分配的 RAM 数量。
  • hierarchical_index_bytes_allocated (UInt64) — 为分层索引分配的 RAM 数量。
  • query_count (UInt64) — 自字典加载或上次成功重新加载以来的查询次数。
  • hit_rate (Float64) — 对于缓存字典,使用中命中缓存的百分比。
  • found_rate (Float64) — 使用中成功找到值的百分比。
  • element_count (UInt64) — 字典中存储的条目数量。
  • load_factor (Float64) — 字典的填充百分比(对于哈希字典,即哈希表的填充百分比)。
  • source (String) — 描述字典数据源的文本。
  • lifetime_min (UInt64) — 字典在内存中的最小生命周期,超过该时间后 ClickHouse 会尝试重新加载字典(如果设置了 invalidate_query,则仅在其发生变化时)。单位为秒。
  • lifetime_max (UInt64) — 字典在内存中的最大生命周期,超过该时间后 ClickHouse 会尝试重新加载字典(如果设置了 invalidate_query,则仅在其发生变化时)。单位为秒。
  • loading_start_time (DateTime) — 加载字典的开始时间。
  • last_successful_update_time (DateTime) — 加载或更新字典的结束时间。用于监控字典数据源相关问题并排查原因。
  • error_count (UInt64) — 自上次成功加载以来的错误次数。用于监控字典数据源相关问题并排查原因。
  • and is being reloaded right now (frequent reasons: SYSTEM RELOAD DICTIONARY query — 并且正在重新加载(常见原因:SYSTEM RELOAD DICTIONARY 查询
  • timeout — 超时
  • dictionary config has changed) — 字典配置已更改)
  • loading_duration (Float32) — 字典加载的持续时间。
  • last_exception (String) — 在创建或重新加载字典时,如果无法创建字典,所发生错误的信息文本。
  • comment (String) — 字典的注释文本。

示例

配置字典:

CREATE DICTIONARY dictionary_with_comment
(
    id UInt64,
    value String
)
PRIMARY KEY id
SOURCE(CLICKHOUSE(HOST 'localhost' PORT tcpPort() TABLE 'source_table'))
LAYOUT(FLAT())
LIFETIME(MIN 0 MAX 1000)
COMMENT 'The temporary dictionary';

确保字典已加载。

SELECT * FROM system.dictionaries LIMIT 1 FORMAT Vertical;
Row 1:
──────
database:                    default
name:                        dictionary_with_comment
uuid:                        4654d460-0d03-433a-8654-d4600d03d33a
status:                      NOT_LOADED
origin:                      4654d460-0d03-433a-8654-d4600d03d33a
type:
key.names:                   ['id']
key.types:                   ['UInt64']
attribute.names:             ['value']
attribute.types:             ['String']
bytes_allocated:             0
query_count:                 0
hit_rate:                    0
found_rate:                  0
element_count:               0
load_factor:                 0
source:
lifetime_min:                0
lifetime_max:                0
loading_start_time:          1970-01-01 00:00:00
last_successful_update_time: 1970-01-01 00:00:00
loading_duration:            0
last_exception:
comment:                     The temporary dictionary