我司今年要立个小的科研项目,前几个项目做完之后数据有了(物联网数据),基于数据也有些简单的图表报表显示了,领导要求今年搞一下,如何基于此可以做些大数据分析,请教了原来大佬同事,给指了条道。让看看clickhouse,所以,井底小蛙的我划分了下学习计划:
(1)什么是clickhouse,能解决啥问题
(2)动手搭建一下,安装部署启动了解一下
(3)客户端的身份介入看看效果
(4)程序连一波combo三连试,看看跑得灵否。
在学习到第三步时,我就跑去问大佬,有啥好用的可视化客户端不?大佬说著名的superset了解下。
接着我又把情况和大致想搭的架构和大佬絮叨了一下:想着从kafka拉数据,然后用ck做批处理(历史数据分析 用),用flink+redis做实时数据的处理,包括指标排名类并存储到redis中去。大佬给说flink+redis是上古之路了,不如去了解下kafka table -》engine merge tree table,这个可以做实时分析,即kafka+ck 可以搞定一切了~~
经大佬提点,如获至宝,下午赶紧在补一下缺少的知识。感谢我领导,给我时间让我探索,杠杠地nice
ClickHourse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)是Yandex公司产品,俄语支持最大的搜索引擎,基于点击数据流 click stream的data house数据仓库
rpm安装包地址:https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/;
其它参考官网安装描述;
也可以从以下地址找到需要安装的版本进行安装
clickhouse需要在具有SSE 4.2指令集的系统上进行安装,通过以下命令查看系统CPU是否支持SSE4.2命令 ,如果不支持需要额外下载预编译的安装包,可参看官网描述
$ grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
由于我们服务器无法连接外网,所以选择离线方式安装
执行安装命令
rpm -ivh /data/soft/clickhouse-*.rpm
安装完成后提示安装完成[100%]中间如出错,可自查安装依赖,补齐安装即可。通过如下命令可查看安装路径;
小知识补充:Linux系统中目录结果如下所说明
/bin: 存放常用普通命令
/sbin:存放管理员常用的命令
/lib:系统依赖的动态链接库
/sys:系统文件
/etc:存放系统配置文件
/usr:用户安装的应用程序
/var: 日志文件存放
系统的配置文件存在etc下面,可以进入相应路径查看其配置信息
配置信息包括大至内容如下所示:
1.logger :日志信息配置
2.http_port:默认是8123
3.tpc_port: 默认是9000
4.openSSL: ssl的认证配置
5.listen_host:对外提供服务的监听地址,需要把这里注释打开
6.path : 这上是存数据文件的路径,通常可以自定义
7.remote_server:配置clusters用到的
两种启动方式,一种手动指一配置文件的方式启动;另一种通过service方式启动,如下命令所示:
(1)sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml
注:直接用clickhouse-server --config-file=/etc/clickhouse-server/config.xml启动时报错,提示用sudo -u clickhouse启动,可以按说明填加参数,启动即可如上成功了
(2) /etc/init.d/clickhouse-server start 或 systemctl start clickhouse-server
通过ps -ef |grep clickhouse可以看到进程启动成功
若要停止服务也可以通过服务的方式/etc/init.d/clickhouse-server stop
来停止
通过命令clickhouse-clinet
可以直接连接server了如下图所示:
最后有一句异常提示Code: 210. DB::NetException: Connection refused (localhost:9000)
,需要修改配置文件注释桌红框中内容,放开蓝框中内容,重启服务再次尝试
至此为止,安装与服务启动成功了,这次真的成功了,见图如下:
根据官网描述,clickhouse-client后直接复制了创建数据库的语句CREATE DATABASE IF NOT EXISTS tutorial
创建成功后,接着复制了创建表的语句(建表的时候指定数据类型,建表的时候一定要指定表引擎),结果报错了,原因是clickhouse-client只能执行一行名语,如果要执行多行,需要后面加上-m参数。以下是常用到的命令
clickhouse client -m 执行多行语句时,需要加-m
show databases; 查看数据库
create database tutorial; 创建一个数据库
drop database tutorial; 删除数据库
show tables: 查看表
select currentDatabase(); 查看当前数据库
use tutorial; 选择使用数据库db_zltest
desc hits_v1 ; 查看表结构
官网离线下载了数据示例:hits_v1和visits_v1,并通过tar xvf *.tar /data/clickhouse #path to ClickHouse data directory
导入数据后重启服务service clickhouse-server restart
。通过语句SELECT COUNT(*) FROM datasets.hits_v1
查询是否导入数据成功