ClickHouse初识

作者: admin 分类: 公众号存档            1 次浏览 发布时间: 2019-07-26 23:42

公众号:杨建荣的学习笔记 · 作者:杨建荣 · 发布:2019-07-26 23:42:29 · 原文链接

这是学习笔记的第 2051 篇文章

  ClickHouse这些年还是比较火的一门技术,是Yandex在2016年6月15日开源的数据分析的数据库。在GitHub上有7000多的星。

  它是基于列式存储,在统计分析方面具有很大的优势。

根据数据,以100M数据集的跑分结果:ClickHouse比Vertia快约5倍,比Hive快279倍,比MySQL 快801倍。

   在集群环境中,ClickHouse能够发挥出强大的查询能力。当然我们要在简单的环境中也可以做一些功能的测试,看看clickHouse是不是想空中楼阁一样离我们很遥远。 

   我们选择rpm安装的方式,选择单机的模式,最新的版本是19了,有不少是测试的小版本,我们暂定一个低一些的版本18,找到了如下的一个源来下载rpm包。

wget –content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-server-common-18.6.0-1.el7.x86_64.rpm/download.rpm

wget –content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-test-18.6.0-1.el7.x86_64.rpm/download.rpm

wget –content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-server-18.6.0-1.el7.x86_64.rpm/download.rpm

wget –content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-common-static-18.6.0-1.el7.x86_64.rpm/download.rpm

wget –content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-client-18.6.0-1.el7.x86_64.rpm/download.rpm

wget –content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-debuginfo-18.6.0-1.el7.x86_64.rpm/download.rpm

当然需要提前解决依赖包的问题,在CentOS里面需要准备如下的安装包。

  libicu.x86_64 0:50.1.2-17.el7           libtool-ltdl.x86_64 0:2.4.2-22.el7_3           unixODBC.x86_64 0:2.3.1-11.el7         

使用如下的方式来进行安装。 

yum -y localinstall clickhouse-*.rpm

[root@VM_16_17_centos clickhouse]# rpm -qa|grep clickhouse

clickhouse-test-18.6.0-1.el7.x86_64

clickhouse-common-static-18.6.0-1.el7.x86_64

clickhouse-server-18.6.0-1.el7.x86_64

clickhouse-client-18.6.0-1.el7.x86_64

clickhouse-server-common-18.6.0-1.el7.x86_64

clickhouse-debuginfo-18.6.0-1.el7.x

启动ClickHouse也很简单,操作方式还是比较简单的。

/etc/init.d/clickhouse-server start

[root@VM_16_17_centos init.d]# /etc/init.d/clickhouse-server start

Start clickhouse-server service: Path to data directory in /etc/clickhouse-server/config.xml: /var/lib/clickhouse/

DONE

连接到ClickHouse,可以使用clickhouse-client

# clickhouse-client

ClickHouse client version 18.6.0.

Connecting to localhost:9000 as user default.

Connected to ClickHouse server version 18.6.0 revision 54401.

VM_16_17_centos 🙂

操作方式和MySQL是很类似的,输出的格式会更清晰一些,也支持\G这种显示方式。

VM_16_17_centos 🙂 show databases;

SHOW DATABASES

┌─name────┐

│ default │

│ system  │

└─────────┘

2 rows in set. Elapsed: 0.005 sec. 

我们找几个简单命令来感受一下,比如生成文本的bar图。 

语句如下:select type,bar(count(*),0,200,20) from columns group by type;   

输出结果如下:

SELECT 

    type, 

    bar(count(*), 0, 200, 20)

FROM columns 

GROUP BY type

┌─type──────────┬─bar(count(), 0, 200, 20)─┐

│ DateTime      │ █▌                       │

│ Date          │ ▍                        │

│ Float64       │ ▌                        │

│ String        │ ██████████▊              │

│ UInt8         │ ██▌                      │

│ Array(Int64)  │                          │

│ Int64         │ ▋                        │

│ UInt32        │ █▋                       │

│ Int32         │                          │

│ UInt16        │ ▍                        │

│ Array(String) │ ▌                        │

│ UInt64        │ █████▊                   │

└───────────────┴──────────────────────────┘

12 rows in set. Elapsed: 0.002 sec. 

而常用的标准化SQL查询和统计都不在话下。 

后续来对这个方案进行细致的评估。

admin

杨建荣,《Oracle DBA工作笔记》《MySQL DBA工作笔记》作者,dbaplus社群发起人之一,腾讯云TVP,现任竞技世界系统部经理,拥有十多年数据库开发和运维经验,目前专注于开源技术、运维自动化和性能调优

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注