这是我参与「第五届青训营 」伴学笔记创作活动的第 16 天
ClickHouse中的数据类型
整型
clickhouse不像其他数据库分为byte、short、int、long,而是统一的使用 int+数字 来代表不同范围的整型
- int8 —— 范围[-128, 127]
- int16 —— 范围[-32768, 32767]
- int32 —— 范围[-2147483648, 2147483647]
- int64 —— 范围[-263, 263-1]
还有无符号整型:
- Unit8 —— 范围[0, 28 - 1]
- Unit16 —— 范围[0, 216 - 1]
- Unit32 —— 范围[0, 232 - 1]
- Unit64 —— 范围[0, 264 - 1]
布尔类型
clickhouse中并没有使用true和false,而是直接使用Unit8
浮点型
- Float32 —— float
- Float64 —— double
这种浮点型精度是会有丢失的,不适合要求高精度的场景。
Decimal类型
有符号的浮点类型,在加减乘的情况下可以保持精度,对于除法会将最低有效数字进行丢弃。Decimal有三种范围可选择:
- Decimal32
- Decimal64
- Decimal128
其中Decimal128在目前的CPU中并没有支持,因此是采用软件进行的模拟,一般不要使用Decimal128.
字符类型
clickhouse直接使用 String 来简化字符类型的声明,可表示任意长度的字符串、可以包含任意的字符集和空字节。
还有一个 FixedString(N) 来规定固定长度的字符串,例如存储手机号码、IP地址之类定长的数据。
枚举类型
- Enum8
- Enum16
Enum保存 'String'=Integer的对应类型。
时间类型
- Data —— 格式 年-月-日
- Datatime —— 格式 年-月-日 时:分:秒
- Datatime64 —— 格式 年-月-日 时:分:秒.毫秒
可空类型
绝大部分的基础类型前可添加一个 Nullable() 来表示该属性可接受空值,例如Nullable(Int8)。
使用ClickHouse
1 启动ClickHouse
clickhouse start
复制代码
2 使用客户端
clickhouse-client -u default --password 123456
# 如果没有设置密码可以直接使用下面的命令进行连接
clickhouse-client
复制代码
3 开启允许远程访问
# 修改服务端配置文件
vim /etc/clickhouse-server/config.xml
复制代码
将被注释的listen_host标签放开
<listen_host>::</listen_host>
复制代码
然后重启clickhouse服务
clickhouse restart
复制代码