tencent cloud

文档反馈

数据字典

最后更新时间:2024-01-19 16:45:30

    功能介绍

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

    注意事项

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

    控制台操作步骤

    1. 登录 CDWCH 控制台,在集群列表中选择对应的集群,在集群详情页面单击数据字典页面。
    2. 可在当前页面查看已有的外部字典列表
    
    3. 可以单击左上角新增字典创建新的外部字典,根据提示填写字典的各项信息,单击确认提交外部字典创建申请。
    参数项
    描述
    参考文档
    字典名称
    自定义外部字典名称。由小写字母、数字和下划线组成,以字母开头,以字母或数字结尾,字数为2-16个字符。
    -
    数据源
    选择外部字典的数据来源类型,目前CDWCH控制台可选择的数据源为:MySQLClickHouse
    数据源连接
    配置数据源信息,支持验证配置的外部源连通性。配置项包括:
    
    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,适用复合主键。需设置缓存大小
    更新周期
    字典中数据的更新频率,单位:秒
    3. 创建完成后的外部字典,可在列表中进行查看、修改、删除等操作。

    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 官方文档
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持