当前位置: 首页 > 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.hskmm.com/?act=detail&tid=33480

相关文章:

  • nacos客户端(接口调用者)如何感知被调用服务下线? (二)
  • 2025 水泥墩源头厂家最新推荐排行榜:光伏 / 交通 / 围挡等多品类优选,实力品牌权威榜单发布
  • 2025年鸡精生产线/高速混合机/WDG农药生产线/鸡粉干燥设备/海鲜精干燥设备厂家推荐排行榜,调味料干燥设备/全自动配料/螺带混合机优质品牌!
  • 2025 年过滤机厂家最新推荐排行榜:胶带式 / 盘式真空 / 脱水 / 带式真空 / 水平带式过滤机企业精选及选购指南
  • nacos客户端(接口调用者)如何感知被调用服务下线?(一)
  • 2025年防水织带/鞋垫/编织包/针织包/飞织包包/松紧带/鞋带/织带/飞织鞋面厂家推荐排行榜,品质与创新的完美结合!
  • 2025年压铸机械手厂家推荐排行榜,铝镁合金压铸周边自动化,压铸岛专业解决方案!
  • 在MySQL中 redolog undolog binlog 写入的场景,顺序
  • 2025年证卡打印机厂家权威推荐榜:含证件/PVC卡/IC卡/ID卡/智能卡,宝瑞迪/BOOD品牌优选!
  • 2025 年压滤机厂家最新推荐榜:隔膜 / 污泥 / 真空 / 板框 / 带式压滤机优质企业精选指南
  • 灵芯派(基于Debian系统)
  • 2025年大连网络营销推广/媒体投放/全案推广/新媒体营销/全媒体推广/代运营公司权威推荐榜
  • 2025年手持光谱仪/光谱分析仪/便携式光谱仪厂家推荐榜单,矿石/元素/合金/金属/贵金属分析仪器首选!
  • 字符串操作函数
  • 2025年法兰保护罩/阀门保温罩/法兰罩/法兰防溅罩/法兰保护套厂家推荐排行榜,专业防护与优质服务首选!
  • Aniyomi:功能强大的动漫影视播放阅读器
  • 2025年无心/外圆磨床,滚丝机,外圆抛光机,送料机,送料架,自动化,机械手厂家推荐排行榜,专业品质与高效性能之选!
  • 2025年陶瓷过滤机厂家推荐排行榜,陶瓷真空/盘式/矿用/全自动/带式陶瓷过滤机,固液分离设备公司推荐!
  • ICASSP 2022语音识别技术突破与创新
  • 140亿元!曝芯片巨头拟出售通信类业务
  • 2025多校冲刺 CSP 模拟赛 6
  • Cisco ASR 9000 Router IOS XR Release 7.11.2 MD - 思科 ASR 9000 路由器系统软件
  • 2025年瑕疵检测设备厂家推荐排行榜,表面瑕疵检测,薄膜瑕疵检测,铝箔瑕疵在线检测,外观瑕疵检测机公司精选!
  • 开机自启动
  • 10.16 闲话-k 短路
  • 初次扫描设计
  • 关于虚数单位与复数
  • AI深度学习平台快速诊断肌张力障碍
  • 2025年多功能防水篷布厂家推荐排行榜,聚乙烯/帐篷/汽车/宴会/盖草布/泳池布/微喷水带/日用盖/农林用/重型机器用篷布公司精选
  • 2025年干燥机厂家推荐排行榜,小型喷雾/实验室离心喷雾/双锥回转真空/搪瓷双锥/旋转闪蒸/振动流化床/真空耙式/单层带式/多层带式/立式沸腾/卧式沸腾/滚筒刮板干燥机!