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行錯誤。