work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ClickHouse 的安装和使用

Posted on 2021-07-20 23:22  work hard work smart  阅读(633)  评论(0编辑  收藏  举报

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行错误。