大数据ClickHouse进阶(十七):数据字典查询和删除

举报
Lansonli 发表于 2022/10/17 08:03:16 2022/10/17
【摘要】 数据字典查询一、元数据查询通过system.dictionaries系统表可以查询扩展字典的元数据信息。查询语句如下:select name,type,key,attribute.names,attribute.types,source from system.dictionaries;注意:以上查询字段的意义如下name:字典的名称,使用字典函数时需要通过字典名称访问数据。type:字典所...

数据字典查询

一、元数据查询

通过system.dictionaries系统表可以查询扩展字典的元数据信息。查询语句如下:

select name,type,key,attribute.names,attribute.types,source from system.dictionaries;


注意:以上查询字段的意义如下

name:字典的名称,使用字典函数时需要通过字典名称访问数据。

type:字典所属类型。

key:字典的key值,数据通过key值定位。

attribute.names:属性名称,以数组形式保存。

attribute.types:属性类型,以数组形式保存。

source:数据源信息。

二、数据查询

字典数据使用时可以通过字典函数获取,如下:“dictGetString”就是字典函数,查询使用字典如下:

#使用dic查询数据
select person_id,name,age,loc_id,dictGetString('dic_test_db.dic_loc_info','local_name',loc_id) as local_name from person_info;


dictGet('字典名称','获取的值','查询的值(参数)'),如果字典类型是复合型key(参照字典类型complex_key_hashed/complex_key_cache)对应字典类型,在使用dicGet时需要使用元组作为参数,例如:dicGetString('字典名称','获取的值',tuple(col1,col2))。

除了dictGetString外,ClickHouse还提供了一系列以dictGet为前缀的字典函数,具体如下:

  • 获取整形数据的函数:

dictGetUInt8,dictGetUInt16,dictGetUInt32,dictGetUInt64,dictGetInt8,dictGetInt16,dictGetInt32,dictGetInt64。

  • 获取浮点数据的函数:

dictGetFloat32,dictGetFloat64

  • 获取日期数据的函数:

dictGetDate,dictGetFloat64

  • 获取字符串数据的函数:

dictGetString,dictGetUUID

我们在使用时,也可以直接使用dictGet(xx)传入对应的参数即可。

三、字典删除

删除字典语法如下:

DROP DICTIONARY dic_name;

#将dic_loc_info删除
node1 :) drop dictionary dic_loc_info;
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。