首页 > 其他分享 >ClickHouse 入门基本介绍

ClickHouse 入门基本介绍

时间:2024-06-18 19:02:05浏览次数:23  
标签:存储 入门 写入 介绍 查询 OLAP 数据 ClickHouse

一、简介

官网:clickhouse.tech

  • ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的列式存储数据库(DBMS),使用 C++ 语言编写,主要用于在线分析处理查询(OLAP),能够使用 SQL 查询实时生成分析数据报告。
  • OLAP:联机分析处理,以 ClickHouse 等分析型数据库为代表,适合对数据进行一次插入多次查询、聚合统计等操作,不太擅长数据的更新和删除,不支持事务
  • OLTP:联机事务处理,以 Mysql 等关系型数据库为代表,适合对数据进行增删改查操作

二、特点

1. 列式存储

在这里插入图片描述

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

2. DBMS 的功能

几乎覆盖了标准 SQL 的大部分语法,包括 DDL 和 DML,以及配套的各种函数,用户管理及权限管理,数据的备份与恢复。

3. 多样化引擎

ClickHouse 和 MySQL 类似,把表级的存储引擎插件化,根据表的不同需求可以设定不同的存储引擎。目前包括合并树、日志、接口和其他四大类 20 多种引擎。

4. 高吞吐写入能力

  • ClickHouse 采用类 LSM Tree的结构,数据写入后定期在后台 Compaction。通过类 LSM tree 的结构,ClickHouse 在数据导入时全部是顺序 append 写,写入后数据段不可更改,在后台 compaction 时也是多个段 merge sort 后顺序写回磁盘。顺序写的特性,充分利用了磁盘的吞吐能力,即便在 HDD 上也有着优异的写入性能。
  • 官方公开 benchmark 测试显示能够达到 50MB-200MB/s 的写入吞吐能力,按照每行 100Byte 估算,大约相当于 50W-200W 条/s 的写入速度。

5. 数据分区与线程级并行

  • ClickHouse 将数据划分为多个 partition,每个 partition 再进一步划分为多个 index granularity(索引粒度),然后通过多个 CPU核心分别处理其中的一部分来实现并行数据处理。在这种设计下,单条 Query 就能利用整机所有 CPU。极致的并行处理能力,极大的降低了查询延时。
  • 所以,ClickHouse 即使对于大量数据的查询也能够化整为零平行处理。但是有一个弊端就是对于单条查询使用多 cpu,就不利于同时并发多条查询。所以对于高 qps 的查询业务,ClickHouse 并不是强项。

6. 性能

ClickHouse 像很多 OLAP 数据库一样,单表查询速度优于关联查询,而且 ClickHouse 的两者差距更为明显。

标签:存储,入门,写入,介绍,查询,OLAP,数据,ClickHouse
From: https://blog.csdn.net/weixin_44480009/article/details/139781057

相关文章

  • 【启明智显产品介绍】Model4 工业级HMI芯片详解系列专题(二):高清解码
    Model4工业级HMI芯片详解系列专题(二)【高清解码】Model4工业级HMI芯片集成了图形显示和编解码相关的硬件模块,为高清图像显示、高清视频播放和高清摄像头输入提供了强大的硬件基础:DE显示引擎:1个UI图层,1个VI图层,最高性能1080P@60fpsVI图层支持1/31.999x~32x......
  • 【接口自动化测试】第一节.接口自动化测试基础和框架介绍
    文章目录前言一、接口自动化基础   1.1接口自动化基础介绍   1.2接口自动化测试流程   1.3选取自动化测试用例   1.4搭建自动化测试环境二、接口自动化测试框架   2.1接口自动化框架设计思路   2.2定义项目目录结构总结前......
  • 计算机图形学入门13:纹理映射常见问题、MipMap
        上一章介绍了纹理映射,这一章介绍纹理映射常见的问题。1.纹理太小 1.1产生原因        例如要渲染一面墙,它的分辨率4K,但与它对应的纹理大小是256x256,这样要怎样?显然纹理会被拉大。当墙面上一个点去查询纹理时,可能查询到不准确的值,如下:        ......
  • DGit介绍
    参考地址:http://githubengineering.com/introducing-dgit/DGit是“DistributedGit”的简写,即分布式Git。众所周知,Git本身就是分布式的,任何的Git仓库备份都是包含该项目所有历史版本的所有的文件,分支,以及提交记录。DGit利用Git的这个特性为每个仓库在三个服务器中保存着三......
  • HTML旅游网页设计制作 DW旅游网站官网滚动网页 DIV旅游风景介绍网页设计与实现
    ......
  • 如何开发盲盒小程序APP——入门指南
    一、前言随着盲盒经济的兴起,越来越多的开发者开始关注如何开发盲盒小程序APP。盲盒小程序不仅能为用户提供新颖的购物体验,还能为商家带来可观的利润。本文将为大家介绍如何入门开发盲盒小程序APP。二、需求分析目标用户:明确你的目标用户群体,如年轻人、潮流追随者等。功能需......
  • RK3568技术笔记九 编译Linux详细介绍
    在编译前需要按照前面的方法始化编译环境,否则会导致编译失败(若配置过则无需重复配置)。全自动编译包含所有镜像编译,包括:uboot编译、Kernel编译、Recovey编译、文件系统编译、编译完成镜像的更新与打包。      按照前面的方法初始化编译环境后,还需要设置RK_ROOTFS_SYS......
  • 硬件开发笔记(十九):Altium Designer 21软件介绍和安装过程
    若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/139706278长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…硬件相关开发......
  • JQuery基础28_入门1
    一、概念一个JavaScript框架。简化JS开发jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨 是“writeLess,DoMore”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便......
  • MySQL入门学习.子查询.IN
        IN子查询是MySQL中一种常见的子查询类型,用于在查询中确定一个值是否在另一个查询的结果集中。IN子查询的特点是简洁明了,它可以在一个查询中方便地检查一个值是否在一组值中,非常适用于需要进行条件验证或关联查询的情况。   在MySQL中,有以下几种常见的......