大数据系列——ClickHouse表引擎与分布式查询

目录

一、ClickHouse的表引擎

1、MergeTree的创建方式与存储结构

2、ReplacingMergeTree

二、数据分片与分布式查询

三、Clickhouse-ETL常见业务使用


一、ClickHouse的表引擎

表引擎体系,包括合并树、外部存储、内存、文件、接口和其他6大类20多种表引擎。而在这众多的表引擎中,又属合并树(MergeTree)表引擎及其家族系列(*MergeTree)最为强大。

1、MergeTree的创建方式与存储结构

MergeTree在写入一批数据时,数据总会以数据片段的形式写入磁盘,且数据片段不可修改。为了避免片段过多,ClickHouse会通过后台线程,定期合并这些数据片段,属于相同分区的数据片段会被合成一个新的片段。

        MergeTree拥有主键,但是它的主键却没有唯一键的约束,因此即便多行数据的主键相同,它们还是能够被正常写入

2、ReplacingMergeTree

ReplacingMergeTree就是为了数据去重而设计的,它能够在合并分区时删除重复的数据。但是只能在一定程度上去重,这是因为ReplacingMergeTree是以分区为单位删除重复数 据的。只有在相同的数据分区内重复的数据才可以被删除,而不同数据分区之间的重复数据依然不能被剔除。

二、数据分片与分布式查询

为了解决数据表容量的问题,引入了数据分片,一张分片表有两部分组成:本地表和分布式表

本地表通常以_local为后缀进行命名,一张本地表对应一个数据分片。与传统关系型数据库不同的是,ClickHouse 是分布式系统,如何创建分布式表呢?

ClickHouse 的设计是:

  • 先在每个 Shard 每个节点上创建本地表(即 Shard 的副本),本地表只在对应节点内可见
  • 然后再创建分布式表,映射到前面创建的本地表。

这样用户在访问分布式表时,ClickHouse 会自动根据集群架构信息,把请求转发给对应的本地表。

三、Clickhouse-ETL常见业务使用

业务中常见的ETL使用场景举例:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多则惑少则明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值