05_ClickHouse、MergeTree系列引擎概述与存储结构、建表模板、建表语句、MergeTree设置、建表示例、数据存储、数据片段(data part)
2.MergeTree系列引擎概述与存储结构
2.1.建表模板
2.2.建表语句
2.3.MergeTree设置
2.4.建表示例
2.5.数据存储
2.6.数据片段(data part)
2.MergeTree系列引擎概述与存储结构
MergeTree系列引擎是ClickHouse中最强大的表引擎。
数据按照片段被一批批写入表。
数据片段在后台按照一定的规则进行合并。
主要特征:
数据按照主键排序
稀疏索引快速检索数据
数据分片
增加查询性能
数据副本
ReplicatedMergeTree系列的引擎支持数据副本,提升查询性能和容错。
数据采样
设置采样方法,快速分析数据。
2.1.建表模板
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1] [TTL expr1], name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2] [TTL expr2], ... INDEX index_name1 expr1 TYPE type1(...) GRANULARITY value1,INDEX index_name2 expr2 TYPE type2(...) GRANULARITY value2
) ENGINE = MergeTree()
[PARTITION BY expr]
[ORDER BY expr]
[PRIMARY KEY expr]
[SAMPLE BY expr]
[TTL expr [DELETE|TO DISK 'xxx'|TO VOLUME 'xxx'], ...]
[SETTINGS name=value, ...]
2.2.建表语句
ENGINE:引擎的名称和参数
PARTITION BY:分区键
ORDER BY:表的排序键
PRIMARY KEY:表的主键
SAMPLE BY:采样表达式
TTL:定义行数据的存储时间,磁盘和卷之间数据片段的自动移动的逻辑
SETTINGS:控制MergeTree行为的额外参数
2.3.MergeTree设置
重要参数:
1.index_granularity:索引粒度,以行数为单位,表示索引标记(mark)之间的最大数据行数。默 认值:8192。
2.index_granularity_bytes:索引粒度,以字节为单位, 表示索引粒度的最大字节大小, 默认值:10Mb。设置该参数为0, 将仅按行数限制索引粒度大小。
3.use_minimalistic_part_header_in_zookeeper : 数据片段(part)头在ZooKeeper中的存储方法。设置为1,紧凑存储数据片段头信息,极大减少ZooKeeper的存储数据量
4.storage_policy : 存储策略。存储策略定义了使用多块设备进行数据存储的逻辑。
更多设置参数:参数列表及其功能参见表system.merge_tree_settings(SELECT * FROM system
.merge_tree_settings;)。
MergeTree参数的设置:
1.表级别:在建表时设置。
2.全局:config.xml的merge_tree标签内进行设置。
2.4.建表示例
1.非分区表
CREATE TABLE merge_demo
(
srcip String,
destip String,
date_time DateTime
) ENGINE = MergeTree()
ORDER BY srcip
SETTINGS index_granularity = 8192;
2.分区表
CREATE TABLE merge_partition_demo
(
`srcip` String,
`destip` String,
`date_time` DateTime
) ENGINE = MergeTree()
PARTITION BY toYYYYMM(date_time)
ORDER BY srcip;
2.5.数据存储
进入类似:/var/lib/clickhouse/data/{DBNAME}/{TABLENAME}/201403_1_1_0,可以看到类似如下的文件:
[root@hbase2 TabSeparated_demo]# cd 201403_1_1_0/
[root@hbase2 201403_1_1_0]# ll总用量 84
-rw-r----- 1 clickhouse clickhouse 648 11月 23 18:54 checksums.txt
-rw-r----- 1 clickhouse clickhouse 158 11月 23 18:54 columns.txt
-rw-r----- 1 clickhouse clickhouse 39 11月 23 18:54 CounterID.bin
-rw-r----- 1 clickhouse clickhouse 48 11月 23 18:54 CounterID.mrk2
-rw-r----- 1 clickhouse clickhouse 2 11月 23 18:54 count.txt
-rw-r----- 1 clickhouse clickhouse 10 11月 23 18:54 default_compression_codec.txt
-rw-r----- 1 clickhouse clickhouse 36 11月 23 18:54 EventDate.bin
-rw-r----- 1 clickhouse clickhouse 48 11月 23 18:54 EventDate.mrk2
-rw-r----- 1 clickhouse clickhouse 36 11月 23 18:54 JavaEnable.bin
-rw-r----- 1 clickhouse clickhouse 48 11月 23 18:54 JavaEnable.mrk2
-rw-r----- 1 clickhouse clickhouse 4 11月 23 18:54 minmax_EventDate.idx
-rw-r----- 1 clickhouse clickhouse 4 11月 23 18:54 partition.dat
-rw-r----- 1 clickhouse clickhouse 20 11月 23 18:54 primary.idx
-rw-r----- 1 clickhouse clickhouse 41 11月 23 18:54 RegionID.bin
-rw-r----- 1 clickhouse clickhouse 48 11月 23 18:54 RegionID.mrk2
-rw-r----- 1 clickhouse clickhouse 151 11月 23 18:54 Title.bin
-rw-r----- 1 clickhouse clickhouse 48 11月 23 18:54 Title.mrk2
-rw-r----- 1 clickhouse clickhouse 52 11月 23 18:54 UserID.bin
-rw-r----- 1 clickhouse clickhouse 48 11月 23 18:54 UserID.mrk2
-rw-r----- 1 clickhouse clickhouse 107 11月 23 18:54 WatchID.bin
-rw-r----- 1 clickhouse clickhouse 48 11月 23 18:54 WatchID.mrk2
[root@hbase2 201403_1_1_0]#
checksums.txt :校验文件的正确性和完整性。
columns.txt :存储列的信息,包括数据类型。
count.txt : 存储分区目录下数据的总行数。
primary.idx : 存储索引数据的文件。稀疏索引,能够加速查询。
bin文件 :存储数据的文件, 以压缩格式存储,默认LZ4。
mrk文件 :存储列的数据标记的文件。
partiton.dat : 存储存储分区表达式生成的值。使用二进制格式存储。该文件只在分区表中存储。
*minmax_文件 : 存储能当前目录下, 分区字段对应的原始字段的最小和最大值。
skp_idx_.idx、skp_idx_.mrk : skip索引标记文件。
2.6.数据片段(data part)
一个表是由按主键排序的数据片段(part)组成。
当向表中插入数据时, 将创建单独的数据片段。
ClickHouse在后台合并数据片段以便更高效的存储。
不会合并来自不同分区的数据片段。
05_ClickHouse、MergeTree系列引擎概述与存储结构、建表模板、建表语句、MergeTree设置、建表示例、数据存储、数据片段(data part)相关推荐
- 04_ClickHouse表引擎概述、MergeTree系列引擎、Log系列引擎、集成引擎、特定功能的引擎(学习笔记)
1.表引擎概述 1.1.MergeTree系列引擎 1.2.Log系列引擎 1.3.集成引擎 1.4.特定功能的引擎 1.表引擎概述 ClickHouse在建表时必须指定表引擎. 表引擎主要分为四大类 ...
- 客快物流大数据项目(九十二):ClickHouse的MergeTree系列引擎介绍和MergeTree深入了解
文章目录 ClickHouse的MergeTree系列引擎介绍和MergeTree深入了解 一.MergeTree系列引擎介绍 二.MergeTree深入了解 1.创建MergeTree ...
- clickhouse MergeTree系列引擎
在所有的表引擎中,最为核心的当属MergeTree系列表引擎,这些表引擎拥有最为强大的性能和最广泛的使用场合.对于非MergeTree系列的其他引擎而言,主要用于特殊用途,场景相对有限.而MergeT ...
- JavaWeb - 数据库,MySQL安装卸载,MySQL服务器存储结构,sql语言,使用sql操作数据库/数据库表/表中记录,聚集函数,分组操作,limit关键字,重置root密码
转载请注明出处:https://blog.csdn.net/mythmayor/article/details/72781451 1.数据库的简介 (1)什么是数据库,就是一个文件系统,使用标准sql ...
- ClickHouse内核分析-MergeTree的存储结构和查询加速
注:以下分析基于开源 v19.15.2.2-stable 版本进行 引言 ClickHouse是最近比较火的一款开源列式存储分析型数据库,它最核心的特点就是极致存储压缩率和查询性能,本人最近正在学习C ...
- 擎创工程师实战| ClickHouse存储结构及索引详解
ClickHouse作为近年来备受关注的开源列式数据库,主要用于数据分析(OLAP)领域.ClickHouse实现了大多数当前主流的数据分析技术,提供了极致的查询性能,能够以极低的成本存储海量数据,简 ...
- 联合索引会创建几个索引_联合索引在B+Tree上的存储结构及数据查找方式
来源:SegmentFault 思否社区作者:木子雷 前言: 本篇文章主要是阐述下 联合索引 在 B+Tree 上的实际存储结构. 本文主要讲解的内容有: 联合索引在B+树上的存储结构 联合索引的查找 ...
- MYSQL Innodb逻辑存储结构
转载于网络 这几天在读<MySQL技术内幕 InnoDB存储引擎>,对 Innodb逻辑存储结构有了些了解,顺便也记录一下: 从InnoDB存储引擎的逻辑存储结构看,所有数据都被逻辑地存放 ...
- 联合索引会创建几个索引_联合索引在B+树上的存储结构及数据查找方式
能坚持别人不能坚持的,才能拥有别人未曾拥有的. 关注编程大道公众号,让我们一同坚持心中所想,一起成长!! 原文首发于该公号,欢迎关注 引言 上一篇文章<MySQL索引那些事>主要讲了MyS ...
最新文章
- 小甲鱼关于push,pop指令的一个编程题
- python游戏脚本实例-Python使用pygame模块编写俄罗斯方块游戏的代码实例
- select/poll/epoll 与 /dev/poll
- 1.1 计算机的发展
- PHP小白学习日程之旅
- matlab氢原子杂化轨道,网络版原子和分子结构可视化程序的开发
- java 中的访问修饰符
- java屏蔽关键字_替换禁用语(指定关键字)的过滤器
- 使用BootStrap编写网页,如何设置全屏页面背景?
- ClickHouse之简单性能测试
- IDEA无法加载log文件
- Silverlight 5 Beta新特性[4]文本缩进控制
- Net设计模式实例之中介者模式(Mediator Pattern)
- centos7 安装Gitlab
- ServletContext的应用(共享数据、获取初始化参数、请求转发、读取资源文件)【源码解析】
- WangEdit富文本编辑器图标修改
- python制作自动交易软件排名_A股股票自动化交易软件的使用和简易说明书,根据多年经验使用python开发...
- MinIO-linux-amd64下载
- 虚拟拨号服务器名称,怎么设置虚拟拨号服务器
- 优漫动游平面设计思维思维训练法
热门文章
- 阿里Python后端1w+薪资面试真题!(附带准答案)offer轻松拿到手
- 微信和Python之间,还能这样玩,你所不知道的骚操作!
- 机器学习(2.sklearn(Scikit-learn)库、字典数据的特征抽取)
- Django框架(5.django中模型类建立关系和多表关系查询)
- Flask框架(flask中设置和获取session)
- 用100行python代码发现语音识别文本错误词,并将结果和正确词一一对应
- wxWidgets:wxAcceleratorTable类用法
- boost::spirit模块实现使用不同的输出语法格式化单个容器类型的测试程序
- boost::unique_copy相关的测试程序
- boost::mpl::min和boost::mpl::max相关的测试程序