当前位置: 首页 > news >正文

ClickHouse--01--简介

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 1. ClickHouse 简介
        • 官网: [https://clickhouse.com/docs/zh](https://clickhouse.com/docs/zh)
    • 1.1 大数据处理场景
    • 1.2 什么是 ClickHouse
    • 1.3 OLAP 场景的特征
  • 2. ClickHouse 特性
    • 2.1 完备的 DBMS 功能
    • 2.2 列式存储
        • 行式存储: 在数据==写入==和==修改==上具有优势
        • 列式存储: 在数据==读取和解析==、==分析数据==上具有优势
        • 列式储存的好处:
    • 2.3 数据压缩
    • 2.4 向量化执行引擎
    • 2.5 关系模型与标准 SQL 查询
        • ClickHouse 是==大小写敏感==,SELECT a 和 SELECT A 所代表的语义不同
    • 2.6 多样化的表引擎
    • 2.7 多线程与分布式
    • 2.8 多主架构
    • 2.9 交互式查询
    • 2.10 数据分片与分布式查询


1. ClickHouse 简介

官网: https://clickhouse.com/docs/zh

在这里插入图片描述

1.1 大数据处理场景

在大数据处理场景中,流处理和批处理使用到的技术大致如下:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 什么是 ClickHouse

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

  • ClickHouse 是一个开源的,用于联机分析(OLAP)的列式数据库管理系统(DBMS-database manager system), 它是面向列的,并允许使用 SQL 查询,实时生成分析报告。ClickHouse 最初是一款名Yandex.Metrica 的产品,主要用于 WEB流量分析。ClickHouse 的全称是 Click Stream,Data WareHouse,简称 ClickHouse。
  • ClickHouse 不是一个单一的数据库,它允许在运行时创建表和数据库,加载数据和运行查询,而无需重新配置和重新启动服务器。ClickHouse 同时支持列式存储和数据压缩,这是对于一款高性能数据库来说是必不可少的特性。

一个非常流行的观点认为,如果你想让查询变得更快,最简单且有效的方法是减少数据扫描范围和数据传输时的大小,而列式存储和数据压缩就可以帮助我们实现上述两点,列式存储和数据压缩通常是伴生的,因为一般来说列式存储是数据压缩的前提

1.3 OLAP 场景的特征

 绝大多数是读请求。
 数据以相当大的批次(> 1000 行)更新,而不是单行更新;或者根本没有更新。
 已添加到数据库的数据不能修改。
 对于读取,从数据库中提取相当多的行,但只提取列的一小部分。
 宽表,即每个表包含着大量的列。
 查询相对较少(通常每台服务器每秒查询数百次或更少)。
 对于简单查询,允许延迟大约 50 毫秒。
 列中的数据相对较小:数字和短字符串(例如,每个 URL 60 个字节)。
 处理单个查询时需要高吞吐量(每台服务器每秒可达数十亿行)。
 事务不是必须的。
 对数据一致性要求低。有副本情况下,写入一个即可,后台自动同步。
 每个查询有一个大表。除了他以外,其他的都很小。
 查询结果明显小于源数据。换句话说,数据经过过滤或聚合,因此结果适合于单个服务
器的 RAM 中。

通过以上 OLAP 场景分析特点很容易可以看出,OLAP 场景与其他通常业务场景(例如,OLTP 或 K/V)有很大的不同, 因此想要使用 OLTP 或 Key-Value 数据库去高效的处理分析查询场景,并不是非常完美的适用方案。例如,使用 OLAP 数据库去处理分析请求通常要优于使用 MongoDB 或 Redis 去处理分析请求。

2. ClickHouse 特性

2.1 完备的 DBMS 功能

  • ClickHouse 是一个数据库管理系统,而不仅是一个数据库,作为数据库管理系统具备完备的管理功能:

在这里插入图片描述

2.2 列式存储

目 前 大 数 据 存 储 有 两 种 方 案 可 以 选 择 , 行 式 存 储 (Row-Based) 和 列 式 存 储(Column-Based)
在这里插入图片描述

行式存储: 在数据写入修改上具有优势

在这里插入图片描述

列式存储: 在数据读取和解析分析数据上具有优势

在这里插入图片描述

在这里插入图片描述

案例
在这里插入图片描述

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

2.3 数据压缩

在这里插入图片描述

2.4 向量化执行引擎

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.5 关系模型与标准 SQL 查询

在这里插入图片描述

ClickHouse 是大小写敏感,SELECT a 和 SELECT A 所代表的语义不同

2.6 多样化的表引擎

在这里插入图片描述

2.7 多线程与分布式

在这里插入图片描述
在这里插入图片描述

2.8 多主架构

在这里插入图片描述

2.9 交互式查询

在这里插入图片描述

2.10 数据分片与分布式查询

在这里插入图片描述

相关文章:

  • [高性能] - 缓存架构
  • AJAX——认识URL
  • 风行智能电视N39S、N40 强制刷机升级方法,附刷机升级数据MstarUpgrade.bin
  • MATLAB语音去噪系统
  • Stable Diffusion 模型下载:RealCartoon-Realistic - V13
  • spring boot(2.4.x之前版本)和spring cloud项目中配置文件的作用
  • 【证书管理】实验报告
  • 数据结构第十五天(树的存储/孩子表示法)
  • C语言中在main函数之后运行的函数
  • Acwing 5468. 最有价值字符串【挖掘性质+分类讨论】
  • CVE-2018-19518 漏洞复现
  • 搜索二维矩阵[中等]
  • 【Linux】Linux下的基本指令
  • Android AOSP源码研究之万事开头难----经验教训记录
  • C++学习Day03之new和delete使用
  • 时间复杂度分析经典问题——最大子序列和
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 《剑指offer》分解让复杂问题更简单
  • android图片蒙层
  • bearychat的java client
  • create-react-app做的留言板
  • E-HPC支持多队列管理和自动伸缩
  • java2019面试题北京
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • python大佬养成计划----difflib模块
  • vue-loader 源码解析系列之 selector
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 官方解决所有 npm 全局安装权限问题
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 那些被忽略的 JavaScript 数组方法细节
  • 前端学习笔记之观察者模式
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 使用Gradle第一次构建Java程序
  • 听说你叫Java(二)–Servlet请求
  • 我的面试准备过程--容器(更新中)
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 原生js练习题---第五课
  • 【干货分享】dos命令大全
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • $.ajax()方法详解
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (NSDate) 时间 (time )比较
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (独孤九剑)--文件系统
  • (二)斐波那契Fabonacci函数
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (黑马C++)L06 重载与继承
  • (强烈推荐)移动端音视频从零到上手(下)
  • (三)c52学习之旅-点亮LED灯
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子