Clickhouse: 数据基本知识

产品概述

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.mfbz.cn/a/432545.html

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

相关文章

挑战杯 基于深度学习的人脸表情识别

文章目录 0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术 2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的人脸表情识别 该项目较…

Unity角色动画变成半跪\半蹲\下沉 的问题

导入的人物动画发生如图形态 解决方法:找到动画模型,Rig - AnimationType 改为Humanoid ,然后Apply一下

Vue+OpenLayers7入门到实战目录

前言 本篇作为《VueOpenLayers7入门到实战》所有文章的二合一汇总目录,方便查找。 本专栏源码是由OpenLayers7.x版本结合Vue框架编写。 本专栏从Vue搭建脚手架到如何引入OpenLayers7依赖的每一步详细新手教程,再到通过各种入门案例和综合性的实战案例&a…

【MySQL】视图、索引

目录 视图视图的用途优点视图的缺点创建视图查看视图修改视图删除视图注意事项 索引索引的原理索引的数据结构二分查找法Hash结构Hash冲突!!! B树二叉查找树 存在问题改造二叉树——B树降低树的高度 B树特点案例继续优化的方向 改造B树——B树…

项目管理工具及模板总结|甘特图|OKR周报|任务管理|头脑风暴

项目管理常用模板大全: 1. 项目组OKR周报 2. 项目组传统周报工作法 3. 项目甘特图 4. 团队名单 5. 招聘跟进表 6. 出勤统计 7. 年度工作日历 8. 项目工作年计划 9. 版本排期 10. 项目组任务管理 11. 项目规划模板 12. 产品分析报告 13. 头脑风暴 软件开发管理全套标…

Linux CentOS安装教程

CentOS是一种基于Linux的免费、开源的操作系统,它是Red Hat Enterprise Linux(RHEL)源代码的重建版本。CentOS致力于提供稳定、可靠的服务器操作系统,广泛应用于企业级服务器和Web服务器。它具有强大的安全性和稳定性,…

阿里云服务器配置CPU、内存、存储、带宽选择方法

阿里云服务器配置怎么选择?CPU内存、公网带宽和系统盘怎么选择?个人开发者或中小企业选择轻量应用服务器、ECS经济型e实例,企业用户选择ECS通用算力型u1云服务器、ECS计算型c7、通用型g7云服务器,阿里云服务器网aliyunfuwuqi.com整…

Vue+腾讯地图-实现关键词输入提示功能

不废话,上代码~~~ 效果图: 1、先去腾讯地图后台创建自己的应用获取到应用的 Key 腾讯地图后台地址:腾讯位置服务 - 立足生态,连接未来 创建应用的 Key 如下: 2、在项目中添加腾讯地图API的js插件,如…

Thinkphp5.1中,将数组赋值给js使用

一、例如Thinkphp5.1中的的代码是这样的 $data [status > 1,msg > 加载成功,data > [id > 1,username > 小洪帽,] ];$this->assign(data,$data);二、JS代码接收PHP中的数组 注意 <> 符号是不需要放引号的。 let arr <?json_encode($data)?>…

LeetCode 刷题 [C++] 第98题.验证二叉搜索树

题目描述 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 题目分析 由题…

【排序】详解冒泡排序

一、思想 冒泡排序的基本思想是利用两两比较相邻记录的方式&#xff0c;通过一系列的比较和交换操作&#xff0c;使得较大或较小的元素逐渐移动到数列的一端。在每一轮的排序过程中&#xff0c;都会从数列的起始位置开始&#xff0c;对相邻的元素进行比较&#xff0c;如果它们…

Anthropic 公司最新宣布,他们的 AI 聊天机器人模型击败了 OpenAI 的 GPT-4

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

设计MySQL数据表的几个注意点

最近合作搞项目&#xff0c;发现了很多问题。特别的&#xff0c;数据库层面上的问题更为致命。记录一下&#xff0c;希望后面看到博客的同学们注意。 注意&#xff1a;以下观点只用于一般情况下的单体、微服务&#xff0c;不保证适用所有场景。 一、ID问题 ID名称问题 如下图…

四平方和c++

题目 输入样例&#xff1a; 5输出样例&#xff1a; 0 0 1 2 思路 首先想到的是使用三重循环求出 a&#xff0c;b&#xff0c;c&#xff0c;d 可以通过 n - a - b - c 得到。理论时间复杂度为O(1000 * 1000 * 1000) O(10^9)。因此需要想办法降低循环层数。 考虑使用两个双重循…

Unreal Engine5记录 02简单的第三人称游戏

导航视口 选择对应的第三人称游戏选项&#xff0c;并选择项目创建的位置&#xff0c;点击创建 创建之后&#xff0c;会打开一个默认的导航视口 点击运行&#xff0c;进入窗口 你就像进入了一个游戏关卡&#xff0c;这个和你玩的第三人称游戏一样&#xff08;类似吃鸡&#xf…

React-useEffect

1.概念 说明&#xff1a;用于在React组件中创建不是由事件引起而是由渲染本身引起的操作&#xff0c;比如发送 A列AX请求&#xff0c;更改DOM等。 2.案例 // useEffect用于组件不是由事件引起的而是由渲染本身引起的操作&#xff0c;如ajax,更改Dom等。 import { useEffect,…

图解目标检测的现代历史

任务分类 图像分类 根据图像的主要对象对图像进行分类。 目标定位 预测包含主要对象的图像区域。然后&#xff0c;可以使用图像分类来识别该区域内的物体 目标检测 定位和分类出现在图像中的所有对象。这个任务通常包括&#xff1a;确定区域&#xff0c;然后对其中的对象进行…

SpringCloudGateway工作原理与链路图

SpringCloudGateway基本介绍 Spring Cloud Gateway 构建于Spring Boot 2.x、 Spring WebFlux和Project Reactor之上。因此,在使用 Spring Cloud Gateway 时,您可能不会应用许多熟悉的同步库(例如 Spring Data 和 Spring Security)和模式。 Spring Cloud Gateway 需要 Sprin…

javaWebssh文玩竞价管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh文玩竞价管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0…

1909_Arm Cortex-M3编程模型

1909_Arm Cortex-M3编程模型 全部学习汇总&#xff1a; g_arm_cores: ARM内核的学习笔记 (gitee.com) 编程模型的部分除了单独的核心寄存器描述之外&#xff0c;它还包含有关处理器模式和软件执行和堆栈的特权级别的信息。 处理器有两种模式&#xff0c;分别是线程模式和Handle…
最新文章