什么是 ClickHouse(实时数据分析数据库)

什么是 ClickHouse

软件介绍


简介
  • 1、ClickHouse 是俄罗斯搜索巨头 Yandex 公司早 2016年 开源的一个极具 " 战斗力 " 的实时数据分析数据库,开发语言为C++
  • 2、是一个用于联机分析 (OLAP:Online Analytical Processing) 的列式数据库管理系统(DBMS:Database Management System),简称 CK
  • 3、工作速度比传统方法快100-1000倍,ClickHouse 的性能超过了目前市场上可比的面向列的DBMS。 每秒钟每台服务器每秒处理数亿至十亿多行和数十千兆字节的数据。
市场环境
  • 1、随着业务的迅猛增长,Yandex.Metrica目前已经成为世界第三大Web流量分析平台,每天处理超过200亿个跟踪事件。能够拥有如此惊人的体量,在它背后提供支撑的ClickHouse功不可没。
  • 2、ClickHouse已经为Yandex.Metrica存储了超过20万亿行的数据,90%的自定义查询能够在1秒内返回,其集群规模也超过了400台服务器。虽然ClickHouse起初只是为了Yandex.Metrica而研发的,但由于它出众的性能,目前也被广泛应用于Yandex内部其他数十个产品上。
目前国内社区火热,各个大厂纷纷跟进大规模使用:
  • 今日头条 内部用ClickHouse来做用户行为分析,内部一共几千个ClickHouse节点,单集群最大1200节点,总数据量几十PB,日增原始数据300TB左右。
  • 腾讯 内部用ClickHouse做游戏数据分析,并且为之建立了一整套监控运维体系。
  • 携程 内部从18年7月份开始接入试用,目前80%的业务都跑在ClickHouse上。每天数据增量十多亿,近百万次查询请求。
  • 快手 内部也在使用ClickHouse,存储总量大约10PB, 每天新增200TB, 90%查询小于3S。

特点


1、开源的列存储数据库管理系统,支持线性扩展简单方便高可靠性

2、容错跑分快:比Vertica快5倍,比Hive快279倍,比MySQL快800倍,其可处理的数据级别已达到10亿级别

3、功能多:支持数据统计分析各种场景,支持类SQL查询异地复制部署

优点


1、真正的面向列的DBMS
  • ClickHouse是一个DBMS,而不是一个单一的数据库。它允许在运行时创建表和数据库、加载数据和运行查询,而无需重新配置和重新启动服务器
2、数据压缩
  • 一些面向列的DBMS(INFINIDB CE 和 MonetDB)不使用数据压缩。但是,数据压缩确实是提高了性能
3、磁盘存储的数据
  • 许多面向列的DBMS(SPA HANA和GooglePowerDrill))只能在内存中工作。但即使在数千台服务器上,内存也太小了。
4、多核并行处理
  • 多核多节点并行化大型查询
5、在多个服务器上分布式处理
  • 在clickhouse中,数据可以驻留在不同的分片上。每个分片都可以用于容错的一组副本,查询会在所有分片上并行处理
6、SQL 支持
  • ClickHouse sql 跟真正的sql有不一样的函数名称。不过语法基本跟SQL语法兼容,支持JOIN/FROM/INJOIN子句标量子查询支子查询
7、向量化引擎
  • 数据不仅按列式存储,而且由矢量-列的部分进行处理,这使得开发者能够实现高CPU性能
8、实时数据更新
  • ClickHouse支持主键表。为了快速执行对主键范围的查询,数据使用**合并树(MergeTree)*进行*递增排序。由于这个原因,数据可以不断地添加到表中)
9、支持近似计算
  • 统计全国到底有多少人?143456754 14.3E
10、数据复制和对数据完整性的支持
  • ClickHouse使用异步多主复制。写入任何可用的复本后,数据将分发到所有剩余的副本。系统在不同的副本上保持相同的数据。数据在失败后自动恢复

缺点


  • 没有完整的事务支持,不支持Transaction想快就别Transaction
  • 缺少完整Update/Delete操作,缺少高频率、低延迟的修改或删除已存在数据的能力,仅用于批量删除或修改数据。
  • 聚合结果必须小于一台机器的内存大小
  • 支持有限操作系统,正在慢慢完善
  • 不适合Key-value存储,不支持Blob等文档型数据库

环境搭建


下载软件
  • 官网下载
  • 备用下载地址
  • 安装包类别
    • clickhouse-common-static — ClickHouse编译的二进制文件
    • clickhouse-server — 创建 clickhouse-server 软连接,并安装默认配置服务
    • clickhouse-client — 创建 clickhouse-client 客户端工具软连接,并安装客户端配置文件
上传安装

通过rz 或者 Xshell 上传文件
在这里插入图片描述

  • 安装
    • [root@node01 ~]# rpm -ivh clickhouse-common-static-21.6.8.62-2.x86_64.rpm
    • [root@node01 ~]# rpm -ivh clickhouse-server-21.6.8.62-2.noarch.rpm
      • 输入密码:123456
    • [root@node01 ~]# rpm -ivh clickhouse-client-21.6.8.62-2.noarch.rpm
  • 查看
    • [root@node01 ~]# rpm -qa | grep clickhouse
      • 列出所有包含 clickhouse 字段的软件信息
    • [root@node01 ~]# rpm -ql clickhouse-server-21.6.8.62-2.noarch
      • 查看rpm包安装的详细路径
    • [root@node01 ~]# ll /etc/clickhouse-server/
      • 查看路径下文件
配置文件
  • 1、修改权限

    • [root@node01 ~]# chmod 644 /etc/clickhouse-server/config.xml
    • [root@node01 ~]# chmod 644 /etc/clickhouse-server/users.xml
  • 2、修改配置文件 config.xml

    • [root@node01 ~]# vim /etc/clickhouse-server/config.xml
    • 配置内容
    <!-- 需要主动添加这一行 --> 
    166 <listen_host>::</listen_host> 
    <!-- 关键配置,默认不需要修改 --> 
    73 <http_port>8123</http_port> 
    82 <tcp_port>9000</tcp_port> 
    336 <path>/var/lib/clickhouse/</path> 
    515 <default_profile>default</default_profile> 
    530 <default_database>default</default_database>
    12345678
    
  • 3、修改配置文件 users.xml

    • [root@node01 ~]# vim /etc/clickhouse-server/users.xml
    • 配置内容
    64 <password>123456</password>
    
启动服务
  • 1、开启服务
    • [root@node01 ~]# systemctl start clickhouse-server.service
  • 2、客户端登录
    • [root@node01 ~]# clickhouse-client -h 192.168.88.101 -u default --password
      • 默认用户 default 密码 123456
  • 3、查看节点的信息
    • select * from system.clusters;
可视化工具 DBeaver 连接

在这里插入图片描述


猜你喜欢

转载自blog.csdn.net/qq_43842093/article/details/135188173