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 引擎表设置分区

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

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

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

相关文章

数据库被人破解,删除数据,勒索

事情是这样的,我买了一台服务器自己部署项目玩儿玩儿,我的数据库运行在3306端口,密码没改,就是默认的123456,诡异的事情发生了,用了一段时间之后,数据库突然连接不上了,我一通操作猛…

权限提升:利用Linux错配提权

目录 Linux权限基础 Linux用户权限 Linux文件权限 特殊的Linux文件权限 Linux本机信息收集 Linux错配提权 crontab计划任务提权 SUID提权 Linux权限基础 Linux用户权限 在Linux中,根据权限的不同,大致可以分为三种:超级用户&#x…

QQ利用KEY漏洞上号登录空间邮箱网盘群管等-详细讲解

QQ利用KEY漏洞上号登录空间邮箱网盘群管等-详细讲解 QQ通过key登录空间邮箱等的原理是使用了数字签名技术。在用户登录时,QQ服务器会生成一个Key(密钥),并将该Key发送给用户的QQ软件。用户的QQ软件将密钥与其私钥进行加密&#x…

如何在Django中使用分布式定时任务并结合消息队列

如何在Django中使用分布式定时任务并结合消息队列 如何在Django中使用分布式定时任务并结合消息队列项目背景与意义实现步骤1. 安装Celery和Django-celery-beat2. 配置Celery3. 配置Django-celery-beat4. 定义定时任务5. 启动Celery worker 和 beat6. Celery 指令7. 对接消息队…

maven创建webapp+Freemarker组件的实现

下载安装配置maven Maven官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘123云盘为您提供Maven最新版正式版官方版绿色版下载,Maven安卓版手机版apk免费下载安装到手机,支持电脑端一键快捷安装https://www.123pan.com/s/9QRqVv-TcUY.html链接为3.6.2-3.6.3的版本 下载解…

代码+视频基于R语言进行K折交叉验证

我们在建立数据模型后通常希望在外部数据验证模型的检验能力。然而当没有外部数据可以验证的时候,交叉验证也不失为一种方法。交叉验验证(交叉验证,CV)则是一种评估模型泛化能力的方法,广泛应用…

tee漏洞学习-翻译-3:TrustZone exploit for MSM8974

原文:http://bits-please.blogspot.com/2015/08/full-trustzone-exploit-for-msm8974.html 在这篇博文中,我们将介绍利用上一篇文章中描述的 TrustZone 漏洞的完整过程。 在开发此漏洞时,我只使用了我值得信赖的(个人&#xff0…

电脑上用什么软件恢复数据?2024年受欢迎的恢复软件推荐

在当今数字化的时代,电脑已经成为我们生活中不可或缺的工具。然而,由于各种原因,我们的电脑可能会出现数据丢失的情况。这时,一款好的数据恢复软件就显得尤为重要。本文将为大家介绍一款在2024年备受推崇的数据恢复软件&#xff0…

第13章 网络 Page724 asio定时器

程序代码: 11行,声明一个ios对象 13行,使用ios对象作为参数声明一个定时器,此时,定时器和ios完成了关联,后面定时器如果有任务的话,就可以将任务交给ios 16行,为定时器设置一个定…

2048游戏C++板来啦!

个人主页:PingdiGuo_guo 收录专栏:C干货专栏 大家好呀,我是PingdiGuo_guo,今天我们来学习如何用C编写一个2048小游戏。 文章目录 1.2048的规则 2.步骤实现 2.1: 初始化游戏界面 2.1.1知识点 2.1.2: 创建游戏界面 2.2: 随机…

【光学】学习记录1-几何光学的近轴理论

课程来源:b站资源-光学-中科大-崔宏滨老师(感谢),本系列仅为自学笔记 【光学 中科大 崔宏滨老师 1080p高清修复(全集)】https://www.bilibili.com/video/BV1NG4y1C7T9?p2&vd_source7ba37b2cff2a1b783…

生活篇——华为手机去除负一屏

华为手机去除如下图的恶心负一屏 打开华为的应用市场app 进入:我的-设置-国家/地区(改为俄罗斯)-进入智慧助手检查更新并更新智慧助手。 然后重复开始的操作,将地区改回中国,这样就没有负一屏了。