Clickhouse从入门到入坑(5)

177 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 5 天,点击查看活动详情

生命不息,学习不止

题外话

今天是元宵节啦,看了一眼北京的灯展庙会啥的,全是人,果断选择放弃,等晚上看新闻,有博主说自己半个小时连园区门都没出去,大家的热情真的是高啊,高高的

废话不多说,上货

在这里插入图片描述

特殊数据类型

clickhouse特殊数据类型包含两种,Nullable,Domain(域名)

1.Nullable一般与基本数据类型连用,Nullable更像是声明关键字,被Nullable修饰的基本数据类型允许其为null

举个例子

// 创建一个包含 string类型列 user,元素类型string,允许空值为null 的数据库表 Test
Create Table Test (user Nullable(string)) Engine = AggregatingMergeTree

// 插入一条数据
intsert into Test Values("李三")

// 插入一条空数据
intsert into Test Values(null)

PS:

被Nullable修饰的列无法作为索引字段,同时也无法修饰复合数据类型和其他特殊数据类型

Nullable 会使clickhouse存储表数据是单独生成一个新的文件储存Nullable的信息,占用额外资源

Nullable影响clickhouse性能,慎重使用

2.Domain

顾名思义,域名(Domain)类型包含IPV4,IPV6两种格式,支持校验,非法格式会报错

举个例子

// 创建一个包含 ipv4格式列 domain1 , ipv6格式列 domain2 数据库表 Test
Create Table Test (domain1 IPv4,domain2 IPv6) Engine = AggregatingMergeTree

PS:

IPv4 的底层是Uint32封装而成,IPv6 的底层是FixedString(16) 封装而成,就是前几章提到的定长字符串

IPv4 与 IPv6 不支持直接转换string类型,可调用Pv4NumToString或IPv6NumToString函数进行转换

函数会在后面详细讲解

你以为结束了

下一篇我们继续挖坑

在这里插入图片描述

大家看完发现有什么错误,写在下面吧!跟我黑虎阿福比划比划! 在这里插入图片描述