ClickHouse表引擎-ReplacingMergeTree

作者: ClickHouse

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 的参数

  • ver — 版本列。类型为 UInt*, Date  DateTime。可选参数。 在数据合并的时候,ReplacingMergeTree 从所有具有相同排序键的行中选择一行留下:
  • 如果 ver 列未指定,保留最后一条。
  • 如果 ver 列已指定,保留 ver 值最大的版本。 子句

创建 ReplacingMergeTree 表时,需要使用与创建 MergeTree 表时相同的 [子句]。

已弃用的建表方法

注意

不要在新项目中使用该方法,可能的话,请将旧项目切换到上述方法。

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(date-column  [, sampling_expression], (primary, key), index_granularity,  [ver])

除了 ver 的所有参数都与 MergeTree 中的含义相同。

  • ver - 版本列。可选参数,有关说明,请参阅上文。 来源文章

文章列表

更多推荐

更多
  • ElasticSearch知识体系-14原理:ES原理知识点补充和整体结构 14 原理:ES原理知识点补充和整体结构 ElasticSearch整体结构 - > 通过上文,在通过图解了解了在通过图解了解了ES整体的原理后,我们梳理下ES的整体结构,一个 ES Index 在集群模式下,有多个 Node ...
  • ElasticSearch知识体系-03安装:ElasticSearch和Kibana安装 03 安装:ElasticSearch和Kibana安装lasticSearch 是基于Java平台的,所以先要安装Java **平台确认** 这里我准备了一台Centos7虚拟机, 为方便选择后续安装的版本,所以需要看下系统版本
  • ElasticSearch知识体系-17优化:ElasticSearch性能优化详解 17 优化:ElasticSearch性能优化详解 硬件配置优化 > 升级硬件设备配置一直都是提高服务能力最快速有效的手段,在系统层面能够影响应用性能效的手段,在系统层面能够影响应用性能的一般包括三个因素:CPU、内存和 IO,可
  • ElasticSearch知识体系-18大厂实践:腾讯万亿级Elasticsearch技术实践 18 大厂实践:腾讯万亿级 Elasticsearch 技术实践 一、ES 在腾讯的海量规模背景,先来看看 ES 在腾讯的主要应用场景。ES 是一个实时的分布式搜索分析引擎,目前很多用户对 ES 的印象还是准实时,实际上在 6.8 ...
  • ElasticSearch知识体系-15原理:ES原理之索引文档流程详解 15 原理:ES原理之索引文档流程详解 文档索引步骤顺序 单个文档 新建单个文档所需要的步骤顺序:客户端向 Node 1 发送新建、索引或者删除请求。节点使用文档的 _id 确定文档属于分片 0 。请求会被转发到 Node ...
  • ElasticSearch知识体系-09查询:DSL查询之Term详解 09 查询:DSL查询之Term详解 Term查询引入 如前文所述,查询分基于文本查询和基于词项的查询: 由于多种原因,文档字段的索引值可能不存在:源JSON中的字段是null或,该字段已"index" : ...
  • ElasticSearch知识体系-02认知:ElasticStack生态和场景方案 02 认知:Elastic Stack生态和场景方案 Elastic Stack生态 - > Beats + Logstash + Elts + Logstash + ElasticSearch + Kibana 如下是我从官方
  • ElasticSearch知识体系-07查询:DSL查询之复合查询详解 07 查询:DSL查询之复合查询详解 复合查询引入 在(前文-多条件查询-bool)中,我们使用`bool`查询来组合多个查询条件。 比如之前介绍来组合多个查询条件。 比如之前介绍的语句 ```bash GET /bank/
  • ElasticSearch知识体系-04入门:查询和聚合的基础使用 04 入门:查询和聚合的基础使用 入门:从索引文档开始 索引一个文档 ```bash PUT /customer/_doc/1 { "nomer/_doc/1 { "name": "John Doe" } ``` 为了
  • ElasticSearch知识体系-16原理:ES原理之读取文档流程详解 16 原理:ES原理之读取文档流程详解 文档查询步骤顺序 > 先看下整体的查询流程 单个文档 以下是从主分片或者副本分片检索文档的步骤顺序:分片或者副本分片检索文档的步骤顺序: 客户端向 Node 1 发送获取请求。2. ...
  • 近期文章

    更多
    文章目录

      推荐作者

      更多