ClickHouse数据库安装
ClickHouse数据库,是俄罗斯Yandex公司于2019年6月开源的一款MMP列式存储数据库。ClickHouse is an open source column-oriented database management system capable of real time generation of analytical data reports using SQL queries.
优点:
(1) 真正的列式数据库管理系统
(2) 数据压缩
(3) 数据的磁盘存储
(4) 多核心并行处理
(5) 多服务器分布式处理
(6) 支持SQL
(7) 向量引擎
(8) 实时的数据更新
(9) 索引
(10) 适合在线查询
(11) 支持近似计算
(12) 支持数据复制和数据完整性
缺点:
(1) 没有完整的事务支持
(2) 缺少高频率,低延迟的修改或删除已存在数据的能力。仅能用于批量删除或修改数据,但这符合 GDPR
(3) 稀疏索引使得ClickHouse不适合通过其键检索单行的点查询
ClickHouse内部自己测试了和Vertica数据库(惠普公司的商用数据库),测试了项很多,数据指标也很多,我看不懂,但是总结起来就一句话,ClickHouse比Vertica牛逼多了。关键的关键,ClickHouse开源免费啊,这对于创业公司,简直是莫大的优势啊。想想Vertica动辄上万的商业费用,小公司一年的利润也可能没有这么多。
1.每天十亿级数据更新,秒出查询结果,ClickHouse在携程酒店的应用 (文章讲述了携程大数据解决方案,很有帮助)
2.DorisDB、TiDB/TiFlash、ClickHouse性能对比-单多表场景 (DorisDB总体时间最短,这个我没有尝试过)
1.安装虚拟机
我下载了Centos8,在XenServer上安装了虚拟机,然后编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件中的内容,配置为静态ip(Linux运维之网络)。
2.其他工具安装(可以选择安装)
(1) 因为新建的虚拟机,什么东西都没有,所以可以安装一个复制工具
1 | yum install lrzsz |
(2) 使用ftp命令进行局域网数据传递
使用rz和sz命令上传和下载命令特别的慢,有时候还卡,所以可以选择使用ftp的方式,因为安装了IIS服务器之后,就自带了ftp功能,可以新建一个ftp站点,然后选择匿名用户等,在linux服务器上使用wget命令进行下载数据。
1 | ## 安装wget |
1.linux中下载ftp文件的几个方法
2.linux远程下载文件 的两种方法之 ftp命令和scp命令
3.Linux基础:利用SSH上传、下载(使用sz与rz命令)
4.sz命令太慢, 那就用samba或者scp/ftp/sftp吧
5.使用curl / wget命令上传下载FTP
3.安装ClickHouse
安装这个真是惊艳到我了,我大致翻了一下Vertica数据库的安装步骤,没有个十几二十几步,根本下不下来,而且前同事,刚上手Vertica的时候,也是费了九牛二虎之力才搞完的(据说三天)。相比之下,ClickHouse就简单的多了,可以单台部署,也可以集群部署,而且命令行就那么几句。
1 | ## 查看系统是否支持 |
下载CentOS7时,会出现一个下载连接,这里有ppc64和aarch64,我顺手就查了一下。AArch64是ARMv8 架构的一种执行状态。ppc:IBM® POWER Architecture 体系是RISC指令集的CPU。ClickHouse可以在任何具有x86_64,AArch64或PowerPC64LE CPU架构的Linux,FreeBSD或Mac OS X上运行。
使用yum安装时,出现了总是下载不了
我只能从windows下翻墙下载了clickhouse-common-static-19.17.5.18-2.x86_64rpm安装包,然后使用rz命令上传到虚拟机中然后执行安装
1 | ## rpm安装 |
结果安装成功了:
1.安装软件包的三种方法、rpm包介绍、rpm、yum工具用法与yum搭建本地仓库
2.Linux系统:Centos7下搭建ClickHouse列式存储数据库
3.Ubuntu 如何离线安装软件包
4.Ubuntu离线安装软件包
5.Clickhouse安装及使用
6.ClickHouse在CentOS-7 Linux下安装和初体验 (安装和测试数据)
4.启动服务
1 | ## 启动服务端 |
成功了:
问题
(1) Init script is already running
在启动的时候出现了这个提示,使用客户端连接的时候,也连接不上。
解决方法修改/etc/clickhouse-server/config.xml文件,然后重启服务:systemctl restart clickhouse-server
1 | <!--将下面的东西--> |
1.CentOS7下安装ClickHouse遇到的启动和连接问题 (服务启动失败)
5.基本操作
我先测试了单机安装时的相关操作,命令都是在root用户下操作的。
1 | ## 查询表的行数 |
MergeTree,是表引擎。MergeTree引擎系列的基本理念如下。当你有巨量数据要插入到表中,你要高效地一批批写入数据片段,并希望这些数据片段在后台按照一定规则合并。相比在插入时不断修改(重写)数据进存储,这种策略会高效很多。
1.MergeTree
6.导入csv数据
将其他数据库中数据比如使用navicate将sqlserver数据表导出成csv文件,上传到服务器。
1 | ## 批量插入csv数据 |
问题:
(1) Code: 32. DB::Exception: Attempt to read after eof
查看clickhouse错误日志:/var/log/clickhouse-server/clickhouse-server.err.log
这个问题,其实是因为我在从windows上上传到linux服务器上的时候,使用ftp中断了,我没有发现,其实数据传输的不全,所以就会造成了文件意外的结束。
1.Code: 32. DB::Exception: Attempt to read after eof: while receiving packet (BUG)
2.DB::Exception: Attempt to read after eof when try compare nullable columns
3.csv格式文件最大行数可以是多少?
4.Linux 查看日志文件命令
5.Linux查看CPU和内存使用情况
7.可视化界面
Tabix、HouseOps、灯塔、DBeaver等工具