Clickhouse安装

背景

代替历史库,测试Clickhouse。本文只进行单机版的安装。

写在前面
参考链接为https://cloud.tencent.com/developer/article/1795091?from=information.detail.clickhouse%E4%BC%98%E7%82%B9%E7%BC%BA%E7%82%B9
link

install

yum install -y curl
curl -s https://packagecloud.io/install/repositories/altinity/clickhouse/script.rpm.sh | sudo bash

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

依赖:
wget http://repo.openfusion.net/centos7-x86_64/perl-JSON-XS-2.34-1.of.el7.x86_64.rpm
wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/p/perl-Types-Serialiser-1.0-1.el7.noarch.rpm
wget https://download-ib01.fedoraproject.org/pub/epel/7/aarch64/Packages/p/perl-common-sense-3.6-4.el7.noarch.rpm

yum -y localinstall perl-common-sense-3.6-4.el7.noarch.rpm
yum -y localinstall perl-Types-Serialiser-1.0-1.el7.noarch.rpm
yum -y localinstall perl-JSON-XS-2.34-1.of.el7.x86_64.rpm

yum install -y clickhouse-server clickhouse-client clickhouse-test(test可选)

以下作为依赖被安装:
clickhouse-common-static-20.8.3.18-1.el7.x86_64
clickhouse-server-common-20.8.3.18-1.el7.x86_64

service clickhouse-server start
clickhouse-client 登录  #注意配置远程登录之后就不能使用这种方式了,需要指定IP
clickhouse-client -u default -h 127.0.0.1

首先关闭防火墙或者对外开放81239000端口,
然后取消config.xml文件中 <listen_host>::</listen_host>的注释

配置远程登录

<!-- 配置项 --> 表示注释,高亮说明是启用项如, <listen_host>0.0.0.0</listen_host>

/etc/clickhouse-server/config.xml
---
    <!--<listen_host>::</listen_host> -->
    <!-- Same for hosts with disabled ipv6: -->
    <!-- <listen_host>0.0.0.0</listen_host> -->
    <listen_host>0.0.0.0</listen_host>

   <!-- Default values - try listen localhost on ipv4 and ipv6: -->
---

添加用户

默认用户是default,无密码,以下添加一个新的用户testuser

/etc/clickhouse-server/users.xml 
---
        </default>
         <testuser>
            <password>123456</password>
            <networks incl="networks" replace="replace">
                <ip>::/0</ip>
            </networks>
            <profile>default</profile>
            <quota>default</quota>
        </testuser>

    </users>
---

重启service clickhouse-server restart

客户端登录

先本地测试: clickhouse-client -u testuser -h 127.0.0.1 --password 123456 clickhouse-client -u testuser -h 192.168.66.180 --password 123456
在这里插入图片描述
再次感谢参考文档作者的分享
里面包含集群的安装方法,推荐读者阅读。文中涉及链接如下: 官方链接:https://packagecloud.io/altinity/clickhouse 依赖:https://pkgs.org/

官方链接:
link
依赖:
link

示例数据库

文档链接https://clickhouse.tech/docs/en/getting-started/tutorial/
link

部分命令:(读者可按照上面的教程进行,以下至少部分内容)

clickhouse:示例数据库

CREATE DATABASE IF NOT EXISTS tutorial

以下VM至少4G内存,说明依赖大内存。
clickhouse-client -u testuser -h 192.168.66.180 --password 123456  --query "INSERT INTO tutorial.hits_v1 FORMAT TSV" --max_insert_block_size=100000 < hits_v1.tsv
clickhouse-client -u testuser -h 192.168.66.180 --password 123456  --query "INSERT INTO tutorial.visits_v1 FORMAT TSV" --max_insert_block_size=100000 < visits_v1.tsv

SELECT COUNT(*) FROM tutorial.hits_v1  70W

SELECT COUNT(*) FROM tutorial.visits_v1  20W

数据文件存放位置:du -sh /var/lib/clickhouse

测试结果:使用MergeTree系列的引擎配置的表始终会在后台合并数据部分以优化数据存储
(或至少检查是否有意义),立即合并。
hits_v1使用基本的MergeTree引擎(约为80倍文件大小,原始导入文件7.3G/数据库文件93M),
而visits_v1使用Collapsing变体(40,2.5G/61M)

注意:OPTIMIZE TABLE tutorial.hits_v1 FINAL  立即优化表,会造成数据文件增大,
每执行一次就会加初始文件大小的值例如+93M。(等一段时间,内存有空了就会恢复到原始大小)

ClickHouse就是一款使用列式存储的数据库,数据按列进行组织,属于同一列的数据会被保存在一起,
列与列之间也会由不同的文件分别保存 ( 这里主要指MergeTree表引擎 )。
数据默认使用LZ4算法压缩,在Yandex.Metrica的生产环境中,数据总体的压缩比可以达到8:1 
( 未压缩前17PB,压缩后2PB )。列式存储除了降低IO和存储的压力之外,还为向量化执行做好了铺垫。
向量化执行的方式是用n台榨汁机只执行1次。

为了实现向量化执行,需要利用CPU的SIMD指令。
SIMD的全称是Single Instruction Multiple Data,即用单条指令操作多条数据。
现代计算机系统概念中,它是通过数据并行以提高性能的一种实现方式 ( 其他的还有指令级并行和线程级并行 ),
它的原理是在CPU寄存器层面实现数据的并行操作。

在计算机系统的体系结构中,存储系统是一种层次结构。典型服务器计算机的存储层次结构如图1所示。
一个实用的经验告诉我们,存储媒介距离CPU越近,则访问数据的速度越快。

本文说明,主要技术内容来自互联网技术大佬的分享,还有一些自我的加工(仅仅起到注释说明的作用)。如有相关疑问,请留言,将确认之后,执行侵权必删

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值