ClickHouse是由俄罗斯搜索引擎Yandex开源的列式数据库管理系统,定位是分析性数据库。它适合聚合计算,写入速度非常快,不支持事务,不存在隔离级别,不支持高并发。此外,建议1000条以上批量的写入,不建议单条记录修改和删除。
ClickHouse稳定版下载地址
https://packages.clickhouse.com/rpm/lts/
CentOS7软件版本
序号 | 软件软件 | 功能 |
---|---|---|
1 | clickhouse-common-static-22.3.3.44.x86_64.rpm | clienthouse的核心功能库 |
2 | clickhouse-common-static-dbg-22.3.3.44.x86_64.rpm | clienthouse的核心功能调试库(可以不要安装) |
3 | clickhouse-server-22.3.3.44.noarch.rpm | clienthouse的服务器程序 |
4 | clickhouse-client-22.3.3.44.noarch.rpm | clienthouse的客户端程序 |
rpm -ivh clickhouse-common-static-22.3.3.44.x86_64.rpm
# 可以不安装
rpm -ivh clickhouse-common-static-dbg-22.3.3.44.x86_64.rpm
# 安装时可以不输入密码(建议先不输入密码,后面配置密码),也可以输入密码,然后直接Enter即可
rpm -ivh clickhouse-server-22.3.3.44.noarch.rpm
rpm -ivh clickhouse-client-22.3.3.44.noarch.rpm
设置clickhouse有两种方法
# 查看clickhouse状态
clickhouse status
systemctl status clickhouse-server
# 启动clickhouse
clickhouse start
systemctl start clickhouse-server
# 停止clickhouse
clickhouse stop
systemctl stop clickhouse-server
# 重启clickhouse
clickhouse restart
systemctl restart clickhouse-server
# 设置开机启动
systemctl enable clickhouse-server
默认连接clickhouse
# 无密码连接clickhouse
clickhouse-client -m
clickhouse添加和修改密码
# 修改users.xml文件
sudo vim /etc/clickhouse-server/users.xml
# 修改68行的xml文件
# 注意:可以将 修改为使用加密算法sha256加密后的密码
123456
# 保存退出users.xml文件
# 删除默认密码,默认密码在下面路径中的default-password.xml文件中
cd /etc/clickhouse-server/users.d
# 删除default-password.xml文件
rm default-password.xml
# 重启clickhouse
clickhouse restart
clickhouse配置参数
# 使用密码连接clickhouse
clickhouse-client -m --password 123456
# --host, -h: 服务端的IP地址或者host名称, 默认是localhost
# --port: 连接端口,默认值9000
# --user, -u: 用户名,默认值default
# --password: 设置密码
# --multiline, -m: 允许多行语句查询
# --config-file: 设置配置文件
clickhouse-client -m -u default --password 123456
clickhouse是关系型数据库,语法与其他关系型数据库的语法相似,属性有些不同。
clickhouse中文参考文档
# 操作数据库和表结构
https://clickhouse.com/docs/zh/sql-reference/statements
# 操作数据类型
https://clickhouse.com/docs/zh/sql-reference/data-types
操作数据库
# 创建数据库,自动设置引擎
CREATE DATABASE infodb;
# 查看数据库
SHOW DATABASES;
# 切换用户
USER infodb
创建表结构
CREATE TABLE article (
id Int32,
title FixedString(50),
summary String,
public_date Date,
update_time DateTime
) ENGINE = MergeTree()
ORDER BY id
PARTITION BY id
PRIMARY KEY id;
# 查看数据表
SHOW TABLES;
# 查看表结构
DESC article;
插入数据
# 插入单条数据
INSERT INTO article VALUES(1, '人工智能', '人工智能摘要', '2022-02-01', '2022-02-01 00:00:00');
# 插入多条数据
INSERT INTO article VALUES(2, '人工智能', '人工智能摘要', '2022-02-02', '2022-02-02 00:00:00'), (3, '人工智能', '人工智能摘要', '2022-02-03', '2022-02-03 00:00:00'), (4, '人工智能', '人工智能摘要', '2022-02-04', '2022-02-04 00:00:00');
查询数据
SELECT * FROM article;