tencent cloud

腾讯云数据仓库 TCHouse-C

产品动态
产品简介
产品概述
基本概念
集群架构
产品优势
应用场景
购买指南
计费概述
到期与欠费说明
退费说明
配置变更计费说明
快速入门
操作指南
管理集群
参数配置
监控告警
冷热分层
账户与授权
查询管理
日志检索
数据字典
备份与恢复
多 Zookeeper
外部数据入仓
配置 DDL on Cluster 功能
数据重分布
缩容迁移
开发指南
数据库引擎
表引擎
ClickHouse SQL 语法参考
ClickHouse 客户端介绍
ClickHouse 自建迁移方案
服务等级协议
CDWCH 政策
隐私政策
数据隐私和安全协议
常见问题
联系我们
词汇表

数据字典

PDF
聚焦模式
字号
最后更新时间: 2025-03-31 14:55:26

功能介绍

数据字典包括内置字典(ClickHouse 官方文档)和外部字典(ClickHouse 官方文档),其中内置字典为 ClickHouse 预定义字典内容,而外部字典提供多种灵活的外部数据源定义。ClickHouse 支持一些特殊函数配合字典在查询中使用,将字典与函数结合使用比将 JOIN 操作与引用表结合使用更简单、更有效。本文为您介绍通过控制台对外部字典进行的操作。

注意事项

1. 通过控制台方式维护的数据字典会在全部 ClickHouse 节点生效。
2. 通过控制台方式新增的数据字典,只支持通过控制台进行维护(包括修改,删除等操作)。
3. 通过其他方式,如 SQL 命令等后台方式新增的数据字典,不支持通过控制台进行维护(包括修改,删除等操作)。
4. 通过控制台新建成功的字典表会默认添加到云数据仓库的全局库 cdwch_{instanceId}_dictionary_database中。
注意:
严禁通过控制台及其他方式(如SQL命令等后台方式)交叉维护同一个字典,否则会造成内容覆盖或丢失(如意外删除等)。

控制台操作步骤

1. 登录 腾讯云数据仓库 TCHouse-C 控制台,在集群列表中选择对应的集群,在集群详情页面单击数据字典页面。
2. 可在当前页面查看已有的外部字典列表


3. 可以单击左上角新增字典创建新的外部字典,根据提示填写字典的各项信息,单击确认提交外部字典创建申请。
参数项
描述
参考文档
字典名称
自定义外部字典名称。由小写字母、数字和下划线组成,以字母开头,以字母或数字结尾,字数为2-16个字符。
-
数据源
选择外部字典的数据来源类型,目前腾讯云数据仓库 TCHouse-C 控制台可选择的数据源为:MySQL ClickHouse
数据源连接
配置数据源信息,支持验证配置的外部源连通性。配置项包括:

HOST:支持IP或域名,目前只支持通过私有网络连接
TCP PORT:TCP协议端口
USER:外部源的账号
PASSWORD:外部源账号的密码
-
源表信息
选择依赖的外部源的库、表,以及填写源配置项WHERE(表过滤条件)和INVALIDATEQUERY(查询检查字典状态,仅提取更新的数据)
数据结构
设置外部字典的主键字段和普通字段,包括:

PRIMARY_KEY:选择主键字段,支持单主键或复合主键
COLUME_NAME:字段名称TYPE:字段类型。目前控制台支持选择的字段类型包括 UInt8UInt16UInt32UInt64Int8Int16Int32Int64Float32Float64DateDateTimeUUIDString
DEFAULT_VALUE:字段空数据时的默认值
EXPRESSION:表达式,描述字段(如果适用)
IS_HIERARCHICAL:层次结构支持的指示,默认值:falseI
S_INJECTIVE:指示内射映射“id -> 属性”,默认值:false
存储格式
选择外部字典的内存布局类型,包括:

FLAT:整个字典以平面数组的形式存储在内存中,适用单主键
HASHED:整个字典以哈希表的形式存储在内存中,适用单主键
RANGE_HASHED:整个字典以哈希表的形式存储在内存中,有一个有序的范围数组及其对应的值,适用单主键,需设置表示范围的字段
CACHE:字典存储在具有一定数量单元格的缓存中,适用单主键。需设置缓存大小
COMPLEX_KEY_HASHED:类似于 HASHED,适用复合主键
COMPLEX_KEY_CACHE:类似于 CACHE,适用复合主键。需设置缓存大小
更新周期
字典中数据的更新频率,单位:秒
-
4. 创建完成后的外部字典,可在列表中进行查看、修改、删除等操作。

SQL 方式管理外部字典

1. 创建字典。
CREATE DICTIONARY [IF NOT EXISTS] [db.]dictionary_name [ON CLUSTER cluster]
(
key1 type1 [DEFAULT|EXPRESSION expr1] [IS_OBJECT_ID],
key2 type2 [DEFAULT|EXPRESSION expr2],
attr1 type2 [DEFAULT|EXPRESSION expr3] [HIERARCHICAL|INJECTIVE],
attr2 type2 [DEFAULT|EXPRESSION expr4] [HIERARCHICAL|INJECTIVE]
)
PRIMARY KEY key1, key2
SOURCE(SOURCE_NAME([param1 value1 ... paramN valueN]))
LAYOUT(LAYOUT_NAME([param_name param_value])``)
LIFETIME({MIN min_val MAX max_val | max_val})
2. 查看字典。
SELECT * FROM system.dictionaries
3. 删除字典。
DROP DICTIONARY <database name>.<dictionary name>
更多字典 SQL 的说明:ClickHouse 官方文档

外部字典使用

有些类型的字典可使用普通的SELECT查询,如:
SELECT * FROM <database name>.<dictionary name>
也可以使用字典函数进行查询,如:
dictGet('dict_name', attr_names, id_expr)
dictGetOrDefault('dict_name', attr_names, id_expr, default_value_expr)
dictGetOrNull('dict_name', attr_name, id_expr)
更多字典函数使用说明:ClickHouse 官方文档

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈