Clickhouse: 数据基本知识

news/2024/4/13 11:40:26/文章来源:https://blog.csdn.net/qq_35667076/article/details/136497681

产品概述

ClickHouse是一个开源的列式数据库管理系统,专门用于在线分析处理(OLAP)场景。它具有高性能、高可靠性、高可扩展性和低成本等优点,被广泛应用于大数据领域。

以下是ClickHouse的主要特点:

  1. 高性能:ClickHouse采用列式存储结构,能够快速处理大量数据。它支持高并发查询和复杂的分析操作,能够在秒级别内返回查询结果。

  2. 高可靠性:ClickHouse具有强大的数据保护机制,支持数据备份、数据恢复和数据复制等功能,能够保证数据的安全性和可靠性。

  3. 高可扩展性:ClickHouse支持水平扩展和垂直扩展,能够轻松应对数据量的增长和查询负载的增加。

  4. 低成本:ClickHouse是一个开源的数据库管理系统,没有商业版权费用,能够降低企业的运营成本。

ClickHouse适用于以下场景:

  1. 大数据分析:ClickHouse能够快速处理大量数据,支持高并发查询和复杂的分析操作,适用于大数据分析场景。

  2. 实时数据处理:ClickHouse支持实时数据处理,能够在秒级别内返回查询结果,适用于实时数据处理场景。

  3. 时序数据处理:ClickHouse支持时序数据处理,能够快速处理时间序列数据,适用于时序数据处理场景。

Clickhouse集群架构

ClickHouse 采用典型的分组式的分布式架构,具体集群架构如上图所示:

  • Shard:集群内划分为多个分片或分组(Shard 0 … Shard N),通过 Shard 的线性扩展能力,支持海量数据的分布式存储计算。

  • Node:每个 Shard 内包含一定数量的节点(Node,即进程),同一 Shard 内的节点互为副本,保障数据可靠。ClickHouse 中副本数可按需建设,且逻辑上不同 Shard 内的副本数可不同。

  • ZooKeeper Service:集群所有节点对等,节点间通过 ZooKeeper 服务进行分布式协调。

Clickhouse存储架构

ClickHouse的数据存储层级关系包括以下几个层级:

  • 数据库:ClickHouse的最高层级是数据库,一个ClickHouse实例可以包含多个数据库。
  • 表:每个数据库可以包含多个表,每个表都有自己的列和行。
  • 分区:每个表可以根据时间或其他条件进行分区,每个分区都是一个独立的数据块。
  • 分段(目录):每个分区下会有一个或者多个目录。
  • 列:每个数据块包含多个列,每个列都是一个独立的文件,包含该列的所有数据。
  • 数据块:每个分区包含多个数据块,每个数据块都是一个独立的文件,包含一定数量的行数据。

相关概念

cluster(集群)

在物理构成上,ClickHouse集群是由多个ClickHouse Server实例组成的分布式数据库。这些ClickHouse Server根据配置规格的不同而可能包含1个或多个副本(Replica)、1个或多个分片(Shard)。在逻辑构成上,一个ClickHouse集群可以包含多个数据库(Database)对象。

副本(replica)

ClickHouse集群包含如下副本。

双副本版:每个节点包含两个副本,某个副本服务不可用的时候,同一分片的另一个副本还可以继续服务。

单副本版:每个节点只有1个副本,该副本服务不可用时,会导致整个集群服务有损,需要等待此副本完全恢复服务状态,集群才能继续提供完全稳定服务。

分片(Shard)

在超大规模海量数据处理场景下,单台服务器的存储、计算资源会成为瓶颈。为了进一步提高效率,云数据库ClickHouse将海量数据分散存储到多台服务器上,每台服务器只存储和处理海量数据的一部分,在这种架构下,每台服务器被称为一个分片(Shard)。

表引擎(TableEngine)

表引擎(即表的类型)决定了:

  • 数据的存储方式和位置,写到哪里以及从哪里读取数据
  • 支持哪些查询以及如何支持。
  • 并发数据访问。
  • 索引的使用(如果存在)。
  • 是否可以执行多线程请求。
  • 数据复制参数。

    最常用的表引擎MergeTree家族,适用于高负载任务的最通用和功能最强大的表引擎。这些引擎的共同特点是可以快速插入数据并进行后续的后台数据处理。 MergeTree系列引擎支持数据复制(使用Replicated* 的引擎版本),分区和一些其他引擎不支持的其他功能。该类型的引擎包括(https://clickhouse.com/docs/zh/engines/table-engines/mergetree-family):

  • MergeTree
  • ReplacingMergeTree
  • SummingMergeTree
  • AggregatingMergeTree
  • CollapsingMergeTree
  • VersionedCollapsingMergeTree

  • GraphiteMergeTree

总之,ClickHouse是一个高性能、高可靠性、高可扩展性和低成本的列式数据库管理系统,适用于大数据分析、实时数据处理和时序数据处理等场景。

更多详细介绍和了解访问官网:什么是ClickHouse? | ClickHouse Docs

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

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

相关文章

第三讲 汇编初步 课程随手记

一、寄存器 32位CPU通用寄存器如下图所示: 因为教材依照的是32位CPU寄存器,而我安装的是64位寄存器,所以找了一下64位的寄存器的资料 PS:一般来说,Intel处理器字节存储顺序为小端法存储,是指数据的高字节保…

AIOps常见问题

AIOps的自动化通常指什么? AIOps 平台的自动化一般包括以下几个方面: 数据收集和整合:AIOps 平台可以从多个 IT 基础架构组件、应用需求与性能监视工具以及服务工单系统等数据源中收集并整合运维数据,形成一个全面的数据平台。数…

视频推拉流EasyDSS平台直播通道重连无法转推的原因排查与解决

视频推拉流EasyDSS视频直播点播平台,集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体,可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务。 用户使用EasyDSS平台对直播通道进行转推,发现只要关闭…

查看Linux特定用户组的所有用户

在Linux中查看属于特定用户组的所有用户的命令,可以使用以下几种方法: 通过 /etc/group 文件: 打开 /etc/group 文件并查找你想要查询的用户组,该文件每一行代表一个用户组及其成员。例如,要查看名为 developers 的用户…

matlab 感知器算法

1. 原理 两类线性可分的模式类:,设判别函数为:。 对样本进行规范化处理,即类样本全部乘以(-1),则有: 感知器算法通过对已知类别的训练样本集的学习,寻找一个满足上式的权向量。 2. 过程 2.1 …

Apache Flink连载(三十七):Flink基于Kubernetes部署(7)-Kubernetes 集群搭建-3

🏡 个人主页:IT贫道-CSDN博客 🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~ 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录

基于Springboot免费搭载轻量级阿里云OSS数据存储库(将本地文本、照片、视频、音频等上传云服务保存)

一、注册阿里云账户 打开https://www.aliyun.com/,申请阿里云账户并完成实名认证(个人)。这种情况就是完成了: 二、开通OSS服务 点击立即开通即可。 三、创建Bucket 申请id和secert: 进去创建一个Accesskey就会出现以…

“成像光谱遥感技术中的AI革命:ChatGPT应用指

遥感技术主要通过卫星和飞机从远处观察和测量我们的环境,是理解和监测地球物理、化学和生物系统的基石。ChatGPT是由OpenAI开发的最先进的语言模型,在理解和生成人类语言方面表现出了非凡的能力。本文重点介绍ChatGPT在遥感中的应用,人工智能…

指针的学习4

目录 回调函数 qsort使用样例 使用qsort函数排序整形数据 使用qsort函数排序结构体 回调函数 回调函数就是一个通过函数指针调用的函数。如果把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时&#xf…

35 Spring整合Elasticsearch

文章目录 Spring整合Elasticsearch引入依赖配置Elasticsearch解决冲突 使用ElasticsearchSpring Data Elasticsearch建立映射关系常用方法添加数据修改数据删除数据搜索数据(es核心)步骤构造搜索条件 并 应用进行查询使用查询结果 Spring整合Elasticsear…

设计模式2--Abstract Factory Design Pattern In C++

1.AFDP(抽象工厂设计模式) AFDP 定义了一个抽象类来创建相关的家族对象但未指定其具体子类 2.基本原理图 3.为什么/何时使用AFDP 1.你需要系统独立于对象的创建、组合和表示方式。 2.显示接口而不是实现。 3.系统需要配置多个对象系列之一 4.UML图 5…

安卓部分手机使用webview加载链接后白屏(Android低版本会出现的问题)

前言 大爷:小伙我这手机怎么打开你们呢这个是白屏什么都不显示。 大娘:小伙我这也是打开你们呢这功能,就是一个白屏什么也没有,你们呢的应用不会有病毒吧。 小伙:我的手机也正常; 同事:我的也正…

Docker容器化解决方案(镜像,容器的操作管理)

Docker镜像管理 搜索官方仓库镜像 docker search [rootlocalhost ~]# docker search nginx NAME DESCRIPTION STARS OFFICIAL nginx Official build of Nginx. …

【位运算】【左右位移】Leetcode 2917. 找出数组中的 K-or 值

【位运算】【左右位移】Leetcode 2917. 找出数组中的 K-or 值 解法 位运算 ---------------&#x1f388;&#x1f388;题目链接 2917. 找出数组中的 K-or 值&#x1f388;&#x1f388;------------------- 【1】<<&#xff1a;左位移运算符 符号位不变&#xff0c;低…

网络编程的学习

思维导图 多路复用代码练习 select完成TCP并发服务器 #include<myhead.h> #define SER_IP "192.168.125.73" //服务器IP #define SER_PORT 8888 //服务器端口号int main(int argc, const char *argv[]) {//1、创建用于监听的套接字int sfd -1;s…

基于GPT-SoVITS少样本语音转换的实时交互TTS

项目地址&#xff1a;https://github.com/DLW3D/GPT-SoVITS 该项目基于 RVC-Boss/GPT-SoVITS-WebUI 前言 GPT-SoVITS-WebUI 实现了使用WebUI的简易小样本语音模拟和文本转语音所需的完整流程&#xff0c;包括数据清洗、文本标注、模型微调、文本转语音。 该项目是对 GPT-SoVI…

动态规划课堂3-----简单多状态问题(买卖股票最佳时机)

目录 引入&#xff1a; 例题1&#xff1a;按摩师&#xff08;打家劫舍I&#xff09; 例题2&#xff1a;打家劫舍II 例题3&#xff1a;删除并获得点数 例题4&#xff1a;粉刷房子 例题5&#xff1a;买卖股票的最佳时机含冷冻 结语&#xff1a; 引入&#xff1a; 相信看到…

uniapp+vue3+vites使用lime-echart问题记录

问题记录 1.vue3使用echarts,H5和微信小程序兼容问题 1.vue3使用echarts,H5和微信小程序兼容问题 问题描述&#xff0c;正常使用echarts&#xff0c;H5正常&#xff0c;小程序报错 报错信息如下 解决方案&#xff1a; 注意要点一&#xff1a;vue3需要使用esm文件 地址&#x…

在ubuntu上安装hadoop完分布式

准备工作 Xshell安装包 Xftp7安装包 虚拟机安装包 Ubuntu镜像源文件 Hadoop包 Java包 一、安装虚拟机 创建ubuntu系统 完成之后会弹出一个新的窗口 跑完之后会重启一下 按住首先用ctrlaltf3进入命令界面&#xff0c;输入root&#xff0c;密码登录管理员账号 按Esc 然后输入 …

解决/sys/kernel/debug/下没有任何文件的

问题&#xff1a; /sys/kernel/debug目录下没有任何信息 解决&#xff1a; 首先检查Debug Filesystem是否选中&#xff0c;其位置是&#xff1a; Kernel hacking -> Compile-time checks and compiler options -> Debug Filesystem 打开configs文件查看是否为y: arch/arm…