大数据技术之Clickhouse

ClickHouse是一款由Yandex开源的列式存储数据库,适用于读密集型的在线分析处理(OLAP)。其优点包括高速查询处理、向量化执行引擎、支持多维度聚合操作。缺点是不完整支持事务,不兼容Hadoop生态。本文详细介绍了ClickHouse的适用场景、优缺点、特性,以及单机和集群的安装部署方法,包括MergeTree、Distributed等表引擎的使用和SQL语法。
摘要由CSDN通过智能技术生成

一、概述

ClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),使用C++语言编写,主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。

1.1 适用场景

1. 绝大多数是读请求

2. 数据以相当大的批次(> 1000行)更新,而不是单行更新;或者根本没有更新;

3. 已添加到数据库的数据不能修改

4. 对于读取,从数据库中提取相当多的行,但只提取列的一小部分;

5. 宽表,即每个表包含着大量的列;

6. 查询相对较少(通常每台服务器每秒查询数百次或更少);

7. 对于简单查询,允许延迟大约50毫秒;

8. 列中的数据相对较小:数字和短字符串(例如,每个URL 60个字节);

9. 处理单个查询时需要高吞吐量(每台服务器每秒可达数十亿行);

10. 事务不是必须的;

11. 对数据一致性要求低;

12. 每个查询有一个大表。除了他以外,其他的都很小;

13. 查询结果明显小于源数据。换句话说,数据经过过滤或聚合,因此结果适合于单个服务器的RAM中;

1.2 优缺点

    1. 优点

  1. 跑分快(对于大多数查询而言,处理速度至少提高了100);

  2. 向量化执行引擎:为了实现向量化执行,需要利用CPU的SIMD指令,即用单条指令操作多条数据;

  3. 可以实现流批一体;

  4. 支持shard + replication(类似HBase的Region);

  5. 支持嵌套等复杂的数据结构;

  6. 使用MPP架构;(https://www.cnblogs.com/jianyungsun/p/9261632.html)

    2. 缺点

  1. 不能完整支持事务(并发读写没有分离);
  2. 不能很高吞吐量的修改和删除数据(行数据删除);
  3. 由于索引的稀疏性,不适合基于Key来查询单个记录(不适合做Key-Value数据库),适合多维度的聚合操作;
  4. 对Hadoop生态不兼容(不适合用HDFS存储数据);

1.3 特性

  1. C++语言利用硬件资源优势
  2. 列式存储和压缩
  3. 单节点多核并行处理
  4. 索引(一级、二级、稀疏索引)
  5. 运用了大量算法
  6. 向量化引擎(使用了CPU的寄存器、SIMD指令-并行)
  7. 预计算模型
  8. 数据分片和分布查询

二、安装部署

2.1 环境准备

2.1.1 CentOS取消打开文件数限制

1.修改文件

sudo vim /etc/security/limits.conf
sudo vim /etc/security/limits.d/90-nproc.conf

2.在文件末尾添加:

* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

2.1.2 取消SELINUX

1.修改文件
sudo vim /etc/selinux/config

2.修改内容
SELINUX=disabled

2.1.3 关闭防火墙

sudo systemctl disable firewalld
sudo systemctl stop firewalld

2.1.4 安装依赖

sudo yum install -y libtool
sudo yum install -y *unixODBC*

2.1.5 下载安装包

官网地址:https://clickhouse.tech/docs/zh/getting-started/install/

2.2 单机部署

2.2.1安装

执行安装命令(root用户):

添加官方存储库
sudo yum install yum-utils
sudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG
sudo yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/stable/x86_64

运行安装命令
sudo yum install clickhouse-server clickhouse-client

2.2.2 配置

       修改配置文件/etc/clickhouse-server/config.xml

sudo vim /etc/clickhouse-server/config.xml
  1. 修改TCP端口,因为Clickhouse默认通信端口为9000,这与Hadoop中的HDFS端口冲突。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值