【ClickHouse】简介入门、Clickhouse的特点、ClickHouse 的安装(一)

简介

ClickHouse入门
ClickHouse是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),使用C++语言编写,主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。
ClickHouse的特点
行式存储如图-1所示:
在这里插入图片描述

图-1 行式存储
列式存储如图-2所示:
在这里插入图片描述

图-2 列式存储
列式储存的好处
1)对于列的聚合,计数,求和等统计操作优于行式存储。
2)由于某一列的数据类型都是相同的,针对于数据存储更容易进行数据压缩,每一列选择更优的数据压缩算法,大大提高了数据的压缩比重。
3)由于数据压缩比更好,一方面节省了磁盘空间,另一方面对于 cache 也有了更大的发挥空间。
Clickhouse的特点
1)DBMS的功能:几乎覆盖了标准SQL的大部分语法,包括DDL和DML,以及配套的各种函数,用户管理及权限管理,数据的备份与恢复。
2)多样化引擎:ClickHouse和MySQL类似,把表级的存储引擎插件化,根据表的不同需求可以设定不同的存储引擎。目前包括合并树、日志、接口和其他四大类20多种引擎。
3)高吞吐写入能力:ClickHouse采用类LSM Tree的结构,数据写入后定期在后台Compaction。通过类LSM tree的结构,ClickHouse在数据导入时全部是顺序append写,写入后数据段不可更改,在后台compaction时也是多个段merge sort后顺序写回磁盘。顺序写的特性,充分利用了磁盘的吞吐能力,即便在HDD上也有着优异的写入性能。
官方公开benchmark测试显示能够达到50MB/s~200MB/s的写入吞吐能力,按照每行100Byte估算,大约相当于50W-200W条/s的写入速度。
4)数据分区与线程级并行:ClickHouse将数据划分为多个partition,每个partition再进一步划分为多个index granularity(索引粒度),然后通过多个CPU核心分别处理其中的一部分来实现并行数据处理。在这种设计下,单条Query就能利用整机所有CPU。极致的并行处理能力,极大的降低了查询延时。
对于大量数据的查询,ClickHouse能够将查询任务分割成多个小任务,实现并行处理,从而提高查询效率。这种能力使得ClickHouse在处理大规模数据时表现出色。然而,ClickHouse在处理高并发的低延迟查询方面可能存在一些挑战。
一项弊端是,如果单个查询需要利用多个CPU核心,这可能会降低ClickHouse同时处理多个查询的能力。由于ClickHouse会优先为单个查询分配多个CPU核心,这可能导致在高并发情况下效率下降,因为无法同时处理多个查询。
因此,对于高QPS(Query Per Second)的查询业务,ClickHouse可能并非最佳选择。在这种情况下,可能需要考虑其他针对高并发低延迟查询优化的解决方案。性能对比
某网站精华帖,中对几款数据库做了性能对比。
1)单表查询如图-3所示:
在这里插入图片描述

图-3 单表查询
2)关联查询如图-4所示:
在这里插入图片描述

图-4 关联查询
结论:ClickHouse像很多OLAP数 据库一样,单表查询速度优于关联查询,而且ClickHouse的两者差距更为明显。
ClickHouse 的安装
c
1)确定防火墙处于关闭状态。
2)CentOS 取消打开文件数限制。
在hadoop101的/etc/security/limits.conf文件的末尾加入以下内容:

vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

在hadoop101的/etc/security/limits.d/20-nproc.conf文件的末尾加入以下内容:

vim /etc/security/limits.d/20-nproc.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

3)执行同步操作。

xsync /etc/security/limits.conf
Xsync /etc/security/limits.d/20-nproc.conf

4)安装依赖。

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

在hadoop102、hadoop103上执行以上操作。
5)CentOS取消SELINUX。
修改/etc/selinux/config中的SELINUX=disabled:

vim /etc/selinux/config
SELINUX=disabled

6)执行同步操作。

xsync /etc/selinux/config

7)重启三台服务器。
单机安装

官网:https://clickhouse.tech/

下载地址:https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/
1)在hadoop101的/opt/software下创建clickhouse目录。

mkdir clickhouse

2)将资料/ClickHouse下4个文件上传到hadoop101的software/clickhouse目录下,如图-5所示:
在这里插入图片描述

图-5 资料目录
3)将安装文件同步到hadoop102、hadoop103。

xsync clickhouse

4)分别在三台机子上安装这4个rpm文件。

rpm -ivh *.rpm

5)查看安装情况。

rpm -qa|grep clickhouse

6)修改配置文件。

vim /etc/clickhouse-server/config.xml

把<listen_host>::</listen_host> 的注释打开,这样的话才能让 ClickHouse 被除本机以外的服务器访问,如图-6所示:
在这里插入图片描述

图-6 单机模式
7)分发配置文件。

xsync /etc/clickhouse-server/config.xml

在这个文件中,有ClickHouse 的一些默认路径配置,比较重要的数据文件路径:

/var/lib/clickhouse/


日志文件路径:

/var/log/clickhouse-server/clickhouse-server.log

8)启动Server。

systemctl start clickhouse-server

9)三台机器上关闭开机自启。

systemctl disable clickhouse-server

10)使用client连接server,如图-7所示。

clickhouse-client -m

在这里插入图片描述
图-7 连接客户端
-m:可以在命令窗口输入多行命令。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/30115.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【质量】软件系统数据质量管理过程(Word原件)

软件系统数据做数据质量管理至关重要&#xff0c;原因有四&#xff1a; 首先&#xff0c;数据质量直接影响软件系统的性能和用户体验。高质量的数据能够确保系统稳定运行&#xff0c;提供准确、可靠的信息支持&#xff0c;从而增强用户的满意度和信任度。 其次&#xff0c;数据…

集团门户网站的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;论坛管理&#xff0c;集团文化管理&#xff0c;基础数据管理&#xff0c;公告通知管理 前台账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;论坛&#xff0…

仓库管理系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;公告管理&#xff0c;物资管理&#xff0c;基础数据管理&#xff0c;用户管理 用户账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;公告管理&#xff0c;物…

Stable Diffusion AI绘画助力建筑设计艺术创新——城市建筑设计大模型分享

大家好&#xff0c;我是向阳 今天我将针对建筑设计方面的AI大模型进行简单介绍&#xff0c;我们将通过富有想象力的关键词或结合Stable Diffusion 的ControlNet 给原本只有黑白线条的线稿变成彩色的效果图&#xff0c;可能你只需要短短几分钟就可以让黑白线稿变成几种甚至十几种…

【操作系统】操作系统实验03-页面置换算法

题目要求&#xff1a; 先读懂实验文档中的两个页面置换算法&#xff0c;参考文档中程序&#xff0c;实现以下要求&#xff1a; 假设某个进程P有6个页面&#xff0c;进程访问页的顺序自拟&#xff08;不少于20个&#xff09;&#xff0c;在内存中分配给该进程4个页面&#xff…

web安全渗透测试十大常规项(一):web渗透测试之XML和XXE外部实体注入

#详细点: XML被设计为传输和存储数据,XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素,其焦点是数据的内容,其把数据从HTML分离,是独立于软件和硬件的信息传输工具。等同于JSON传输。XXE漏洞XML External Entity Injection,即xml外部实体注入漏洞,XXE漏洞发…

使用react-markdown 自定义组件在 Next.js 中进行渲染

在这篇文章中&#xff0c;我们将讨论如何在Next.js项目中使用react-markdown库来渲染Markdown内容&#xff0c;并自定义组件以扩展Markdown的功能。我们将使用TypeScript来确保代码的类型安全性。 Markdown是一种轻量级标记语言&#xff0c;常用于编写文档、博客等。react-mar…

【JavaScript脚本宇宙】用这些令人惊叹的库,让你的音频动起来!

创造惊人音效&#xff1a;六大音频处理库实操指南 前言 随着数字音频技术的发展&#xff0c;越来越多的库和工具被开发出来&#xff0c;用于处理音频数据。这些库可以用于各种应用场景&#xff0c;如音频可视化、声音合成、音频分析等。本文将介绍几个常用的音频处理库&#…

Java实现一个解析CURL脚本小工具

该工具可以将CURL脚本中的Header解析为KV Map结构&#xff1b;获取URL路径、请求类型&#xff1b;解析URL参数列表&#xff1b;解析Body请求体&#xff1a;Form表单、Raw Body、KV Body、XML/JSON/TEXT结构体等。 使用示例 获取一个http curl脚本&#xff1a; curl --locatio…

【YOLOv8改进[注意力]】使用CascadedGroupAttention(2023)注意力改进c2f + 含全部代码和详细修改方式 + 手撕结构图

本文将进行在YOLOv8中使用CascadedGroupAttention注意力改进c2f 的实践,助力YOLOv8目标检测效果的实践,文中含全部代码、详细修改方式以及手撕结构图。助您轻松理解改进的方法。 改进前和改进后的参数对比: 目录 一 CascadedGroupAttention 二 使用CascadedGroupAttention…

反激开关电源X电容的放电电阻选型及计算

1、封装 1206 2、电压Vmax200V 3、电流Imax2A 4、功率Pmax1/4W不超过一半 阻值RC1&#xff08;根据安规快速计算&#xff09; 信息技术设备的安全&#xff0c;国家标准&#xff1a;GB4943-2011等同于UL60950 具体放电计算 初始电压为E的电容C通过R放电 V0E V0为电容上初始电压…

MySQL如何实现事务特性

目录 事务有那些特性 原子性如何实现 持久性如何实现 隔离性与一致性如何实现 事务有那些特性 事务是由MySQL的引擎 InnoDB 来实现的 事务的特性 : 原子性 不存在中间状态,要么完成,要么不完成 一致性 事务操作前和操作后,数据满足完整性的约束,数据库保持一致的状态…

SYD88xx使代码在RAM内存中执行/运行

SYD88xx使代码在RAM中执行 SYD8811/8810默认都是cache模式的&#xff0c;但是在代码首次运行的时候&#xff0c;需要将代码从flash搬到cache中执行&#xff0c;这样第一次的代码执行可能会比较慢&#xff0c;这里提供一个将需要提速的代码放到RAM中执行的方法。 对于SYD8811…

C# OCCT Winform 选中模型改变状态

选中状态设置 _context new AIS_InteractiveContext(_viewer);var selectionDrawer new Prs3d_Drawer();selectionDrawer.SetColor(Colors.Selection);selectionDrawer.SetDisplayMode(1);selectionDrawer.SetTransparency(0.1f);_context.SetSelectionStyle(selectionDrawe…

写一段关于力扣提交自动获取以往代码的油猴脚本

date: 2023-05-09 12:00:44 文章目录 背景思路实现逻辑 效果使用方法 背景 在脚本官网查到了不少&#xff0c;关于力扣网站的脚本 有自动全屏的有美化界面的 但是没有自动获取以往代码的。我习惯过&#xff08;看一遍&#xff09;题目&#xff0c;不喜欢自己点。 于是仿着…

网络层 IP协议【计算机网络】【协议格式 || 分片 || 网段划分 || 子网掩码】

博客主页&#xff1a;花果山~程序猿-CSDN博客 文章分栏&#xff1a;Linux_花果山~程序猿的博客-CSDN博客 关注我一起学习&#xff0c;一起进步&#xff0c;一起探索编程的无限可能吧&#xff01;让我们一起努力&#xff0c;一起成长&#xff01; 目录 一&#xff0c;前提 二&…

个人微信与企业微信:功能与应用差异详解

随着信息技术的飞速发展&#xff0c;微信作为一款全球知名的即时通讯软件&#xff0c;已深入到人们的生活和工作中。然而&#xff0c;当我们提及微信时&#xff0c;很多人可能并不清楚个人微信和企业微信之间的区别。本文将从服务的主体、好友权限、朋友圈功能、群聊功能、消息…

tar 解压缩命令详解

tar 解压缩命令详解 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们来聊一聊Linux系统中非常常用的一个命令——tar&#xff0c;它主要用于打包和解压缩…

java.lang.ClassNotFoundException: javafx.util.Pair的问题解决与原因详解

先说解决办法: 1、引入依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.12</version> </dependency>2、更换代码依赖地址&#xff1a; 原来依赖地址&#xff1a; import j…

企业信息资源集成-系统架构师(十二)

1、在操作系统中&#xff0c;&#xff08;&#xff09;是资源分配和管理的最小单位。 A进程 B线程 C作业 D程序段 答案&#xff1a;A 2、&#xff08;&#xff09;设计规定软件设计人员为软件组件定义正式、精确和可验证的接口规范&#xff0c;该规范应使用前提条件、后置条…