当前位置: 首页 > news >正文

clickhouse - 重新建表覆盖旧表-解决分区时间错误问题-197001

由于上传时间戳为毫秒级,建表sql的分区按照 PARTITION BY toYYYYMM(toDate(ts)) 秒级划分,导致所有的数据计算后超出范围全部标注在了 1970-01的分区上面。

  1. 尝试修改表的配置分区无效。
  2. 创建新表更新分区的配置 PARTITION BY toYYYYMM(toDate(ts/1000)) ,抽取数据到新表。再依次验证后还原表名字。

验证函数中的数据,toDate转换的情况

SELECT toYYYYMM(toDate(ts / 1000)) FROM ts_kv_cluster Query id: efa8f8b1-cb92-4344-b39e-bf18f3c00ff1┌─toYYYYMM(toDate(divide(ts, 1000)))─┐
│                             202504 │
│                             202504 │
│                             202504 │
│                             202504 │SELECT toYYYYMM(toDate(ts)) FROM ts_kv_cluster Query id: 92620905-0add-4c91-8b3a-2065fe67d7b3┌─toYYYYMM(toDate(ts))─┐
│               197001 │
│               197001 │
│               197001 │

解决分区的时间错误

# 创建新表CREATE TABLE iot.ts_kv_cluster_new
(`entity_id` String,`key` Int32,`ts` Int64,`bool_v` Nullable(UInt8),`str_v` Nullable(String),`long_v` Nullable(Int64),`dbl_v` Nullable(Float64),`json_v` Nullable(String)
)
ENGINE = ReplicatedMergeTree('/clickhouse/table/{shard}/ts_kv_cluster_new', '{replica}')
PARTITION BY toYYYYMM(toDate(ts / 1000))
PRIMARY KEY (entity_id, key, ts)
ORDER BY (entity_id, key, ts)
SETTINGS index_granularity = 8192;# 复制数据到新表中
INSERT INTO iot.ts_kv_cluster_new SELECT * FROM iot.ts_kv_cluster;# 对比数量
SELECT COUNT(*) FROM iot.ts_kv_cluster;
SELECT COUNT(*) FROM iot.ts_kv_cluster_old;# 重命名 原有的表名  到 旧表
RENAME TABLE iot.ts_kv_cluster TO iot.ts_kv_cluster_old;# 重命名 新表 到原有的表名
RENAME TABLE iot.ts_kv_cluster_new TO iot.ts_kv_cluster;# 查看分区的分布
SELECT partition, count() FROM system.parts WHERE table = 'ts_kv_cluster' GROUP BY partition;# 删除 旧表
DROP TABLE iot.ts_kv_cluster_old;

相关文章:

  • AI内容检测的技术优势与应用场景
  • Java注解
  • Linux开发工具【上】
  • win11共享打印机主机设置
  • 使用 Python 监控系统资源
  • LeetCode 解题思路 45(分割等和子集、最长有效括号)
  • 程序员学商务英语之Shipment Claim 运输和索赔
  • LeetCode 每日一题 2025/4/28-2025/5/4
  • Go语言——string、数组、切片以及map
  • 代码mark:脚本获取包含全角字符的字符串的长度
  • Grafana-新增用户
  • 【AI】如何自己训练AI大模型
  • 20250506| 物化视图学习
  • 【Python】--实现多进程
  • FastComposer论文问题与解决
  • 信息论06:信息增益——量化不确定性的艺术与科学
  • STM32H743单片机实现ADC+DMA多通道检测
  • 匿名函数对编译错误的影响
  • day17 天池新闻数据KMeans、DBSCAN 与层次聚类的对比
  • SpringSecurity配合Thymeleaf实现详解,以及实战用例
  • 央行:5月8日起,下调个人住房公积金贷款利率0.25个百分点
  • 云南一男子酒后经常殴打七旬母亲,被警方拘14日罚600元
  • 潘功胜:将下调个人住房公积金贷款利率0.25个百分点
  • 起底新型保健品电话销售诈骗:从快递信息中筛选对象,忽悠其高价买药
  • 共生与伴生:关于人工智能时代艺术评论的对象与主体的思考
  • 南京明孝陵石兽遭涂鸦“到此一游”,景区:已恢复原貌,警方在排查