江蘇網(wǎng)站建設(shè)空間環(huán)球網(wǎng)最新消息
ReplacingMergeTree是在MergeTree上添加了去重的功能,但是這個(gè)功能不可控,合并是一個(gè)后臺(tái)的操作,除非手動(dòng)觸發(fā),不然無法控制,并且它會(huì)刪除具有相同(區(qū)內(nèi))主鍵的重復(fù)項(xiàng)。
特點(diǎn):
1,去重時(shí)機(jī)不定, 數(shù)據(jù)的去重只會(huì)在合并的過程中出現(xiàn), 合并會(huì)在未知的時(shí)間在后臺(tái)進(jìn)行,所以你無法預(yù)先作出計(jì)劃。有一些數(shù)據(jù)可能仍未被處理
2,去重范圍有限,有分區(qū)的情況下,去重只在分區(qū)內(nèi)去重,沒有分區(qū),按照order by 字段去重(order by是必填字段,主鍵可以不填,主鍵是用于創(chuàng)建一級(jí)索引,也就是用于where查詢的條件,用于二分查找到對(duì)應(yīng)的index granularity而index granularity 是作用于order by的系數(shù)索引,默認(rèn)值是8192,非特殊情況不更改,意思是間隔8192創(chuàng)建一個(gè)索引)
版本和飛版本
不帶版本的,ENGINE = ReplacingMergeTree()
缺點(diǎn):去重根據(jù)排序建去重,但是去重沒有順序,因?yàn)槭嵌嗑€程執(zhí)行,所以數(shù)據(jù)是刪除隨機(jī)的,可能是刪除了最新的數(shù)據(jù)
帶版本的ENGINE = ReplacingMergeTree(字段名)
能解決不帶版本的,其實(shí)帶版本可理解為指明了按照哪個(gè)字段值的先后進(jìn)行區(qū)去重,保留最新的數(shù)據(jù),?版本字段可以是數(shù)值?版本字段可以是時(shí)間
小姐一下:
?使用ORDER BY排序鍵作為判斷重復(fù)數(shù)據(jù)的唯一依據(jù)。
?只有在合并分區(qū)的時(shí)候才會(huì)觸發(fā)刪除重復(fù)數(shù)據(jù)的邏輯。
?以數(shù)據(jù)分區(qū)為單位刪除重復(fù)數(shù)據(jù)。當(dāng)分區(qū)合并時(shí),同一分區(qū)內(nèi)的重復(fù)數(shù)據(jù)會(huì)被刪除;不同分區(qū)之間的重復(fù)數(shù)據(jù)不會(huì)被刪除。
?在進(jìn)行數(shù)據(jù)去重時(shí),因?yàn)榉謪^(qū)內(nèi)的數(shù)據(jù)已經(jīng)基于ORBER BY進(jìn)行了排序,所以能夠找到那些相鄰的重復(fù)數(shù)據(jù)。
?數(shù)據(jù)去重策略有兩種:
?如果沒有設(shè)置ver版本號(hào),則保留同一組(同一分區(qū))重復(fù)數(shù)據(jù)中的最后一行。
?如果設(shè)置了ver版本號(hào),則保留同一組(同一分區(qū))重復(fù)數(shù)據(jù)中ver字段取值最大的那一行。