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

clickhouse数据库 数据插入 去重和覆盖

一、存在则忽略(只插入全新用户)

from clickhouse_driver import Client
import pandas as pd
client = Client(host='localhost', port=9000, database='default')# 0) 待写入的新数据
df_new = pd.DataFrame({
'user_id': [1, 2, 3, 4],
'balance': [100, 200, 300, 400],
'snap_date': pd.to_datetime(['2025-10-17'] * 4)
})# 1) 正式表
CREATE TABLE IF NOT EXISTS balance_ignore
(
user_id UInt32,
balance Float64,
snap_date Date
) ENGINE = MergeTree()
ORDER BY user_id; -- 主键# 2) 落地临时表
client.execute('DROP TABLE IF EXISTS tmp_balance')
client.execute('CREATE TABLE tmp_balance AS balance_ignore ENGINE = Memory')
client.insert_dataframe('INSERT INTO tmp_balance VALUES', df_new)# 3) + 4) 反连接后插入
client.execute('''
INSERT INTO balance_ignore
SELECT t.*
FROM tmp_balance AS t
LEFT JOIN balance_ignore AS u USING (user_id)
WHERE u.user_id = 0 -- 0 表示“找不到”,ClickHouse 反连接特征值
''')# 5) 验证
print(client.query_dataframe('SELECT * FROM balance_ignore ORDER BY user_id'))

 

 二、存在则覆盖(Insert-or-replace)

思路
① 把表改成 ReplacingMergeTree(相同主键只保留最后一条)
② 无脑 INSERT 即可,无需任何过滤
③ 查询时加 FINAL 或再 GROUP BY 拿到“最新版本”

# -- 1) 覆盖型表
CREATE TABLE IF NOT EXISTS balance_replace
(user_id   UInt32,balance   Float64,snap_date Date
) ENGINE = ReplacingMergeTree()   -- 关键:按 ORDER BY 去重
ORDER BY user_id;      # 2) 第一次写入
client.insert_dataframe('INSERT INTO balance_replace VALUES', df_new)# 3) 模拟“余额变更”再写一次(user_id=1,2 余额变了)
df_update = pd.DataFrame({'user_id': [1, 2],'balance': [999, 888],'snap_date': pd.to_datetime(['2025-10-18'] * 2)
})
client.insert_dataframe('INSERT INTO balance_replace VALUES', df_update)

  

 

http://www.zskr.cn/news/23396.html

相关文章:

  • 2025年防水织带/鞋垫/编织包/针织包/飞织包包/松紧带/鞋带/织带/飞织鞋面厂家推荐排行榜,品质与创新的完美结合!
  • 2025年压铸机械手厂家推荐排行榜,铝镁合金压铸周边自动化,压铸岛专业解决方案!
  • 2025 年压滤机厂家最新推荐榜:隔膜 / 污泥 / 真空 / 板框 / 带式压滤机优质企业精选指南
  • 灵芯派(基于Debian系统)
  • 2025年手持光谱仪/光谱分析仪/便携式光谱仪厂家推荐榜单,矿石/元素/合金/金属/贵金属分析仪器首选!
  • 详细介绍:增强版 bash “zsh“
  • 2025年法兰保护罩/阀门保温罩/法兰罩/法兰防溅罩/法兰保护套厂家推荐排行榜,专业防护与优质服务首选!
  • 2025年无心/外圆磨床,滚丝机,外圆抛光机,送料机,送料架,自动化,机械手厂家推荐排行榜,专业品质与高效性能之选!
  • 2025年陶瓷过滤机厂家推荐排行榜,陶瓷真空/盘式/矿用/全自动/带式陶瓷过滤机,固液分离设备公司推荐!
  • 2025多校冲刺 CSP 模拟赛 6
  • 初次扫描设计
  • 2025年数粒机厂家推荐排行榜,防爆/新型/高速/高精度/智能/大容量/多通道/电子/视觉/全自动/低噪音/制药/农业/食品/电子元件/光电/定制化/鹌鹑蛋/糖果/坚果/药品/片剂数粒机公司推荐
  • 因果分布变化解释方法解析
  • 2025年塑料托盘厂家推荐排行榜,网格川字/九脚/田字/双面/平板/吹塑/注塑/焊接/印刷/组装款/高矮脚/反川字/立体库托盘公司精选
  • 2025年解冻设备厂家推荐排行榜,低温高湿/静电解冻/射频解冻/速冻螺旋/缓化柜/复醒柜设备公司精选!
  • 2025年防腐木加工厂权威推荐榜:环保耐用,品质卓越的厂家精选!
  • 2025年防水连接器/航空插头/工业网线厂家推荐排行榜,专业品质与耐用性能的首选!
  • 2025年铣刀厂家推荐排行榜,雕刻机/金刚石/木工/绝缘材料/碳纤维/亚克力/金属加工/铝合金/石墨/不锈钢/电木/塑胶/PC铣刀公司精选!
  • 2025年彩钢瓦,镀锌板,折弯件,C型钢,Z型钢,压型瓦,楼承板,钢结构安装,次檩条厂家推荐排行榜,品质与服务双重保障!
  • 2025年开关按钮厂家推荐排行榜,带灯/防水/防爆/防腐/紧急式/开启式/联锁式/旋转式/钥匙式/蘑菇头/面板式开关按钮公司精选
  • 2025年拉链厂家推荐排行榜,TAB拉链,大棕拉链,金属拉链,树脂拉链,服装拉链,尼龙拉链,防水拉链,隐形拉链,男装拉链,女装拉链公司推荐!
  • 10.15总结
  • 在偏执中精进 ——《程序员修炼之道:从小工到专家》第四章读后感
  • 刷题日记—数字读取与判断
  • Linux Mint -- LMDE6升级到LMDE7
  • 实验一 现代C++基础编程
  • 单目深度估计 - MKT
  • 10.17日学习笔记
  • KV缓存(Key-Value Cache)
  • 模型验证