Categories
ClickHouse

ClickHouse ReplacingMergeTree数据更新方案

本文介绍ReplacingMergeTree引擎在分布式场景下的数据更新方式。

一、实验环境构建

本地表:数据按照id列进行sharding

create table woo.test_replacing_local on cluster ZYX_CK_TS_02 (create_time date, id UInt16, comment String, version UInt32) ENGINE = ReplicatedReplacingMergeTree(‘/clickhouse/ZYX_CK_TS_02/jdob_ha/woo/test_replacing_local/{shard}’, ‘{replica}’, version) PARTITION BY toYYYYMMDD(create_time) ORDER BY (id);

分布式表:

CREATE TABLE woo.test_replacing on cluster ZYX_CK_TS_02 as woo.test_replacing_local engine=Distributed(ZYX_CK_TS_02, woo, test_replacing_local, rand()) ;

shard 1插入数据:

insert into woo.test_replacing_local values(‘2019-12-12’, 0, ‘0’, 0);
insert into woo.test_replacing_local values(‘2019-12-12’, 0, ‘1’, 1);
insert into woo.test_replacing_local values(‘2019-12-13’, 0, ‘0’, 0);

shard 2插入数据:

insert into woo.test_replacing_local values(‘2019-12-12′, 0, ’10’, 10);
insert into woo.test_replacing_local values(‘2019-12-12′, 0, ’11’, 11);
insert into woo.test_replacing_local values(‘2019-12-13′, 0, ’10’, 10);

二、实验流程

1.直接查询shard 1的本地表

select * from woo.test_replacing_local;

SELECT *
FROM woo.test_replacing_local

┌─create_time─┬─id─┬─comment─┬─version─┐
│ 2019-12-13 │ 0 │ 0 │ 0 │
└─────────────┴────┴─────────┴─────────┘
┌─create_time─┬─id─┬─comment─┬─version─┐
│ 2019-12-12 │ 0 │ 0 │ 0 │
└─────────────┴────┴─────────┴─────────┘
┌─create_time─┬─id─┬─comment─┬─version─┐
│ 2019-12-12 │ 0 │ 1 │ 1 │
└─────────────┴────┴─────────┴─────────┘

结论:数据没有去重

2.直接查询分布式表

SELECT *
FROM woo.test_replacing

┌─create_time─┬─id─┬─comment─┬─version─┐
│ 2019-12-13 │ 0 │ 0 │ 0 │
└─────────────┴────┴─────────┴─────────┘
┌─create_time─┬─id─┬─comment─┬─version─┐
│ 2019-12-12 │ 0 │ 1 │ 1 │
└─────────────┴────┴─────────┴─────────┘
┌─create_time─┬─id─┬─comment─┬─version─┐
│ 2019-12-12 │ 0 │ 0 │ 0 │
└─────────────┴────┴─────────┴─────────┘
┌─create_time─┬─id─┬─comment─┬─version─┐
│ 2019-12-13 │ 0 │ 10 │ 10 │
└─────────────┴────┴─────────┴─────────┘
┌─create_time─┬─id─┬─comment─┬─version─┐
│ 2019-12-12 │ 0 │ 10 │ 10 │
└─────────────┴────┴─────────┴─────────┘
┌─create_time─┬─id─┬─comment─┬─version─┐
│ 2019-12-12 │ 0 │ 11 │ 11 │
└─────────────┴────┴─────────┴─────────┘

结论:数据没有去重

3.final方式 数据去重

查询shard 1的本地表:

SELECT *
FROM woo.test_replacing_local
FINAL

┌─create_time─┬─id─┬─comment─┬─version─┐
│ 2019-12-12 │ 0 │ 1 │ 1 │
└─────────────┴────┴─────────┴─────────┘

结论:final方式去重可以在多分区间去重

查询分布式表:

SELECT *
FROM woo.test_replacing
FINAL

┌─create_time─┬─id─┬─comment─┬─version─┐
│ 2019-12-12 │ 0 │ 1 │ 1 │
└─────────────┴────┴─────────┴─────────┘
┌─create_time─┬─id─┬─comment─┬─version─┐
│ 2019-12-12 │ 0 │ 11 │ 11 │
└─────────────┴────┴─────────┴─────────┘

结论:final方式去重可以在多节点间不能去重

4.optimize方式 数据去重

optimize table woo.test_replacing_local final;

SELECT *
FROM woo.test_replacing_local

┌─create_time─┬─id─┬─comment─┬─version─┐
│ 2019-12-13 │ 0 │ 0 │ 0 │
└─────────────┴────┴─────────┴─────────┘
┌─create_time─┬─id─┬─comment─┬─version─┐
│ 2019-12-12 │ 0 │ 1 │ 1 │
└─────────────┴────┴─────────┴─────────┘

结论:optimize 方式去重在多分区间不能去重

5.optimize+ final 方式 数据去重

SELECT *
FROM woo.test_replacing_local final

┌─create_time─┬─id─┬─comment─┬─version─┐
│ 2019-12-12 │ 0 │ 1 │ 1 │
└─────────────┴────┴─────────┴─────────┘

结论:optimize+ final 方式去重可以在多分区间去重

6. argMax方式去重

SELECT
id,
argMax(comment, version)
FROM woo.test_replacing
GROUP BY id

┌─id─┬─argMax(comment, version)─┐
│ 0 │ 11 │
└────┴──────────────────────────┘

结论:argMax方式可以在多节点间去重

三、结论

1.ReplacingMergeTree引擎的数据更新方式有三种:final、optimize、argMax

2.Optimize只能在分区范围内去重

3.final只能在本地表范围内去重

4.argMax可以在分布式表范围内去重

7,320 replies on “ClickHouse ReplacingMergeTree数据更新方案”

1950’den günümüze kadar kalite ve müşteri memnuniyetini esas alarak Cami, Yurt, Kur’an Kursu, Mescit Halısı ve duvardan duvara halı ile hizmet vermenin gururunu yaşamaktayız. Camilerimiz hepimiz için en özel alanlar olduğu için her zaman en güzeli olması için daha çok özenle çalışıyoruz. Bu nedenle cami halısı seçerken bizimle iletişime geçmenizi, ücretsiz danışmanlığımızdan faydalanmanızı öneririz. Cami zeminlerinizi 30 yıllık tecrübe birikimimizle en kaliteli marka ve halılarla döşüyor, zerafet ve şıklığı cami zeminlerinize yansıtıyoruz. Cami Halısı

1950’den günümüze kadar kalite ve müşteri memnuniyetini esas alarak Cami, Yurt, Kur’an Kursu, Mescit Halısı ve duvardan duvara halı ile hizmet vermenin gururunu yaşamaktayız. Camilerimiz hepimiz için en özel alanlar olduğu için her zaman en güzeli olması için daha çok özenle çalışıyoruz. Bu nedenle cami halısı seçerken bizimle iletişime geçmenizi, ücretsiz danışmanlığımızdan faydalanmanızı öneririz. Cami zeminlerinizi 30 yıllık tecrübe birikimimizle en kaliteli marka ve halılarla döşüyor, zerafet ve şıklığı cami zeminlerinize yansıtıyoruz. Cami Halısı

Биографии популярных актеров, политиков, блогеров, певцов, реперов и других известных деятелей искусства. Люди по своей природе любопытны. Одни свое бессознательное стремление к познанию реализуют в хобби, профессии, другие предпочитают наблюдать за жизнью других. В век высоких технологий жизнь знаменитостей стала максимально доступна. География не влияет на доступность информации. Человек, живущий на Чукотке, узнает новости шоу-бизнеса не позднее столичного жителя. Биография знаменитого актера, телеведущего, режиссера, рассказанная доступным языком, дополненная фотографиями и видео, обогащает жизнь обычного человека новыми впечатлениями, добавляет в нее новые краски, эмоции. Свежие новости из жизни «звездных» личностей помогают утвердиться в социуме, факты биографии модно пересказывать при личном общении, актуально делиться подробностями светской, личной жизни знаменитостей в одноклассниках, в аккаунтах других социальных сетей (VK, Инстаграмм, Твиттер, Фейсбук).
http://lookalike.top/

When I initially left a comment I seem to have
clicked the -Notify me when new comments are added- checkbox and now every time a comment is
added I recieve 4 emails with the exact same comment.
There has to be a way you are able to remove me from that service?
Appreciate it!

Great post. I was checking constantly this blog
and I am impressed! Very useful information specially the ultimate part :
) I take care of such information much. I was seeking this particular info for a very long time.
Thanks and best of luck.

İstanbul escort , eskort istanbul ve istanbul escort Altınilmek Escort Altınilmek sex Altınilmek porno Altınilmek sikiş bayan özel birliktelikler yaşayabileceğiniz İstanbul ESKORT ucuz escort ucuz sex ucuz oruspu bayan’ları sizleri bekliyor. tavus escort

Have you ever considered about including a little bit more than just your articles?
I mean, what you say is important and all. Nevertheless just imagine if you added
some great images or videos to give your posts more, “pop”!
Your content is excellent but with pics and videos, this website could certainly be one of the most beneficial in its
niche. Very good blog!