clickhouse分布式表插入数据不用带ON CLUSTER

embedded/2024/12/27 9:53:49/

分布式表插入数据时,通常 不需要使用 ON CLUSTER,因为分布式表的写入操作会自动将数据分发到底层表(bm_online_user_count_part)的对应节点。

但对于 DDL(数据定义语句,例如 ALTER TABLE 操作,在分布式环境中修改底层表时,建议使用 ON CLUSTER,以确保所有相关节点上的表结构和数据同步。


区分 DDL 和 DML

  1. DML(数据操作语句,例如 INSERT分布式表插入数据时,只需简单地插入即可,ClickHouse 会自动将数据分布到各节点的底层表,无需 ON CLUSTER

    NSERT INTO aaa.bm_online_user_count (company_code, user_count, hour_str) VALUES ('company1', 100, '2024-12-23 15:00'); 
  2. DDL(数据定义语句,例如 ALTER TABLEDELETE分布式环境中对底层表执行 ALTER TABLE 操作时,需要使用 ON CLUSTER 来确保所有节点同步执行操作:

    ALTER TABLE aaa.bm_online_user_count_part ON CLUSTER default DELETE WHERE hour_str = '2024-12-23 14:00'; 

为什么插入不需要 ON CLUSTER

  • 分布式表本身就是一个逻辑视图,它会根据其配置自动将数据路由到对应的底层表所在节点。
  • INSERT 操作在分布式表中不直接作用于多个节点,而是由 ClickHouse 的分布式引擎完成分发。

为什么 ALTERDELETE 需要 ON CLUSTER

  • ALTERDELETE 是直接针对底层表执行的操作,它们不会通过分布式引擎自动分发到所有节点。
  • 如果不加 ON CLUSTER,操作仅会在当前节点生效,导致其他节点上的数据或表结构不一致。

总结

  • 插入数据:分布式aaa.bm_online_user_count 插入数据时不需要 ON CLUSTER
  • 修改数据: 对底层表 aaa.bm_online_user_count_part 进行 DELETE 或其他修改操作时,需要使用 ON CLUSTER,以确保集群内数据一致性。

http://www.ppmy.cn/embedded/148385.html

相关文章

【Rust自学】6.1. 定义枚举

喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 6.1.1. 什么是枚举 枚举允许我们列举所有可能的值来定义一个类型。这与其他编程语言中的枚举类似,但 Rust 的枚举更加灵活和强…

常用矢量图标库

常用矢量图标库 1. iconfont 阿里巴巴旗下的矢量图标素材库;很强大且图标内容很丰富的矢量图标库,提供矢量图标下载(AI / SVG / PNG / 代码格式)、在线存储等功能,支持按路径改变 icon 颜色。 iconfont 网址 设备图标 2. IconP…

P1596 [USACO10OCT] Lake Counting S 洛谷 -池塘计数

题目描述 Due to recent rains, water has pooled in various places in Farmer Johns field, which is represented by a rectangle of N x M (1 < N < 100; 1 < M < 100) squares. Each square contains either water (W) or dry land (.). Farmer John would l…

传统网络架构与SDN架构对比

传统网络采用分布式控制&#xff0c;每台设备独立控制且管理耗时耗力&#xff0c;扩展困难&#xff0c;按 OSI 模型分层&#xff0c;成本高、业务部署慢、安全性欠佳且开放性不足。而 SDN 架构将控制平面集中到控制器&#xff0c;数据转发由交换机负责&#xff0c;可统一管理提…

BunkerWeb 开源项目安装与使用教程

BunkerWeb 开源项目安装与使用教程 bunkerweb ??? Make your web services secure by default ! [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/bu/bunkerweb 1. 项目的目录结构及介绍 BunkerWeb 项目的目录结构如下&#xff1a; bunkerweb/ ├── docs/ …

管理面板Ajenti的在Windows10下Ubuntu24.04/Ubuntu22.04里的安装

Ajenti是一款基于Web的开源系统管理控制面板&#xff0c;可用于通过Web浏览器&#xff0c;管理远程系统管理性任务&#xff0c;这一点与 Webmin模块 非常相似。 Ajenti是一款功能非常强大的轻型工具&#xff0c;它提供了快速的、反应灵敏的Web界面&#xff0c;可用于管理小型服…

LeetCode429周赛T4

最小化二进制字符串中最长相同子字符串的长度 在处理二进制字符串问题时&#xff0c;优化字符串结构以满足特定条件是一项常见的挑战。本文将探讨一个具体的问题&#xff1a;给定一个长度为 n 的二进制字符串 s 和一个整数 numOps&#xff0c;通过最多 numOps 次位翻转操作&am…

Qt笔记-Qt Creator开发环境搭建

背景 最近参与了一个新项目&#xff0c;与C相关的开发环境是VS2012Qt5.5.1等等。说句真实的&#xff0c;VS开发工具开发纯C/C的项目还是十分方便的&#xff0c;但如果是Qt项目&#xff0c;QtCreator感觉还是略胜一筹。所以准备单独搭建个QtCreator使得后期开发速度嘎嘎的快。 …