ClickHouse 轻量删除清重复行的代价
按 _part、_part_offset 删掉重复的那份,带子查询的 DELETE 在复制表上先被拒;放开之后子查询跟着全表 part 数重复执行。加上 IN PARTITION 它反而最省,但同一秒写进来的两份按 create_time 分不开。
按 _part、_part_offset 删掉重复的那份,带子查询的 DELETE 在复制表上先被拒;放开之后子查询跟着全表 part 数重复执行。加上 IN PARTITION 它反而最省,但同一秒写进来的两份按 create_time 分不开。
用 argMin 重写整个分区再去 REPLACE 的写法,在三副本 lab 里不仅报语法错,修好后列序错位、迟到写入和落后副本还能让数据坏掉而且行数校验照过。只能靠快照和 part_log 补救。
同一条 Kafka 到 ClickHouse 的链路上,重复行先后从生产端重试、sink 超时重投、task 重启重放和人工补发四处进来。官方 sink 的 exactlyOnce 按 offset 区间判断,挡得住重放,超时重投只挡一半,生产端和补发挡不住。
LiteLLM 的 spend log 按 key 记了 token 和来源 IP,放在 Cloudflare Tunnel 后面时 IP 全是集群内地址。改用 pre-call hook 读 CF-Connecting-IP,对外的 key 另加别名和限流。
prize-service 换到 OceanBase 4.2.5 后,隔离级别、gap lock、等锁超时和 FOR UPDATE OF 都与 MySQL 8 不同;时间分区拆不开 pmax,建表脚本不写分区,交给 DBA 做 HASH/KEY 分区。