ClickHouse--05--MergeTree 表引擎

2024-02-15 12:12
文章标签 引擎 05 clickhouse mergetree

本文主要是介绍ClickHouse--05--MergeTree 表引擎,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

文章目录

  • MergeTree 系列表引擎
    • 前言
    • MergeTree 系列表引擎 --功能
    • MergeTree 系列表引擎 --种类
  • 1.MergeTree
    • 1.1MergeTree 建表语句:
    • 1.2 MergeTree 引擎表目录解析
        • 查询过程 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/898313841ff643af8d6d9284ba82847b.png)
    • 1.3 MergeTree 引擎表设置分区


MergeTree 系列表引擎

前言

ClickHouse 提供了大约 28 种表引擎,各有各的用途 纷繁复杂。ClickHouse 表引擎一共分为四个系列,分别是 Log 系列、MergeTree 系列、Integration 系列、Special 系列。其中包含了两种特殊的表引擎 Replicated、Distributed,功能上与其他表引擎正交,根据场景组合使用

  • Log 系列用来做小表数据分析
  • MergeTree 系列用来做大数据量分析
  • Integration 系列则多用于外表数据集成。
  • 再复制表 Replicated 系列
  • 分布式表 Distributed 等,

在所有的表引擎中,最为核心的当属 MergeTree 系列表引擎,这些表引擎拥有最为强大的性能和最广泛的使用场合。对于非 MergeTree 系列的其他引擎而言,主要用于特殊用途,场景相对有限。

MergeTree 系列表引擎 --功能

而 MergeTree 系列表引擎是官方主推的存储引擎,有

  • 主键索引
  • 数据分区
  • 数据副本
  • 数据采样
  • 删除和修改等功能,
  • 支持几乎所有 ClickHouse 核心功能。

MergeTree 系列表引擎 --种类

MergeTree 系 列 表 引 擎 包 含 :

  • MergeTree
  • ReplacingMergeTree
  • SummingMergeTree(汇总求和功能)
  • AggregatingMergeTree(聚合功能)
  • CollapsingMergeTree(折叠删除功能)
  • VersionedCollapsingMergeTree(版本折叠功能)引擎

在这些的基础上还可以叠加 Replicated 和 Distributed。

1.MergeTree

  • MergeTree 在写入一批数据时,数据总会以数据片段的形式写入磁盘,且数据片段在磁盘上不可修改
  • 为了避免片段过多,ClickHouse 会通过后台线程,定期合并这些数据片段,属于相同分区的数据片段会被合成一个新的片段。这种数据片段往复合并的特点,也正是合并树名称的由来。
    在这里插入图片描述

1.1MergeTree 建表语句:

在这里插入图片描述

  • ENGINE:ENGINE = MergeTree(),MergeTree 引擎没有参数。

  • ORDER BY:排序字段。比如 ORDER BY (Col1, Col2),值得注意的是,如果没有使用 PRIMARY KEY 显式的指定主键 ORDER BY 排序字段自动作为主键。如果不需要排序,则可以使用 ORDER BY tuple() 语法,这样的话,创建的表也就不包含主键。这种情况下,ClickHouse 会按照插入的顺序存储数据。必选项。

  • PARTITION BY : 分 区 字 段 , 例 如 要 按 月 分 区 , 可 以 使 用 表 达 toYYYYMM(date_column),这里的 date_column 是一个 Date 类型的列,分区名的格式会是"YYYYMM"。可选。

  • PRIMARY KEY:指定主键,如果排序字段与主键不一致,可以单独指定主键字段。否则默认主键是排序字段。大部分情况下不需要再专门指定一个 PRIMARY KEY子句,注意,在 MergeTree 中主键并不用于去重,而是用于索引,加快查询速度。可选。

这里是引用

  • SAMPLE BY:采样字段,如果指定了该字段,那么主键中也必须包含该字段。比如 SAMPLE BY intHash32(UserID) ORDER BY (CounterID, EventDate,intHash32(UserID))。可选。
  • TTL:数据的存活时间。在 MergeTree 中,可以为某个列字段或整张表设置 TTL。当时间到达时,如果是列字段级别的 TTL,则会删除这一列的数据;如果是表级别的 TTL,则会删除整张表的数据。可选。
  • SETTINGS:额外的参数配置。可选。
    在这里插入图片描述
    示例:

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

MergeTree引擎会在插入数据 15 分钟左右,将同一个分区的各个分区文件片段合并成一整个分区文件

这里也可以手动执行 OPTIMIZE 语句手动触发合并

在这里插入图片描述

1.2 MergeTree 引擎表目录解析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
进入到某一个分区目录片段“202102_2_2_0”中,我们可以看到如下目录:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查询过程 在这里插入图片描述

1.3 MergeTree 引擎表设置分区

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

这篇关于ClickHouse--05--MergeTree 表引擎的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/711363

相关文章

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

MySQL 存储引擎 MyISAM详解(最新推荐)

《MySQL存储引擎MyISAM详解(最新推荐)》使用MyISAM存储引擎的表占用空间很小,但是由于使用表级锁定,所以限制了读/写操作的性能,通常用于中小型的Web应用和数据仓库配置中的只读或主要... 目录mysql 5.5 之前默认的存储引擎️‍一、MyISAM 存储引擎的特性️‍二、MyISAM 的主

MybatisPlus3.3.1整合clickhouse的过程

《MybatisPlus3.3.1整合clickhouse的过程》:本文主要介绍MybatisPlus3.3.1整合clickhouse的过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定... 前言ClickHouse是俄罗斯Yandex发布的一款数据分析型数据库支持sql语法,详情可以访问官网,

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争