clickhouse学习笔记(一)入门与安装

目录

一 、入门

简介

核心特性包括

1.1 列式存储

1.2 原生压缩

1.3 向量化执行引擎

1.4 DBMS 功能

1.5 分布式处理

1.6 高吞吐写入能力

1.7 实时分析

1.8 SQL支持

1.9 高度可扩展

1.10 数据分区与线程级并行

1.11 应用场景

1.12 不适用场景

二、ClickHouse单机版安装

2.1 官网

2.2 下载镜像

2.3 启动clickhouse

2.4 使用dbeaver连接测试,新建驱动后、新建连接即可


一 、入门

简介

ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的列式存储数据库(DBMS),使用 C++语言编写,主要用于在线分析处理查询(OLAP),能够使用 SQL 查询实时生成分析数据报告。ClickHouse 是一款 MPP (大规模并行处理)架构的数据库,它没有采用 Hadoop 生态中的主从架构,而是使用了多主对等网络结果,同时它也是基于关系模型的 ROLAP 方案

核心特性包括

1.1 列式存储

与传统的行式存储不同,列式存储在处理分析型查询时能显著提高效率,因为它允许数据库仅读取查询所需的相关列,减少I/O操作。

列式存储的好处是:

  • 对于列的聚合,计数,求和等统计操作原因优于行式存储
  • 由于某一列的数据类型都是相同的,针对于数据存储更容易进行数据压缩,每一列选择更优的数据压缩算法,大大提高了数据的压缩比重。
  • 由于数据压缩比更好,一方面节省了磁盘空间,另一方面对于 cache 也有了更大的发挥空间。

1.2 原生压缩

数据在存储前会进行高效压缩,这不仅能节省存储空间,还能加速数据读取过程,因为从磁盘读取更少的数据量。

1.3 向量化执行引擎

ClickHouse利用SIMD指令集优化数据处理,通过并行处理数据块来加速查询执行。

1.4 DBMS 功能


ClickHouse 拥有完备的管理功能,而不仅是一个数据库。作为一个 DBMS,它具备了一些基本功能。

  • DDL:Data Definition Language,数据定义语言,可以动态地创建、修改或删除数据库、表和视图,无须重启服务。
  • DML:Data Manipulation Language,数据操作语言,可以动态增删改查数据。
  • 权限控制:可以按照用户粒度设置数据库或者表的操作权限,保障数据的安全性。
  • 数据备份与恢复:提供了数据备份导出与导入恢复机制,满足生产环境的要求。
  • 分布式管理:提供集群模式,自助管理多个数据库节点。

1.5 分布式处理

ClickHouse支持数据的分布式存储和处理,可以通过ReplicatedMergeTree引擎实现数据的复制,确保高可用性。分布式表功能允许跨多个节点并行执行查询,提高整体查询性能。

1.6 高吞吐写入能力

ClickHouse 采用类 LSM Tree的结构,数据写入后定期在后台 Compaction。

  • 通过类 LSM tree 的结构,ClickHouse 在数据导入时全部是顺序 append 写,写入后数据段不可更改,在后台compaction 时也是多个段 merge sort 后顺序写回磁盘。
  • 顺序写的特性,充分利用了磁盘的吞吐能力,即便在 HDD 上也有着优异的写入性能。

1.7 实时分析

尽管ClickHouse设计用于大数据分析,但它也能处理实时数据流,支持近实时的数据分析需求。

1.8 SQL支持

ClickHouse提供丰富的SQL支持,包括复杂的查询语句和聚合函数,便于数据分析和报告生成。

1.9 高度可扩展

ClickHouse易于水平扩展,可以通过添加更多节点来线性地提高处理能力。

1.10 数据分区与线程级并行

ClickHouse 将数据划分为多个 partition,每个 partition 再进一步划分为多个 index granularity(索引粒度),然后通过多个 CPU核心分别处理其中的一部分来实现并行数据处理。

在这种设计下,单条 Query 就能利用整机所有CPU(很吃CPU)。极致的并行处理能力,极大的降低了查询延时。

所以,ClickHouse 即使对于大量数据的查询也能够化整为零平行处理。但是有一个弊端就是对于单条查询使用多 cpu,就不利于同时并发多条查询。所以对于高 qps(query per second) 的查询业务,ClickHouse 并不是强项。其适用场景是数据已经处理好的、字段特别多的宽表

1.11 应用场景

  • Web分析(如点击流分析)
  • 电商数据分析
  • 日志处理和分析
  • 实时报表和仪表板
  • IoT数据分析
  • 规模数据分析和聚合:ClickHouse适用于需要处理大规模数据集的场景,特别是在需要进行复杂的数据分析和聚合操作时。它的列式存储和向量化查询引擎能够高效地执行大量的数据操作,并提供快速的查询结果。
  • 实时查询和快速响应:ClickHouse具有高性能的查询引擎,能够以低延迟进行实时查询。它适用于需要快速响应的场景,如实时监控、交互式数据探索和仪表盘展示等。
  • 时序数据处理:对于时序数据,如传感器数据、日志数据、时间序列数据等,ClickHouse表现出色。它支持按时间范围进行快速查询,并且具有优化的存储和索引策略,适用于时序数据的存储和分析。
  • 高并发查询:ClickHouse是一个高度可扩展的数据库系统,能够处理高并发的查询请求。它适用于需要支持多用户同时查询和大规模并发操作的场景。

1.12 不适用场景

  • 事务处理和数据一致性要求:ClickHouse不是一个事务型数据库,不适用于强调数据一致性和事务性操作的场景。如果应用需要确保数据的完整性和一致性,并进行复杂的事务处理,其他事务型数据库更适合。
  • 实时数据更新和频繁写入操作:ClickHouse的性能重点在于查询操作,对于实时数据更新和频繁的写入操作,其性能可能不如专门设计用于事务处理和实时写入的数据库系统。
  • 复杂的关系查询和事务处理:ClickHouse是一种列式数据库,对于复杂的关系查询(如多表关联、递归查询等)和事务处理,其性能可能不如基于行式存储的数据库系统。
  • 少量数据的存储和查询:如果应用场景中的数据量较小,并且对于查询性能要求不高,使用ClickHouse可能会过于复杂和冗余。在这种情况下,可以考虑更轻量级的数据库解决方案

二、ClickHouse单机版安装

2.1 官网

Fast Open-Source OLAP DBMS - ClickHouse

2.2 下载镜像

docker pull yandex/clickhouse-server
docker pull yandex/clickhouse-client

2.3 启动clickhouse

① 可正常连接方法(推荐尝试)

docker run -d -p 8123:8123 -p 9000:9000 --name clickhouse yandex/clickhouse-server

② 网上方法: 

参考文章:https://blog.csdn.net/lcl_xiaowugui/article/details/104724726
1)启动server端
# 默认直接启动即可
docker run -d --name [启动之后的名称] --ulimit nofile=262144:262144 yandex/clickhouse-server

# 如果想指定目录启动,这里以clickhouse-test-server命令为例,可以随意写
mkdir /work/clickhouse/clickhouse-test-db       ## 创建数据文件目录
# 使用以下路径启动,在外只能访问clickhouse提供的默认9000端口,只能通过clickhouse-client连接server
docker run -d --name clickhouse-test-server --ulimit nofile=262144:262144 --volume=/work/clickhouse/clickhouse_test_db:/var/lib/clickhouse yandex/clickhouse-server

2)docker启动clickhouse-client
docker run -it --rm --link clickhouse-test-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server



2.4 使用dbeaver连接测试,新建驱动后、新建连接即可

首先需要安装连接工具Dbeaver。
Dbeaver安装教程地址:DBeaver安装与使用教程(超详细安装与使用教程)_dbeaver安装步骤-CSDN博客

第一步,新建驱动管理器:

第二步,填写驱动信息:


第三步,设置库:
第一种方法:事先下载好的驱动文件,添加文件即可。

驱动下载链接:Download clickhouse-jdbc JAR files with all dependencies


第二种方法:先不设置库,我们再新建数据库连接时,填写完连接配置信息,点击测试链接,在弹出来的地方选择下载按钮,等它全部下载完驱动后即可测试连接

第四步,新建数据库连接:

第五步,填写数据库连接配置信息:


第六步,测试连接:
到了这一步,说明连接配置信息填写完成,如果库没有设置,就可以按照上面的第二种方法点击测试链接,在弹出来的地方选择下载按钮,等它全部下载完驱动后即可测试连接。

到了这一步,clickhouse已经连接成功了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Qt】定时器播放多张图片,动画效果

1. 效果 2. 代码 2.1 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();void initGif(QS…

MT3051 区间gcd

思路&#xff1a; ST表&#xff0c;ST表模板可参考MT3024 maxmin 注意&#xff0c;这里使用快读快写避免超时 代码&#xff1a; #include <bits/stdc.h> using namespace std; const int N 1e6 10; int n, m, a[N], mn[N][20], Lg[N], l, r, ans; void pre() {Lg[1…

python中的循环语句

while循环 基本语法格式 while 条件&#xff1a; 循环体 条件为真&#xff0c;则执行循环体代码 条件为假&#xff0c;则结束循环 打印 1-10的整数 死循环有时候也是必须的&#xff0c; while语句的语法&#xff1a; &#xff08;1&#xff09;变量的初始化&#xff0c;…

Clo3D导出服装动画,使用Unity3D展示

1.前言 Clo3D是一款应用于时装行业的3D服装设计软件,其强大的布料模拟算法可在3D空间中实现设计、制版、试衣和走秀,大幅提升数字作品逼真度和制作效率。为了让服装动画效果展示在Unity3D上模拟效果&#xff0c;需要Clo3D模拟出逼着的衣服动画。总体流程为Clo3D - Mixamo -Blen…

The 18th Northeast Collegiate Programming Contest(5/9/13)

心得 赛中ac&#xff1a;5&#xff0c;目前ac&#xff1a;9&#xff0c;题目总数&#xff1a;13 中档可做题还是很多的&#xff0c;可惜遇到了难绷的queueforces&#xff0c; 最后15min才判出来&#xff0c;oi赛制5wa4遗憾离场&#xff0c;赛后把几个题都给调过了&#xff0…

遗传算法+神经网络!基于遗传-神经网络(GA-BP)算法的光伏出力预测程序代码!

前言 准确地预测光伏发电出力对于电力系统运营和稳定性至关重要。随着预测技术的不断进步&#xff0c;越来越多的研究者逐渐意识到遗传算法在优化神经网络在新能源出力预测中的潜力。遗传算法是一种模拟生物进化过程的优化算法&#xff0c;通过不断迭代和选择&#xff0c;搜索…

期望18K,4年前端Cvte 视源股份一面挂

一面 1、自我介绍&#xff1f;毕业的时候一直在 xx 公司&#xff0c;你基本都在做什么项目&#xff1f; 2、你讲一下你主要负责哪一块的&#xff1f;balabala 3、你们的 json 是怎么定义组件间的联动的&#xff1f; 4、怎么确定区分两个 input&#xff1f; 5、你们是怎么触…

聚观早报 | 苹果预热WWDC24;怪兽充电第一季度营收

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 6月5日消息 苹果预热WWDC24 怪兽充电第一季度营收 vivo Watch GT设计细节 长城汽车关闭欧洲总部 小米MIX Flip将…

电商架构浅析

前言 什么是电商&#xff0c;电商有哪些分类&#xff0c;以及一个完整的电商平台应该由哪些模块组成&#xff1f;本文将围绕电商平台系统的整体架构展开分析。 一、简介 1. 什么是电商 简单说就是通过网络进行的商务活动。以前的人都是通过现金进行交易&#xff0c;就是所谓的…

热贡文化旅游APP的设计与实现-计算机毕业设计源码69932

摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信息存…

专业开放式耳机什么牌子更好?六大技巧教你不踩坑!

相信很多入坑的朋友再最开始挑选耳机的时候都会矛盾&#xff0c;现在市面上这么多耳机&#xff0c;我该怎么选择&#xff1f;其实对于开放式耳机&#xff0c;大家都没有一个明确的概念&#xff0c;可能会为了音质的一小点提升而耗费大量的资金&#xff0c;毕竟这是一个无底洞。…

LabVIEW源程序安全性保护综合方案

LabVIEW源程序安全性保护综合方案 一、硬件加密保护方案 选择和安装硬件设备 选择加密狗和TPM设备&#xff1a;选择Sentinel HASP加密狗和支持TPM&#xff08;可信平台模块&#xff09;的计算机主板。 安装驱动和开发工具&#xff1a;安装Sentinel HASP加密狗的驱动程序和开发…

在加拿大寻求2亿美元融资!Xanadu的CEO有话要说

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 文丨慕一/娴睿 排版丨沛贤 深度好文&#xff1a;1500字丨5分钟阅读 摘要&#xff1a;加拿大光量子计算头部企业Xanadu希望在加拿大筹集1-2亿美元&#xff0c;用于建立量子数据中心。虽然融资不…

编译和运行qemu-uboot-arm64单板的Armbian系统

这篇文章ARM虚拟机安装OMV-CSDN博客遗留一个启动qemu-uboot-arm64单板Armbian镜像的问题&#xff0c;使用官方下载的镜像&#xff0c;会报错&#xff1a; fatal: no kernel available .... Failed to load /vmlinuz ...... qemu-system-aarch64 -smp 8 -m 8G -machine virt …

绿联Nas docker 中 redis 老访问失败的排查

部署了一些服务&#xff0c;老隔3-5 天其他服务就联不上 redis 了&#xff0c;未确定具体原因&#xff0c;只记录观察到的现象 宿主机访问 只有 ipv6 绑定了&#xff0c;ipv4 绑定挂掉了 其他容器访问 也无法访问成功 当重启容器后&#xff1a; 一切又恢复正常。 可能的解…

批量修改文件

最近几个月的文章都直接发在公众号上&#xff0c;没有同步到博客上&#xff0c;想去同步时发现已经有不少了&#xff0c;一个个修改太麻烦了。 之前没规划好&#xff0c;所以博客文章都是直接放在仓库一个目录下&#xff0c;数量多了之后&#xff0c;有点乱&#xff0c;不好管…

如何成为人工智能(AI)产品经理

AI产品 经理出现的历史背景 首先&#xff0c;我们需要从一个大的历史背景和趋势上来思考&#xff1a;为什么会有AI产品经理这样一个岗位。 AlphaGo先后打败了李世石、柯洁之后&#xff0c;大家都觉得AI好像已经成熟了。 但其实&#xff0c;AI之所以能发展到现在这样一个阶段…

C++ STL map容器erase操作避坑

map容器的erase方法有三种重载形式&#xff1a; //1.删除迭代器所指向的元素 //返回值是指向下一个节点的迭代器 iterator erase(iterator it); //2.区间删除 iterator erase(iterator first, iterator last); //3.根据键值删除 //返回值为删除的元素个数 size_type erase(con…

Windows下载安装RabbitMQ客户端(2024最新篇)

文章目录 RabbitMQ认知RabbitMQ下载RabbitMQ安装 更多相关内容可查看 RabbitMQ认知 定义&#xff1a;RabbitMQ是一个消息中间件&#xff0c;它接受并转发消息。你可以把它当做一个快递站点&#xff0c;当你要发送一个包裹时&#xff0c;你把你的包裹放到快递站&#xff0c;快递…

【CTF MISC】XCTF GFSJ0155 simple_transfer Writeup(流量分析+文件提取)

simple_transfer 文件里有flag&#xff0c;找到它。 解法 用 wireshark 分析&#xff0c;大部分都是 TCP 协议。 打开协议分级统计&#xff0c;有个 DLEP 占了 94.2% 的数据。 作为过滤器使用。全都是 Unknown。 用 binwalk 扫描。 binwalk f9809647382a42e5bfb64d7d447b409…