是否可以从 clickhouse 表中删除旧记录?

2024-01-30

据我所知,clickhouse只允许插入新数据。但是是否可以删除早于某个时间段的块以避免硬盘溢出?


轻量级删除

自 v22.8 起可用

MergeTree 表的标准 DELETE 语法已在#37893 https://github.com/ClickHouse/ClickHouse/pull/37893.

SET allow_experimental_lightweight_delete = 1;
DELETE FROM merge_table_standard_delete WHERE id = 10;

使用 Mutations 改变数据

请参阅有关突变功能的文档https://clickhouse.yandex/docs/en/query_language/alter/#mutations https://clickhouse.yandex/docs/en/query_language/alter/#mutations.
该功能于 2018 年第三季度实施。

删除数据

ALTER TABLE <table> DELETE WHERE <filter expression>

“脏”全部删除

你总是必须指定一个过滤表达式。如果您想通过 Mutation 删除所有数据,请指定始终为 true 的内容,例如:

ALTER TABLE <table> DELETE WHERE 1=1

更新数据

也有可能变异(UPDATE)类似的方式

ALTER TABLE <table> UPDATE column1 = expr1 [, ...] WHERE <filter expression>

注意它是异步的

请注意,上面的所有命令不会直接(同步)执行数据突变。相反,他们安排在后台独立(异步)执行的 ClickHouse Mutation。这就是为什么ALTER TABLE选择语法而不是典型的 SQLUPDATE/DELETE。您可以通过以下方式检查未完成的突变进度

SELECT *
FROM system.mutations
WHERE is_done = 0

...除非

你改变了mutations_sync设置 https://clickhouse.tech/docs/en/operations/settings/settings/#mutations_sync to

  • 1所以它同步等待当前服务器
  • 2所以它等待所有副本

不使用 Mutations 更改数据

有的TRUNCATE TABLE语句的语法如下:

TRUNCATE TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster]

这会同步截断表。它将检查表大小,因此如果表大小超过,则不允许您删除max_table_size_to_drop。请参阅此处的文档:

https://clickhouse.tech/docs/en/sql-reference/statements/truncate/ https://clickhouse.tech/docs/en/sql-reference/statements/truncate/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以从 clickhouse 表中删除旧记录? 的相关文章

  • SQL 选择 n 到 m 关系

    我有一个n to m之间的关系Author and Book 表作者 ID Name 1 Follett 2 Rowling 3 Martin 桌书 ID Title Category 1 A Dance with Dragons Fant
  • 删除重复的行并需要在mysql中保留所有行中的一个[重复]

    这个问题在这里已经有答案了 我想删除基于两列的重复行 但需要保留所有行 1 行 重复行可以多于两行 例如 ID NAME PHONE 1 NIL 1234 2 NIL 1234 3 NIL 1234 4 MES 5989 我想从上面 3 行
  • nvarchar 值“3001822585”的转换溢出了 int 列

    我使用以下方法将 Excel 文件导入到 SQL Server Excel 文件将所有值作为字符串 我可以导入文件 除了Barcode SalePrice and Price2 我收到错误 nvarchar 值 3001822585 条形码
  • Oracle 按月滚动或运行总计

    目标 每个月末所有报表的滚动 运行总计 Code select TRUNC ACTHX STMT HX STMT DATE MM AS MNTH COUNT ACTHX INVOICE as STMTS from ACTHX group b
  • 从 PL/SQL 调用 shell 脚本,但 shell 以 grid 用户而非 oracle 身份执行

    我正在尝试使用 Runtime getRuntime exec 从 Oracle 数据库内部执行 shell 脚本 在 Red Hat 5 5 上运行的 Oracle 11 2 0 4 EE CREATE OR REPLACE proced
  • 在 SQL 中按键组对行进行顺序编号?

    SQL中有没有办法按顺序添加行号按关键组 假设一个表包含任意 CODE NAME 元组 示例表 CODE NAME A Apple A Angel A Arizona B Bravo C Charlie C Cat D Dog D Dopp
  • SQL UPDATE 语句根据另一个现有行更新列

    基本上我有一个与下表具有相似格式的表格 我想做的是根据这个逻辑更新 Col4 如果 Col2 为空 则用 Col3 更新 Col4 如果 Col2 不为 null 则在 Col1 中查找与 Col2 中的值匹配的值 使用 col3 中的相应
  • Magento --“SQLSTATE[23000]:违反完整性约束..”客户更新

    迁移服务器后 每次尝试更新客户信息时都会出现错误 我正在使用一个客户激活插件 http www magentocommerce com magento connect vinai extension 489 customer activat
  • 使用 .NET 中的类型化数据集将 SQL 参数传递给 IN() 子句

    首先道歉 因为该网站上有类似的问题 但没有一个直接回答这个问题 我在 VS 2010 中使用类型化数据集 我在数据集中创建一个 TableAdapter 查询如下 SELECT from Table WHERE ID IN IDs 现在如果
  • 如何引用下一行的数据?

    我正在 PostgreSQL 9 2 中编写一个函数 对于股票价格和日期的表 我想计算每个条目较前一天的百分比变化 对于最早一天的数据 不会有前一天 因此该条目可以简单地为 Nil 我知道WITH声明可能不应该高于IF陈述 到目前为止 这就
  • TSQL - 生成文字浮点值

    我理解比较浮点数时遇到的许多问题 并对它们在这种情况下的使用感到遗憾 但我不是表格作者 只有一个小障碍需要克服 有人决定使用浮点数 就像您期望使用 GUID 一样 我需要检索具有特定浮点值的所有记录 sp help MyTable Colu
  • 自动删除主键序列中的间隙

    我正在创建一个网页 该网页根据用户操作将数据存储到 MySQL 数据库中 数据库有很多行 行的主键是列 rowID 它只是按顺序对行进行编号 例如 1 2 3 4 用户可以选择删除行 问题是当用户删除最后一行以外的行时 rowID 中有一个
  • 使用联接更新表?

    我正在尝试使用表 B 中的数据更新表 A 我以为我可以做这样的事情 update A set A DISCOUNT 3 from INVOICE ITEMS A join ITEM PRICE QUNTITY B on A ITEM PRI
  • 包含列和行总计的 SQL 数据透视表

    我正在尝试将行和列总计添加到该数据透视表中 create table test4 city nvarchar 10 race nvarchar 30 sex nvarchar 10 age int insert into test4 val
  • 获取在任何日期创建的表的列表?

    我遇到了这样的情况 我想查找我在 2012 年 9 月 14 日 2012 年 9 月 14 日 在 sql server 上创建的表 是否有任何查询会列出在此日期创建的这些表 SELECT FROM sys tables WHERE cr
  • SQL Server:为什么 ISO-8601 格式的日期依赖于语言?

    我需要一些帮助来理解 SQL Server 中的日期格式处理 如果您尝试以下操作 它将返回正确的结果 SET LANGUAGE English SELECT CAST 2013 08 15 AS DATETIME 2013 08 15 00
  • SQL 使用另一列的键和最大值设置列

    我需要根据同一 ID 的 duration 列的最大值更新 max register 列 将值设置为 1 其他值设置为 0 初始表 Id duration max register 1 0 0 1 7 0 1 3 0 2 10 0 2 5
  • 如何用约束标记一大组“传递群”?

    在 NealB解决方案之后进行编辑 与以下解决方案相比 NealB的解决方案非常非常快任何另一个 https stackoverflow com q 18033115 answers and 提出了关于 添加约束以提高性能 的新问题 Nea
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • Oracle:按月分区表

    我的解决方案 德语几个月 PARTITION BY LIST to char GEBURTSDATUM Month PARTITION p1 VALUES JANUAR PARTITION p2 VALUES Februar PARTITI

随机推荐

  • Amazon S3 CORS 标头仅在 OPTIONS(预检)期间显示,在 GET 请求期间不显示

    我有一个具有以下 CORS 配置的 S3 存储桶
  • 如何安装 django-ckeditor?

    Stack Overflow 上有两个问题这位编辑 http pypi python org pypi django ckeditor 却没有人回答 所以我问如何将此 Django 包安装到我的项目中 我已经关注了这些步骤 http pyp
  • 为什么 object.constructor 是一个“函数”,而不是 TypeScript 中的“可更新”?

    在 TypeScript 中 我通常使用以下方式定义类类型的类型 declare type Type new args any any 例如 当类作为参数传递时可以使用它 这有点类似于Type是用C 编写的 但也可以直接实例化new操作员
  • 使用授权标头(Bearer)设置 Swagger (ASP.NET Core)

    我有一个 Web API ASP NET Core 我正在尝试调整 swagger 以从中进行调用 调用必须包含授权标头 并且我正在使用承载身份验证 来自 Postman 等第三方应用程序的呼叫一切正常 但我在设置 swagger 标头时遇
  • 在运行时转储执行数据

    我正在使用 JaCoCo 生成代码覆盖率报告 并且我有许多场景需要生成单独的报告 问题是该程序非常庞大 大约需要 2 分钟才能启动并加载所有类文件 我想在其中一个场景完成后立即获取运行时的执行数据 然后开始下一个场景 而不是为每个场景重新启
  • 使用 CSS3 堆叠媒体查询

    我正在尝试在 CSS 中堆叠媒体查询 但似乎无法让它正常工作 我想要实现的是拥有一组 css 规则any的媒体询问 我知道通常我可以使用and让它适用于不同的规则 但在这种情况下 我试图处理特定于供应商的前缀 因此浏览器不会满足所有条件 这
  • Rails formtastic 嵌套形式警告:无法批量分配受保护的属性

    我有以下型号 class CapstoneMilestone lt ActiveRecord Base attr accessible capstone id milestone id rank id status statusweight
  • 如何在 C# 中使用“for 循环”和“数组”反转整数

    我是 C 新手 正在学习反转整数 数字 我必须使用 forloop 和数组来完成代码 但我真的不知道如何使用它们 例如 如果输入是 1 2 3 4 5 6结果应该是 6 5 4 3 2 1 有人可以帮帮我吗 谢谢 编辑 我真的很抱歉 我忘记
  • 我可以用一个类名指定多个 CSS 类吗?

    我想在元素上指定几个 css 类 但我不想每次都重复上 3 4 或更多课 我想从 span class class1 backgroundclass borderclass iconclass Link span To span class
  • 意外删除了 Xaml 文件的隐藏代码。如何再次添加后面的代码?

    我没有错误地排除它 而是删除了 Xaml 文件背后的 cs 代码 现在 我不知道如何添加后面的代码 该窗口是空的 上面没有 UI 控件 查看代码 被禁用 我在任何地方都看不到此 xaml 的事件 闪电图标 请帮忙 有两个必需步骤和一个可选步
  • 在 MATLAB 中处理 Kinect 深度数据

    所以我使用 Kinect 获取了一些深度图像 现在将它们保存起来 那么如果我想处理这个深度图像以获得Z值 即物体到Kinect的距离 我应该怎么做 我一直在网上进行一些研究 发现我需要将图像保存为 16 位深度图像才能存储深度值 而不是只能
  • 未调用自定义 UITableVIewCell 初始化

    我有带有一些图像和标签的自定义 UiTablleviewCell 并且我想在 tableview 单元格中旋转标签 所以我想编辑 initWithStyle 方法 但似乎从未调用过它 id initWithStyle UITableView
  • 根据 groupby 之后其他列中的值之间的数据帧范围对单独的列求和

    我有一个数据框如下 id Supply days days 180 1 30 0 180 1 100 183 363 1 80 250 430 2 5 0 180 2 5 10 190 3 5 0 180 3 30 100 280 3 30
  • JQGrid是免费的吗?

    从以下位置下载 JQGrid js 文件http www trirand com blog http www trirand com blog 免费吗 这是什么http www trirand net demoaspnetmvc aspx
  • 安卓屏幕分辨率

    Android 中已经定义了一些屏幕分辨率 他们是 QVGA 240 320 低密度 小屏幕 WQVGA 240 400 低密度 普通屏幕 FWQVGA 240 432 低密度 普通屏幕 HVGA 320 480 中等密度 普通屏幕 WVG
  • NameError:Python 中未定义名称“reduce”

    我正在使用Python 3 2 尝试过这个 xor lambda x y x y 2 l reduce xor 1 2 3 4 并得到以下错误 l reduce xor 1 2 3 4 NameError name reduce is no
  • 什么可能导致 MSIExec 错误 1619“无法打开此安装包”

    我正在尝试从一组示例程序中自动执行一组 MSI 文件 由 WiX 生成 的往返安装和卸载 由于某种原因 双击后会生成一个非常适合安装的 MSI 文件 无法打开该安装包 验证该包是否存在并且您可以访问它 或者联系应用程序供应商以验证这是否是有
  • 在后台获取核心数据

    我有一个带有表视图的导航视图 当单击一行时 行索引路径将传递到下一个视图 在详细信息视图 viewDidLoad 中 我正在从 Core Data 获取数据 我使用从应用程序委托中获取 appDelegate loadItem i 正如你所
  • publicId 和 systemId 之间需要空格

    我试图通过在 jsp 中编写一些代理代码来从我的计算机本地对其他域进行 ajax 调用 这是我调用 proxy jsp 页面的 jQuery AJAX 代码 var metadata https rest search host com m
  • 是否可以从 clickhouse 表中删除旧记录?

    据我所知 clickhouse只允许插入新数据 但是是否可以删除早于某个时间段的块以避免硬盘溢出 轻量级删除 自 v22 8 起可用 MergeTree 表的标准 DELETE 语法已在 37893 https github com Cli