大数据ClickHouse进阶(十六)数据字典创建
#头条创作挑战赛#数据字典创建
一、简单介绍
数据字典是ClickHouse提供一种非常简单、实用的存储媒介,他以键值和属性映射的形式定义数据。字典中的数据会主动或者被动加载到内存并支持动态更新。由于字典数据常驻内存的特性,所以非常适合保存常量或经常使用的维度表数据,以避免不必要的JOIN查询。
数据字典分为内置与扩展两种形式,内置字典是ClickHouse默认自带的字典,外部字典是用户通过自定义配置实现的字典。ClickHouse目前只有一种内置字典:Yandex.Metrica字典,这个字典是ClickHouse自家产品上的字典,设计目的是快速存取地理数据,但是ClickHouse没有将地理数据公布出来,内置字典默认是禁用状态,想要使用内置字典还需要模拟数据然后开启,功能十分有限。在使用ClickHouse 字典时,外部扩展字典才是更加常用的功能。
在正常情况下,字典中的数据只能通过字典函数访问,ClickHouse设置了一类字典函数,专门用于字典数据的取用。我们也可以通过字典表将字典数据挂载到一张代理的数据表下,从而访问字典中的数据,也可以实现数据表与字典数据的join查询。
二、字典创建
在ClickHouse20版本之前创建外部数据字典需要创建大量的xml文件来实现,在ClickHouse20.1版本之后引入了"Create dictionary"语句创建数据字典,创建字典表举例操作如下:
#创建新的库并使用 create database dic_test_db; use dic_test_db; #创建普通MergeTree表,描述地理位置表 CREATE TABLE loc_info( uuid String, local_id UInt64, local_name String )engine=MergeTree() order by uuid; #创建 数据字典表 CREATE DICTIONARY dic_loc_info( local_id UInt64, local_name String )PRIMARY KEY local_id SOURCE(ClickHouse( HOST "node1" PORT 9000 USER "default" TABLE "loc_info" PASSWORD "" DB "dic_test_db" )) LIFETIME (MIN 1 MAX 10) LAYOUT(HASHED()); 注意:以上创建字典表的参数解释如下: HOST:指定ClickHouse节点名称 PORT:指定ClickHouse端口,默认9000 USER:连接ClickHouse用户名 PASSWORD:连接ClickHouse用户名对应密码 TABLE:此字典表映射的表名,字典表中的列名与映射表中列名一致。 DB:字典表映射表所在的库 LIFETIME:字典的自动更新频率 LAYOUT:字典的类型,决定了数据在内存中以何种结构组织和存储。目前扩展字典共拥有7种类型。 #创建普通用户表 CREATE TABLE person_info( person_id String, name String, age UInt8, loc_id UInt64 )engine=MergeTree() order by person_id; #向表loc_info中插入以下数据: insert into loc_info values ("uuid1",100,"北京"),("uuid2",101,"上海"),("uuid3",102,"广州"); #向表 person_info中插入以下数据: insert into person_info values ("1","张三",18,102),("2","李四",19,101),("1","王五",20,100);
抗老最好的方法是什么?37岁带娃老阿姨!找个比自己小6岁的老公,真心讲下我的抗衰护肤理念!告诉咱们抗衰只靠医美的,是要咱把脸往僵王老妖怪上引了说抗衰只靠运动,那也就是基本健康老去的意思真的就这么残忍了?
那些年你追过的cp都有哪些?如何评价?首先谢谢邀请回答!遇见王沥川看完遇见王沥川,掉入沥秋夫妇挖的坑里久久爬不出来!这部剧其实是头条给我推荐的。当时觉得男女主颜值不高,也不想看。但是网友们纷纷在评论下方一直强推。后来我
阿兰德龙在电影之外的生活是怎样的?阿兰德龙1935年生于法国,现如今已经83岁高龄。回忆过往时阿兰德龙感慨万千我这一辈子除了幸福,什么都有了。阿兰德龙是一个让全世界都认可的帅哥。他那英气逼人的侠客外型俊朗的容貌高大
家用车到底是买轿车好还是SUV好?SUV有3个缺点很烦,轿车有3个优点很赞!奉劝购买家用车的人别冲动,盲目跟风,等待自己的只有哀叹和后悔!花着老爸的钱买第一辆车,让我陷入轿车和SUV的选择困难症?就在我犹豫不定的时
开车不加油时脚放在刹车上做准备是安全驾驶最实用的方法,大家同意吗?开车不需要加油门时,把脚放在刹车上做准备看似安全,其实并不值得提倡。在我们日常驾车的时候,如果是手动挡,左脚管离合,右脚管刹车和油门。自动挡车左脚就废了,只需要右脚管油门和刹车就好
孕二十四周如何预防宝宝兔唇?孕二十四周如何预防宝宝兔唇?胎儿兔唇是在孕早期出现的,孕24周主要是通过大排畸检查来排查胎儿是否畸形,其中包括兔唇。所以说,孕24周只能确认胎儿是否兔唇,至于预防还得从备孕开始。0
准备顺产的产妇进入待产室的物品该如何准备,顺产待产包清单有哪些?1婴儿包巾1条这是宝宝出院时用的,在医院时一般有专用的提供。2婴儿衣服1套也是出院时穿的,根据季节选择合适的厚度。3围兜或手口巾2个喝奶时脏了可以用。4奶瓶1个在妈妈没有奶的时候可
宝宝38周出生和40周出生,会有哪些区别?宝宝38周生和40周生,会有哪些区别?我们先来看下怀孕38周胎儿的发育情况这周胎儿体重介于20003000g之间,成长速度逐渐放慢,有的甚至不怎么增长了。胎儿的身体机能基本上完成了
宝宝睡觉突然大哭是怎么回事?宝宝睡觉突然大哭是怎么回事?宝宝睡觉突然大哭多数是生理性因素引起的,可能是饥饿想排便排尿身体不适做噩梦等引起的。也有少数情况是疾病引起的。1。饮食不规律宝宝的生长发育越快,日常所需
患有多囊还可不可以生宝宝,注意什么?多囊全称为多囊卵巢综合征,是内分泌和代谢异常引起的。患者常有高雄激素血症稀发排卵和胰岛素抵抗。主要表现为月经稀发或周期延长多毛肥胖,严重者可引起不孕。患有多囊,还可不可以生宝宝呢?
医生告说是急性心肌梗死,不能转院,但是我想去更好的医院,怎么办?晚上十一点,邓大爷胸闷憋气大汗淋漓,女婿开车,闺女和老伴扶着邓大爷来到医院,医生赶紧做心电图测量血压,一做心电图提示急性前壁心肌梗死,血压15090,马上心电监护,启动胸痛中心,绿