ClickHouse UPDATE 操作问题解决方案 - 若

news/2025/9/24 11:29:03/文章来源:https://www.cnblogs.com/zhanchenjin/p/19108843

ClickHouse UPDATE 操作问题解决方案

问题背景

在使用ClickHouse进行数据更新操作时,遇到了以下错误:Lightweight updates are not supported

2025.09.24 11:08:51.283185 [ 70414 ] {09f4305c-14c5-4d63-a251-3179f5373d6d} <Error> executeQuery: Code: 48. DB::Exception: Lightweight updates are not supported. Lightweight updates are supported only for tables with materialized _block_offset column. Run 'MODIFY SETTING enable_block_offset_column = 1' command to enable it. (NOT_IMPLEMENTED) (version 25.8.2.29 (official build)) (from [::ffff:192.168.31.94]:53719) (in query: update ethereum.block_tasks set status = 'pending', owner = 'consumer-1_1758676754070328000', assigned_at = '2025-09-24 09:19:14.07', updated_at = '2025-09-24 09:19:14.07' WHERE start_block = ( SELECT start_block FROM ethereum.block_tasks WHERE (status = 'init' OR (status = 'pending' AND assigned_at < '2025-09-24 09:09:14.07')) AND (owner = '' OR owner IS NULL) ORDER BY start_block DESC LIMIT 1 )), Stack trace (when copying this message, always include the lines below):0. DB::Exception::Exception(DB::Exception::MessageMasked&&, int, bool) @ 0x00000000133a211f
1. DB::Exception::Exception(String&&, int, String, bool) @ 0x000000000c84f4ce
2. DB::Exception::Exception(PreformattedMessage&&, int) @ 0x000000000c84ef80
3. DB::Exception::Exception<String&>(int, FormatStringHelperImpl<std::type_identity<String&>::type>, String&) @ 0x000000000c86826b
4. DB::InterpreterUpdateQuery::execute() @ 0x00000000183d01b2
5. DB::executeQueryImpl(char const*, char const*, std::shared_ptr<DB::Context>, DB::QueryFlags, DB::QueryProcessingStage::Enum, std::unique_ptr<DB::ReadBuffer, std::default_delete<DB::ReadBuffer>>&, std::shared_ptr<DB::IAST>&, std::shared_ptr<DB::ImplicitTransactionControlExecutor>) @ 0x000000001832e352
6. DB::executeQuery(std::unique_ptr<DB::ReadBuffer, std::default_delete<DB::ReadBuffer>>, DB::WriteBuffer&, bool, std::shared_ptr<DB::Context>, std::function<void (DB::QueryResultDetails const&)>, DB::QueryFlags, std::optional<DB::FormatSettings> const&, std::function<void (DB::IOutputFormat&, String const&, std::shared_ptr<DB::Context const> const&, std::optional<DB::FormatSettings> const&)>, std::function<void ()>) @ 0x000000001833312a
7. DB::HTTPHandler::processQuery(DB::HTTPServerRequest&, DB::HTMLForm&, DB::HTTPServerResponse&, DB::HTTPHandler::Output&, std::optional<DB::CurrentThread::QueryScope>&, StrongTypedef<unsigned long, ProfileEvents::EventTag> const&) @ 0x0000000019940621
8. DB::HTTPHandler::handleRequest(DB::HTTPServerRequest&, DB::HTTPServerResponse&, StrongTypedef<unsigned long, ProfileEvents::EventTag> const&) @ 0x0000000019945224
9. DB::HTTPServerConnection::run() @ 0x0000000019a16760
10. Poco::Net::TCPServerConnection::start() @ 0x000000001ef1e687
11. Poco::Net::TCPServerDispatcher::run() @ 0x000000001ef1eb19
12. Poco::PooledThread::run() @ 0x000000001eee5147
13. Poco::ThreadImpl::runnableEntry(void*) @ 0x000000001eee3541
14. ? @ 0x0000000000094ac3
15. ? @ 0x0000000000125a04

解决方案

在创建表时添加以下设置即可解决:

CREATE TABLE block_tasks (-- 表结构定义
) ENGINE = MergeTree()
PARTITION BY toYYYYMM(toDateTime(created_at))
PRIMARY KEY (start_block, end_block)
ORDER BY (start_block, end_block)
SETTINGS enable_block_number_column = 1, enable_block_offset_column = 1;

GORM代码示例:

err := db.Table(model.BlockTaskTableName).Set("gorm:table_options", "ENGINE = MergeTree() PARTITION BY toYYYYMM(toDateTime(created_at)) "+"PRIMARY KEY(start_block, end_block) "+"ORDER BY (start_block, end_block) "+"SETTINGS enable_block_number_column = 1, enable_block_offset_column = 1").AutoMigrate(&model.BlockTask{})

设置参数说明

  • enable_block_number_column = 1:启用内部块编号列,支持轻量级更新机制
  • enable_block_offset_column = 1:启用块偏移列,提供更精确的数据定位

总结

通过设置 enable_block_number_column = 1enable_block_offset_column = 1,可以启用ClickHouse的轻量级更新机制,解决UPDATE操作的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915637.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么建设淘客自己的网站、百度推广网页制作

目录&#x1f60b; 任务描述 相关知识 1. 选择结构基本概念 2. 主要语句类型​&#xff08;if、if-else、switch&#xff09; 3. 跃迁函数中变量的取值范围 4. 计算阶跃函数的值 编程要求 测试说明 通关代码 测试结果 任务描述 本关任务&#xff1a;输入x的值&#x…

做网站开视频网站wordpress自动推送token

一、什么事Http长连接&#xff1a;在网上有很多很多关于Http长连接的文章&#xff0c;但是我看了很多都看不懂。自己总结的所谓的http长连接就是在一请求一个页面后&#xff0c;在服务器端不断开http连接&#xff0c;而是通过response一直在定时的往页面客户端刷新数据。 二、s…

哪里有响应式网站企业中国建行个人登录入口

获取nvidia_docker压缩包nvidia_docker.tgz将压缩包上传至服务器指定目录解压nvidia_docker.tgz压缩包 tar -zxvf 压缩包执行rpm安装命令&#xff1a; #查看指定rpm包安装情况 rpm -qa | grep libstdc #查看指定rpm包下的依赖包的版本情况 strings /lib64/libstdc |grep GLI…

利用 Milvus + RustFS,快速打造一个 RAG!

本分分享使用 Docker Compose 安装 milvus 实例,并用 RustFS 作为对象存储后端,最后再使用 FastAPI 和 Next.JS 来实现一个 Chatbot 的整个实践过程。本分分享使用 Docker Compose 安装 milvus 实例,并用 RustFS 作…

Docker 私有镜像仓库 Harbor 安装部署带签名认证

Docker 私有镜像仓库 Harbor 安装部署带签名认证1. 准备工作 1.1 服务器信息IP 主机名 内存(GB) CPU核数 磁盘 操作系统 CPU 架构 Docker 版本 角色10.0.0.13 arc-pro-dc01 8 1 500GB CentOS 7.9.2009 x86_64 docker…

ARC180 做题记

训A () 题意 题解 \(\bf{record}\) B () 题意 题解 \(\bf{record}\) C () 题意 题解 \(\bf{record}\) D () 题意 题解 \(\bf{record}\)

借助Aspose.HTML控件,使用 Python 编辑 HTML

通过编程方式重构HTML文件可以节省时间和精力。Aspose.HTML SDK提供了一种强大且无缝的使用 Python 编辑 HTML 的方法。使用此 SDK,您可以自动化修改现有 HTML 文件。通过编程方式重构HTML文件可以节省时间和精力。As…

微前端 micro-app 在vue 中的路由跳转问题

微前端 micro-app 在vue 中的路由跳转问题end .

汕头模板建站平台有没有免费的seo网站

IIS-Apache-Tomcat的区别 IIS与Tomcat的区别 IIS是微软公司的Web服务器。主要支持ASP语言环境. Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技术的标准实现&#xff0c;是基于Apache许可证下开发的SJP语言环境容器,严格得说不能算是一个WEB服务器,而是Apache服务适配器。 …

南城区网站仿做手机照片制作成相册

首先机器人端启动摄像头。 pc端用rqt_image_view就可以打开rqt工具&#xff0c;然后选择话题&#xff0c;就看到摄像头图像了。 下面是compressed话题和不是compressed话题的对比&#xff0c;这两个话题带宽有倍数级差异。 然后就可以用opencv做一些事情。下面这个其实就是机器…

1. 设计模式--工厂办法模式

1. 设计模式--工厂办法模式pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", …

汽车视频总线采集过程中,如何兼顾响应速度和可靠性?

汽车测试中“快速响应”与“技术可靠”难以兼得?本文详解如何基于ADTF模块化平台,通过图形化连接Filter组件,无需编码即可快速集成多路视频与总线数据,实现高精度同步采集与无丢包采集录制,破解多设备同步与高带宽…

P8865 [NOIP2022] 种花

P8865 [NOIP2022] 种花#include <bits/stdc++.h> using namespace std;const int mod = 998244353,maxn = 1e3 + 10; int a[maxn][maxn],down[maxn][maxn],r[maxn][maxn],up[maxn][maxn];int main(){int T,id;ci…

traefik 反向代理 + IdentityServer4

traefik 反向代理 + IdentityServer4

店铺的网站怎么做精品成品网站1688

1、安装 docker a、使用 Homebrew 安装 brew install --cask --appdir/Applications docker b、手动下载安装 1、安装包下载地址&#xff1a;Install Docker Desktop on Mac | Docker Docs 根据自己的笔记本型号选择&#xff0c;我这边选择的是 intel chip 2、下载安装即可&a…

在线一键建站系统wordpress 登陆 403

文章目录 一、问题描述二、解决方法 一、问题描述 当我们在代码页面上引入Vue.js(开发版本)时&#xff0c;运行代码会出现以下提示&#xff0c;这句话的意思是&#xff1a;您正在开发模式下运行Vue&#xff0c;在进行生产部署时&#xff0c;请确保打开生产模式 You are runni…

麦角硫因制备关键技术和设备

麦角硫因制备概述 麦角硫因(L-Ergothioneine,简称EGT)是一种天然的稀有手性氨基酸衍生物,具有强大的抗氧化、抗衰老和细胞保护功能。它最初于1909年从麦角真菌中分离而出,现广泛应用于化妆品、食品和医药领域。由…

2025年十大好用网盘推荐:功能、口碑与性价比大对比

不知如何选择网盘?本文为解决此难题,深度评测并盘点了2025年十大热门网盘,涵盖坚果云、百度网盘、阿里云盘等。文章从功能特色、数据安全、团队协作等多维度进行对比分析,旨在帮助用户依据自身需求,精准挑选出最适…

Word-通过宏格式化文档中的表格和图片

1、打开Word文档,找到视图。 2、创建宏脚本Sub 表格格式化()On Error Resume Next 忽略合并单元格等错误Application.ScreenUpdating = FalseDim tbl As Table, col As ColumnDim counter As Integer: counter = …

常用网站建设软件wordpress 幻灯片标签

摘要 本论文主要论述了如何使用JAVA语言开发一个音乐网站与分享平台 &#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述音乐网站与分享平台的当前背景以及系统开…