目錄
- 建表語法
- 資料處理策略
- 資料分享
- 參考文章
MergeTree擁有主鍵,但是它的主鍵卻沒有唯一鍵的約束,這意味著即便多行資料的主鍵相同,它們還是能夠被正常寫入,在某些使用場合,用戶并不希望資料表中含有重復的資料,ReplacingMergeTree就是在這種背景下為了資料去重而設計的,它能夠在合并磁區時洗掉重復的資料,但是ReplacingMergeTree并不一定保證不會出現重復的資料,
ReplacingMergeTree是另外一個常用的表引擎,ReplacingMergeTree和MergeTree的不同之處在于它會洗掉排序鍵值相同的重復項,
資料的去重只會在資料合并期間進行,合并會在后臺一個不確定的時間進行,因此你無法預先作出計劃,有一些資料可能仍未被處理,可以呼叫OPTIMIZE陳述句發起計劃外的合并,但盡量不要依靠它,因為OPTIMIZE陳述句會引發對資料的大量讀寫,
因此,ReplacingMergeTree適用于在后臺清除重復的資料以節省空間,但是它不保證沒有重復的資料出現,
建表語法
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
...
) ENGINE = ReplacingMergeTree([ver])
[PARTITION BY expr]
[ORDER BY expr]
[SAMPLE BY expr]
[SETTINGS name=value, ...]
創建ReplacingMergeTree表的引數中,與MergeTree不同的是[ver],ver(版本列),類可以型為UInt*,Date或DateTime,這個屬于可選引數,所以你也可以不用指定,
在資料合并的時候,ReplacingMergeTree 從所有具有相同排序鍵的行中選擇一行留下:如果ver列未指定,保留最后一條,如果ver列已指定,保留ver值最大的版本,
其他的與MergeTree表是一致,它屬于MergeTree表的的一個變種,
MergeTree表引擎的決議可以參考ClickHouse(09)ClickHouse合并樹MergeTree家族表引擎之MergeTree詳細決議
資料處理策略
最后總結一下ReplacingMergeTree引擎的資料處理策略,主要是下面五個點,
- 使用ORBER BY排序鍵作為判斷重復資料的唯一鍵,
- 只有在合并磁區的時候才會觸發洗掉重復資料的邏輯,
- 以資料磁區為單位洗掉重復資料,當磁區合并時,同一磁區內的重復資料會被洗掉;不同磁區之間的重復資料不會被洗掉,
- 在進行資料去重時,因為磁區內的資料已經基于ORBER BY進行了排序,所以能夠找到那些相鄰的重復資料,
- 在資料合并的時候,ReplacingMergeTree 從所有具有相同排序鍵的行中選擇一行留下:如果ver列未指定,保留最后一條,如果ver列已指定,保留ver值最大的版本,
資料分享
ClickHouse經典中文檔案分享
參考文章
- ClickHouse(01)什么是ClickHouse,ClickHouse適用于什么場景
- ClickHouse(02)ClickHouse架構設計介紹概述與ClickHouse資料分片設計
- ClickHouse(03)ClickHouse怎么安裝和部署
- ClickHouse(04)如何搭建ClickHouse集群
- ClickHouse(05)ClickHouse資料型別詳解
- ClickHouse(06)ClickHouse建表陳述句DDL詳細決議
- ClickHouse(07)ClickHouse資料庫引擎決議
- ClickHouse(08)ClickHouse表引擎概況
- ClickHouse(09)ClickHouse合并樹MergeTree家族表引擎之MergeTree詳細決議
- ClickHouse(10)ClickHouse合并樹MergeTree家族表引擎之ReplacingMergeTree詳細決議
- ClickHouse(11)ClickHouse合并樹MergeTree家族表引擎之SummingMergeTree詳細決議
本文來自博客園,作者:張飛的豬,轉載請注明原文鏈接:https://www.cnblogs.com/the-pig-of-zf/p/16874891.html
作者公眾號:張飛的豬大資料分享,不定期分享大資料學習的總結和相關資料,歡迎關注,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/530596.html
標籤:其他
