1、ClickHouse介绍
ck不使用HDFS存储数据
可以继承HDFS
mpp架构
是一个DBMS 数据库
列式存储
实现语言 C++
处理数据速度快
横向扩展,高可靠。
CK引擎介绍
分为数据库引擎和表引擎,
不同的引擎,决定了数据存储的特点和数据存储的位置
1) 引擎决定数据存储的特点
2) 决定数据是否可以建立索引
3)时间是否可以修改
4)数据是否允许并发操作。
5)数据是否可以备份
6)决定查询方式
在CH中建表指定引擎: 决定表的特点,操作行为,数据特点。
分片: 如主键1 2 3的数据,分布放在三台机器上。
分区: 指定分区,数据的存储以分区内单元(区内聚合)
副本:决定数据的高可靠性
数据类型:
2、ClickHouse安装
下载地址: https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/
这里下载的版本为:21.3.12.2
RPM安装
server安装
rpm -ivh clickhouse-common-static-21.3.12.2-2.x86_64.rpm
rpm -ivh clickhouse-common-static-dbg-21.3.12.2-2.x86_64.rpm
rpm -ivh clickhouse-server-21.3.12.2-2.noarch.rpm
client安装
rpm -ivh clickhouse-server-21.3.12.2-2.noarch.rpm
安装之后的目录:
/var/log/clickhouse-server 服务日志目录:
/etc/clickhouse-server , 配置文件:包括config.xml和users.xml
/etc/init.d/clickhouse-server 启动clickhouse服务的脚本
/var/lib/clickhouse/data/ 数据存储目录,以数据库和表名进行区分
创建用户名和密码
vi /etc/clickhouse-server/users.xml
用户名为:larrylin2
密码为:123456
ip 172.xx.xx.13为内网地址
<larrylin2> <password>123456</password> <networks incl="networks" replace="replace"> <ip>::1</ip> <ip>172.xx.xx.13</ip> </networks> <profile>default</profile> <quota>default</quota> </larrylin2>
3、修改配置
1) 放开远程IP访问
vi /etc/clickhouse-server/config.xml
<listen_host>::</listen_host>
4、启动clickhouse
systemctl start clickhouse-server.service
或者
/etc/init.d/clickhouse-server start
停止clickhouse
systemctl stop clickhouse-server.service
5、进入客户端
clickhouse-client -m
使用密码登录:
clickhouse-client --host=127.0.0.1 --port=9000 --user=larrylin2 --password=123456
(110这台 clickhouse-client --host=127.0.0.1 --port=9000 --password=larrylin2)
6、查看server日志
tail -f /var/log/clickhouse-server/clickhouse-server.log
7、创建数据库
clickhouse-client -m create database if not exists dbtest;
8、创建表
use dbtest; create table tb_test( id Int32, name String, age UInt8, gender String ) engine=Memory();
插入数据
insert into tb_test values(1,'zhangsan',59,'M'), (2,'lisi',29,'M');
查询数据
select * from tb_test ;
创建表 引擎使用Log
create table tb_user( id UInt8, name String, sal Float64, address String, birthday Date ) engine=Log;
插入数据
insert into tb_user values(1,'zhangsan',20000,'shanghai','1986-09-08'); insert into tb_user values(2,'lisi',30000,'beijig','1987-09-08'), (3,'wangwu',40000,'beijig','1985-09-08');
每个字段以单独的文件存储
sizes.json 记录每个 .bin 文件的大小。
__marks.mrk 记录数据的位置
创建表 使用TinyLog引擎
create table tb_user2( id UInt8, name String, sal Float64, address String, birthday Date ) engine=TinyLog; insert into tb_user2 values(1,'zhangsan',20000,'shanghai','1986-09-08'); insert into tb_user2 values(2,'lisi',30000,'beijig','1987-09-08'), (3,'wangwu',40000,'beijig','1985-09-08'); insert into tb_user2 values(4,'黄山',50000,'中国','1986-09-08');
查看文件结构,可以发现,少了__marks.mrk 文件
创建表,使用StripeLog引擎
create table tb_user3( id UInt8, name String, sal Float64, address String, birthday Date ) engine=StripeLog; insert into tb_user3 values(1,'zhangsan',20000,'shanghai','1986-09-08'); insert into tb_user3 values(2,'lisi',30000,'beijig','1987-09-08'), (3,'wangwu',40000,'beijig','1985-09-08'); insert into tb_user3 values(4,'黄山',50000,'中国','1986-09-08');
查看文件结构,将所有的数据存储在data.bin 这一个文件中。
参考:https://blog.csdn.net/a1641693970/article/details/105901745/
官方文档地址:https://clickhouse.tech/
Clickhouse 常见问题
1、配置文件错误
配置文件错误,导致clickhouse无法启动。
指定配置文件启动clickhouse
clickhouse-server --config-file=/etc/clickhouse-server/config.xml
可以发现,配置文件config.xml 中808行错误。
作者:Work Hard Work Smart
出处:http://www.cnblogs.com/linlf03/
欢迎任何形式的转载,未经作者同意,请保留此段声明!