ClickHouse 日志引擎说明

简介: ClickHouse 日志引擎说明

一、表引擎即表的类型

特性:

数据的存储方式和位置,写到哪里以及从哪里读取数据

支持哪些查询以及如何支持

并发数据访问

索引的使用(如果存在)

是否可以执行多线程请求

数据复制参数

1、日志引擎

写入许多小的数据量(少于100万行)的表场景

共性:

       数据存储在磁盘上

       写入时将数据追加在文件末尾

       不支持突变操作

       不支持索引

               select在范围查询时效率不高

       非原子地写入数据

               某些事情破坏了写操作,例如:服务器异常关闭,表会损坏

差异:

       Log和StripeLog引擎支持:

       并发访问数据的锁

                `INSERT` 请求执行过程中表会被锁定,并且其他的读写数据的请求都会等待直到锁定被解除。如果没有写数据的请求,任意数量的读请求都可以并发执行。

         并行读取数据

               在读取数据时,ClickHouse 使用多线程。 每个线程处理不同的数据块。

1)TinyLog

数据存储在磁盘上,每列都存储在单独的压缩文件中,写入时,数据将附加到文件末尾。

并发数据访问不受任何限制:

       如果同时从表中读取并在不同的查询中写入,则读取操作将抛出异常。

如果同时写入多个查询中的表,则数据将会被破坏

特性:适用于一次写入多次读取,不支持索引

适合:小批量处理的中间数据

04038be37d3358bc9cb11be15ffe1da.png

2c8b1506476aebfc04e7f3020ed15b6.png

8df21f9f1beec297aa51667eef60a91.png

a1b86e882291b40b2cefb90b30c1e76.png

2)StripeLog

创建表:[if not exists]  可选项,如果表不存在则创建

create table if not exists ttt (id Int8,name String) engine=StripeLog;

50c37af772fcfc9b1736bec64af9822.png

写数据:

将所有列写在一个文件中,数据追加在表文件的末尾,逐列写入

文件格式:

       data.bin   --数据文件

       index.mrk --带标记文件,存储带有每个数据块每列的偏移量

不支持alter update、alter delete

读数据:

并行读取数据,select返回数据顺序不可知,可以用order by排序

7e84452b405fffe096bcda00d010ff2.png

插入数据:

insert 每次都会在data.bin中创建一个新的数据块

d853870d4dbcc448b78e1ff62c20fe6.png

f06fe1220e9477a0796db8740833976.png

3)Log

适用于临时数据

每列分开存储,可以多个线程读取表中的数据

并发数据访问,可以同时支持读取操作,而写入操作则会堵塞读取和其它写入

不支持索引

8465f1517278436e437aa702168e21a.png

8f772df0f575c00a8281708381b7339.png

b728c6248cbc82d8902620db6021466.png



相关文章
|
4天前
|
存储 SQL 关系型数据库
ClickHouse(02)ClickHouse架构设计介绍概述与ClickHouse数据分片设计
ClickHouse的核心架构包括执行过程和数据存储两部分。执行过程涉及Parser与Interpreter解析SQL,通过Column、DataType、Block、Functions和Storage模块处理数据。Column是内存中列的表示,Field处理单个值,DataType负责序列化和反序列化,Block是内存中表的子集,Block Streams处理数据流。Storage代表表,使用不同的引擎如StorageMergeTree。数据存储基于分片和副本,1个分片由多个副本组成,每个节点只能拥有1个分片。
116 0
ClickHouse(02)ClickHouse架构设计介绍概述与ClickHouse数据分片设计
|
2天前
|
Oracle NoSQL 关系型数据库
实时计算 Flink版产品使用合集之MongoDB CDC connector的全量快照功能可以并发读取吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
22 2
|
4天前
|
SQL 缓存 运维
常用ClickHouse问题诊断查询
Clickhouse是一个性能强大的OLAP数据库,在实际使用中会遇到各种各样的问题,同时也有很多可以调优的地方。诊断调优所用到的SQL查询必不可少。本文就是一个ClickHouse日常运维的常用SQL查询手册。这个手册本人就在用,非常实用。
74036 48
|
9月前
|
存储 监控 关系型数据库
快速将大规模MySQL数据同步到Doris的方法解析
NineData 采用先进的数据同步技术,确保数据实时同步到 Doris,极大地降低了数据延迟,实测 500 GB 数据传输完成仅用时 40 分钟,让您的决策基于最新数据。
704 0
|
SQL 弹性计算 Kubernetes
实践教程之采集PolarDB-X SQL日志到ElasticSearch
PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。本期实验将指导您如何采集PolarDB-X SQL日志到ElasticSearch。
|
SQL 存储 缓存
13.【clickhouse】ClickHouse从入门到放弃-引擎
【clickhouse】ClickHouse从入门到放弃-引擎
13.【clickhouse】ClickHouse从入门到放弃-引擎
|
存储 关系型数据库 MySQL
ClickHouse 集成表的引擎说明
ClickHouse 集成表的引擎说明
242 0
ClickHouse 集成表的引擎说明
|
消息中间件 分布式计算 监控
PostgreSQL11 CDC的分布式文件采集架构实战
PostgreSQL11 CDC的分布式文件采集架构实战
PostgreSQL11 CDC的分布式文件采集架构实战
|
存储 开发工具
|
存储 缓存 编解码
阿里云Elasticsearch日志场景 最佳实践及引擎内核优化
分享人:郭嘉梁(梁楹),阿里巴巴技术专家
1280 0
阿里云Elasticsearch日志场景 最佳实践及引擎内核优化