对于使用 DDL 语句 创建的字典,必须完整指定
dict_name 参数,例如 <database>.<dict_name>。否则,将使用当前数据库。示例字典
dictGet\<T\> 和 dictGet\<T\>OrDefault 函数的示例字典
dictGet\<T\> 和 dictGet\<T\>OrDefault 函数的示例字典
dictGetAll 的示例字典
dictGetAll 的示例字典
创建一个表,用于存储正则表达式树字典的数据:向表中插入数据:创建正则表达式树字典:
范围键字典示例
范围键字典示例
创建输入表:将数据插入输入表:创建字典:
复合键字典示例
复合键字典示例
创建源表:将数据插入源表:创建字典:
层级字典示例
层级字典示例
创建源表:将数据插入源表:创建字典:
dictGet
dict_name— 字典名称。Stringattr_names— 字典的列名,或由列名组成的元组。String或Tuple(String)id_expr— 键值。返回 UInt64/Tuple(T) 的表达式。UInt64或Tuple(T)
<null_value> 元素内容。
示例
获取单个属性
Query
Response
Query
Response
dictGetAll
All 数据类型,与字典配置无关。
语法
dict_name— 字典名称。Stringattr_name— 字典的列名。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析该属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetChildren
dict_name— 字典名称。Stringkey— 要检查的键。const String
Array(UInt64)
示例
获取字典的一级子节点
Query
Response
dictGetDate
Date 数据类型。
语法
dict_name— 字典名称。Stringattr_name— 字典的列名。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。Expression或Tuple(T)
id_expr 对应的字典属性值;
否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析属性值,或该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetDateOrDefault
Date 数据类型;如果未找到该键,则返回提供的默认值。
语法
dict_name— 字典名称。Stringattr_name— 字典列名。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。Expression或Tuple(T)default_value_expr— 如果字典中不包含键为id_expr的行,则返回该值。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回通过 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析该属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetDateTime
DateTime 数据类型。
语法
dict_name— 字典名称。Stringattr_name— 字典中的列名。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式 (具体取决于字典配置) 。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回在字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析属性值,或者该值与属性数据类型不匹配,则会抛出异常。
Query
Response
dictGetDateTimeOrDefault
DateTime 数据类型;如果未找到该键,则返回所提供的默认值。
语法
dict_name— 字典名称。Stringattr_name— 字典的列名。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。Expression或Tuple(T)default_value_expr— 如果字典中不包含键为id_expr的行,则返回该值。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回通过 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetDescendants
dictGetChildren 函数递归应用 level 次。
语法
dict_name— 字典名称。Stringkey— 要检查的键。const Stringlevel— 要检查的层级。层级级别。若level = 0,则返回其所有后代,直到末级。UInt8
Array(UInt64)
示例
获取字典的子节点
Query
Response
dictGetFloat32
Float32 数据类型。
语法
dict_name— 字典名称。Stringattr_name— 字典的列名。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式 (具体取决于字典配置) 。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果无法解析该属性的值,或者该值与属性的数据类型不匹配,ClickHouse 会抛出异常。
Query
Response
dictGetFloat32OrDefault
Float32 数据类型,不受字典配置影响;如果未找到键,则返回提供的默认值。
语法
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值 (取决于字典配置) 的表达式。Expression或Tuple(T)default_value_expr— 如果字典中不包含键为id_expr的行,则返回该值。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetFloat64
Float64 数据类型。
语法
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式 (具体取决于字典配置) 。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetFloat64OrDefault
Float64 数据类型,而不受字典配置的影响;如果未找到该键,则返回提供的默认值。
语法
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值 (取决于字典配置) 的表达式。Expression或Tuple(T)default_value_expr— 如果字典中不包含键为id_expr的行,则返回的值。Expression或Tuple(T)
id_expr 对应的字典属性的值,
否则返回通过 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetHierarchy
dict_name— 字典名称。Stringkey— 键值。const String
Array(UInt64)
示例
获取某个键的层级关系
Query
Response
dictGetIPv4
IPv4 数据类型。
语法
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式 (具体取决于字典配置) 。Expression或Tuple(T)
id_expr 对应的字典属性值;
否则返回字典配置中为该属性指定的 <null_value> 元素的内容。
如果 ClickHouse 无法解析属性值,或该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetIPv4OrDefault
IPv4 数据类型;如果未找到该键,则返回所提供的默认值。
语法
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。Expression或Tuple(T)default_value_expr— 如果字典中不包含键为id_expr的行,则返回的值。Expression或Tuple(T)
id_expr 对应的字典属性值;
否则返回通过 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetIPv6
IPv6 数据类型。
语法
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetIPv6OrDefault
IPv6 数据类型;如果未找到键,则返回提供的默认值。
语法
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。Expression或Tuple(T)default_value_expr— 如果字典中不存在键为id_expr的行时返回的值。Expression或Tuple(T)
id_expr 对应的字典属性值;
否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetInt16
Int16 数据类型。
语法
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetInt16OrDefault
Int16 数据类型;如果未找到该键,则返回所提供的默认值。
语法
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式 (具体取决于字典配置) 。Expression或Tuple(T)default_value_expr— 如果字典中不存在键为id_expr的行,则返回该值。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回通过 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetInt32
Int32 数据类型。
语法
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetInt32OrDefault
Int32 数据类型;如果未找到该键,则返回提供的默认值。
语法
dict_name— 字典名称。Stringattr_name— 字典的列名。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值 (取决于字典配置) 的表达式。Expression或Tuple(T)default_value_expr— 如果字典中不包含键为id_expr的行,则返回的值。Expression或Tuple(T)
id_expr 对应的字典属性值;
否则返回通过 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetInt64
Int64 数据类型。
语法
dict_name— 字典名称。Stringattr_name— 字典的列名。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值 (取决于字典配置) 的表达式。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析属性值,或该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetInt64OrDefault
Int64 数据类型;如果未找到键,则返回所提供的默认值。
语法
dict_name— 字典名称。Stringattr_name— 字典的列名。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。Expression或Tuple(T)default_value_expr— 如果字典中不包含键为id_expr的行时返回的值。Expression或Tuple(T)
id_expr 对应的字典属性值;
否则返回通过 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetInt8
Int8 数据类型。
语法
dict_name— 字典名称。Stringattr_name— 字典列名。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值 (取决于字典配置) 的表达式。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetInt8OrDefault
Int8 数据类型;如果未找到键,则返回提供的默认值。
语法
dict_name— 字典名称。Stringattr_name— 字典列名。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值 (取决于字典配置) 的表达式。Expression或Tuple(T)default_value_expr— 如果字典中不包含键为id_expr的行,则返回的值。Expression或Tuple(T)
id_expr 对应的字典属性值;
否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetKeys
dictGet 在单个属性上的逆操作。
使用设置 max_reverse_dictionary_lookup_cache_size_bytes 来限制 dictGetKeys 使用的单次查询反向查找缓存大小。
该缓存会为每个属性值存储序列化后的键 Tuple,以避免在同一查询中重复扫描字典。
该缓存不会在查询之间持久保留。达到限制后,条目会按 LRU 策略被逐出。
当字典较大、输入的基数较低且工作集能够放入缓存时,这种方式效果最佳。设为 0 可禁用缓存。
语法
dict_name— 字典名称。Stringattr_name— 要匹配的属性。Stringvalue_expr— 与该属性进行匹配的值。Expression
value_expr 的键数组。对于多键字典:返回属性值等于 value_expr 的键 Tuple 数组。如果字典中不存在与 value_expr 对应的属性值,则返回空数组。如果 ClickHouse 无法解析属性值,或者该值无法转换为该属性的数据类型,则会抛出异常。
示例
示例用法
Query
Response
dictGetOrDefault
dict_name— 字典名称。Stringattr_names— 字典中的列名,或列名组成的元组。String或Tuple(String)id_expr— 键值。返回 UInt64/Tuple(T) 的表达式。UInt64或Tuple(T)default_value— 如果未找到键则返回的默认值。其类型必须与属性的数据类型匹配。
id_expr 对应的字典属性值。
如果未找到键,则返回提供的 default_value。
示例
获取带默认值的值
Query
Response
dictGetOrNull
dict_name— 字典名称。String 字面量。 -attr_name— 要获取的列名。String 字面量。 -id_expr— 键值。返回字典键类型值的表达式。
id_expr 对应的字典属性值。
如果未找到该键,则返回 NULL。
示例
使用范围键字典的示例
Query
Response
dictGetString
String 数据类型。
语法
dict_name— 字典名称。Stringattr_name— 字典的列名。String或Tuple(String)id_expr— 键值。返回字典键类型值或 Tuple 值 (取决于字典配置) 的表达式。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果无法解析该属性的值,或者该值与属性的数据类型不匹配,ClickHouse 会抛出异常。
Query
Response
dictGetStringOrDefault
String 数据类型;如果未找到键,则返回提供的默认值。
语法
dict_name— 字典名称。Stringattr_name— 字典列名。String或Tuple(String)id_expr— 键值。返回字典键类型值或 Tuple 值 (取决于字典配置) 的表达式。Expression或Tuple(T)default_value_expr— 如果字典中不包含键为id_expr的行时返回的值。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetUInt16
UInt16 数据类型。
语法
dict_name— 字典名称。Stringattr_name— 字典的列名。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值 (取决于字典配置) 的表达式。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetUInt16OrDefault
UInt16 数据类型;如果未找到键,则返回提供的默认值。
语法
dict_name— 字典名称。Stringattr_name— 字典列名。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。Expression或Tuple(T)default_value_expr— 当字典中不存在键为id_expr的行时返回的值。Expression或Tuple(T)
id_expr 对应的字典属性值;
否则,返回通过 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性数据类型不匹配,则会抛出异常。
Query
Response
dictGetUInt32
UInt32 数据类型,而不受字典配置的影响。
语法
dict_name— 字典名称。Stringattr_name— 字典列名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值 (取决于字典配置) 的表达式。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析该属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetUInt32OrDefault
UInt32 数据类型;如果未找到键,则返回所提供的默认值。
语法
dict_name— 字典名称。Stringattr_name— 字典列名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值 (取决于字典配置) 的表达式。Expression或Tuple(T)default_value_expr— 如果字典中不包含键为id_expr的行,则返回的值。Expression或Tuple(T)
id_expr 对应的字典属性值;
否则,返回通过 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetUInt64
UInt64 数据类型。
语法
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值 (具体取决于字典配置) 的表达式。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果无法解析属性值,或者该值与属性的数据类型不匹配,ClickHouse 会抛出异常。
Query
Response
dictGetUInt64OrDefault
UInt64 数据类型;如果未找到键,则返回提供的默认值。
语法
dict_name— 字典名称。Stringattr_name— 字典的列名。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。Expression或Tuple(T)default_value_expr— 如果字典中不包含键为id_expr的行,则返回的值。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetUInt8
UInt8 数据类型。
语法
dict_name— 字典名称。Stringattr_name— 字典列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。Expression或Tuple(T)
id_expr 对应的字典属性值;
否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetUInt8OrDefault
UInt8 数据类型;如果未找到该键,则返回提供的默认值。
语法
dict_name— 字典名称。Stringattr_name— 字典列名。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式 (具体取决于字典配置) 。Expression或Tuple(T)default_value_expr— 如果字典中不包含键为id_expr的行,则返回该值。Expression或Tuple(T)
id_expr 对应的字典属性值;
否则,返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetUUID
UUID 数据类型。
语法
dict_name— 字典名称。Stringattr_name— 字典列名。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值的表达式 (取决于字典配置) 。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回字典配置中为该属性指定的 <null_value> 元素内容。
如果 ClickHouse 无法解析该属性的值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictGetUUIDOrDefault
UUID 数据类型;如果未找到该键,则返回提供的默认值。
语法
dict_name— 字典名称。Stringattr_name— 字典中列的名称。String或Tuple(String)id_expr— 键值。返回字典键类型值或元组值 (取决于字典配置) 的表达式。Expression或Tuple(T)default_value_expr— 如果字典中不存在键为id_expr的行,则返回的值。Expression或Tuple(T)
id_expr 对应的字典属性值,
否则返回作为 default_value_expr 参数传入的值。
如果 ClickHouse 无法解析属性值,或者该值与属性的数据类型不匹配,则会抛出异常。
Query
Response
dictHas
dict_name— 字典名称。Stringid_expr— 键值const String
1;否则返回 0。UInt8
示例
检查字典中是否存在某个键
Query
Response
dictIsIn
dict_name— 字典名称。Stringchild_id_expr— 要检查的键。Stringancestor_id_expr—child_id_expr键的假定祖先键。const String
child_id_expr 不是 ancestor_id_expr 的子级,则返回 0;如果 child_id_expr 是 ancestor_id_expr 的子级,或者 child_id_expr 本身就是 ancestor_id_expr,则返回 1。UInt8
示例
检查层级关系
Query
Response