ClickHouse简单入门|青训营笔记

393 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的第9天

安装部署ClickHouse

安装clickhouse主要是安装下面四个包:

  • clickhouse-common-static — ClickHouse编译的二进制文件。
  • clickhouse-server — 创建 clickhouse-server 软连接,并安装默认配置服务
  • clickhouse-client — 创建 clickhouse-client 客户端工具软连接,并安装客户端配置文件。
  • clickhouse-common-static-dbg — 带有调试信息的ClickHouse二进制文件。

官方文档 中有详细的提及 使用 DEB和RPM安装包 在Linux机上的安装,所以这里我来写一下使用 Tgz安装包 来安装部署clickhouse。


1 官网下载

官方稳定版本下载地址 下载稳定版本的clickhouse,下载的包主要有4个,在上面都有提及,版本就选择当前较新的版本,我选择的是 22.3.2.2

clickhouse安装包.png

然后将这些安装包通过 scp命令或者shell工具 传输到远端的Liunx机器上指定目录并进行解压。

2 执行doinst.sh文件

将以上文件都进行解压缩后会发现这些文件夹都有一个install子目录,子目录中是一个doinst.sh文件。

我们要做的就是依次执行这个文件:

./clickhouse-common-static-22.3.2.2/install/doinst.sh

./clickhouse-common-static-dbg-22.3.2.2/install/doinst.sh

./clickhouse-server-22.3.2.2/install/doinst.sh

./clickhouse-client-22.3.2.2/install/doinst.sh

需要注意的是在执行 clickhouse-server 的doinst.sh文件时,会要求你对默认用户default进行密码初始化,如果觉得不需要设置密码可以直接回车。(这里我将密码设置为123456)


使用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

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 SQL 语句ClickHouse引擎 等。