- 博客(30)
- 收藏
- 关注
原创 一篇搞懂 ClickHouse 索引:排序键、分区裁剪与 Skip Index 实战
ClickHouse通过稀疏索引、分区裁剪与二级跳数索引(如minmax、set、bloom_filter)构建高效查询体系。稀疏索引基于排序键,每8192行标记一次,实现粗粒度定位;分区裁剪按时间或维度跳过无关数据块;二级索引则在非主键字段上加速过滤,尤其适用于高基数、局部聚集的场景。实际案例显示,合理设计索引可使查询性能提升60倍以上。关键在于:排序键优先匹配高频过滤字段,跳数索引需结合数据分布验证,避免过度分区导致颗粒边缘效应。索引本质是减少扫描而非完全避免全表读取,其价值在于“证明哪些块可跳过”。
2026-09-09 10:47:53
339
原创 PostgreSQL 到 ClickHouse 数据迁移与同步方案全解析
方案数据流向同步类型优缺点分析ClickPipesPG → CK全量 + CDC增量优:官方原生支持,开箱即用稳定。缺仅限 ClickHouse Cloud 商业用户。PeerDBPG → CK全量 + CDC增量优:专业 CDC,延迟极低,支持开源自建版 CK。缺:需额外部署维护PG 数据库引擎推荐CK Pull PG库级全量 / 临时查询优:免建表,CK 自动感知 PG 表结构。缺:长连接可能给 PG 主库带来一定查询压力。PG 表函数推荐CK Pull PG。
2026-08-31 10:07:19
399
原创 CK解密档案:一条 INSERT 如何变成上百个 Part?ClickHouse 写入、落盘与合并机制全解析
写模式选型微服务 / 高频小写入:开启 async_insert = 1,同时配置 wait_for_async_insert = 1 保障数据可靠性。批处理 / ETL 导入:保持同步模式,单批次拼攒> 2 万 ~ 10 万行后再提交。亿级数据迁移直接通过 INSERT INTO ... SELECT 导入,信任并利用系统的Squashing 内存凑块机制,无需在客户端写复杂的分片分批代码。容量与健康度Part 数量不存在适用于所有业务的固定健康区间。
2026-08-27 16:03:34
364
原创 《原来如此 | 第06期:大模型时代的“数字黄金”:人人都在谈的 Token 到底是什么?为什么它成了 AI 世界的唯一通用货币?》
避免无意义的符号与冗余空格:在大模型分词器眼里,word、word(带空格)和 word!分属完全不同的 Token。精简提示词的格式,能直接省下真金白银。中文任务优选国产大模型:对于重度中文应用,优先选择 Qwen、DeepSeek 等拥有自主大词表分词器的模型,其 Token 压缩率更高,能省下大笔费用。你遇到过最离谱的 Token 扣费账单是什么?当想到每一次调侃 AI、让它写废话的背后,都有数百毫升的水在服务器后台悄悄蒸发,你对 AI 的看法是否发生了改变?欢迎在评论区留下你的硬核思考。
2026-08-10 17:20:41
306
原创 《原来如此|第05期:为什么1TB移动固态硬盘一年涨了近3倍?揭秘内存、闪存暴涨背后的真相》
从 369 元到 959 元,这波暴涨并不是因为技术止步不前,而是寡头厂商的主动利润修复行为,叠加了 AI 爆发带来的产能虹吸效应。作为消费者,我们该如何应对这波存储涨价潮?按需购买,避免囤货:半导体周期永远存在。当目前的暴利吸引原厂重新扩大产能,或者 AI 服务器需求出现阶段性平稳时,存储价格终究会步入下行通道。关注国产替代红线:国内以长江存储为代表的厂商在 3D NAND 技术上已经具备极强的竞争力。国产存储颗粒的产能释放,是打破国际巨头定价默契、拉低终端零售价的重要力量。认清实际需求。
2026-06-26 11:05:42
665
原创 《原来如此 | 第04期:同一张机票/酒店,凭什么你买就比别人贵?》
这个就是很多人口中相传的“多项实证研究表明,持有最新旗舰机型的用户,其画像在分类算法(如 XGBoost 决策树)中更容易被划分到“高购买力”叶子节点,从而在网约车、酒店预订等场景中被算法分配更高的默认基准价或优先推荐高端车型。这听起来非常违背传统商业道德,但在互联网平台,用户的“忠诚度”在算法模型里通常对应着较低的“即时流失概率”(Instantaneous Churn Probability)。但是,上面的方法本质上还是在消耗你的时间,平台的目的就是让你二选一,实际上,很有可能你的时间也花了,但还是。
2026-06-22 16:06:03
394
原创 从“单机孤岛”到“千亿交响乐”:ClickHouse Keeper 的四重奏
总的来说,ClickHouse Keeper 就像是集群中的“交警与调度员”它不运送货物(不传输物理数据),但决定了货车的路线和交通规则(协调元数据、下发任务、监控健康)。分清“动静”关系静态的普通表(MergeTree)是单机版的,不与 Keeper 交互。动态的副本表(ReplicatedMergeTree)才是 Keeper 的核心服务对象。看透 DDL 的本质ON CLUSTER 并不是什么魔法,它只是通过 Keeper 维护了一个分布式任务队列。
2026-06-17 11:37:58
302
原创 被误解的 ClickHouse 物化视图:为什么说它其实是一个“写入触发器”?
在构建实时数仓的过程中,ClickHouse 物化视图(Materialized View)常被用于聚合加速和数据分流。然而,许多开发者常因套用传统数据库(如 PostgreSQL 或 Oracle)的经验而陷入误区。本文将剖析 ClickHouse 物化视图的底层逻辑、核心工作原理、分布式架构下的经典设计模式以及生产环境中的避坑指南。
2026-06-15 17:42:36
194
原创 《原来如此 | 第03期:你的手机真的在“偷听”你说话吗?》
手机广告的“精准推荐”常被误认为是麦克风窃听,实则背后是大数据算法的关联预测。通过用户画像(如年龄、兴趣)、社交图谱(定位、Wi-Fi重叠)和跨平台数据整合(SDK、输入法、设备ID映射),算法无需监听即可预测需求。这种“数字分身”技术比窃听更高效且隐蔽,结合心理学上的频率错觉,放大了用户的“灵异”感知。降低被“读心”的方法包括关闭个性化广告、限制应用权限等。算法并非窃听,而是通过数据碎片拼凑出比用户更了解自己的行为模型。
2026-06-10 13:45:58
399
原创 《原来如此 | 第02期:扫码支付时,没网络为什么也能扣款?》
摘要: 离线扫码支付能在断网时完成交易,核心在于动态令牌(TOTP)和非对称加密技术。手机通过本地存储的密钥和时间戳生成一次性付款码(有效期约1分钟),并附加数字签名;商家扫码枪联网后,支付平台验证签名并扣款。安全机制包括动态失效、一次性令牌及硬件级密钥保护(TEE),防止截屏盗刷。整个过程依赖手机离线生成授权信息,商家终端在线传递,云端完成验证,实现“断网支付”。
2026-05-15 11:35:39
575
原创 《原来如此 | 第01期:为什么导航软件能预测红绿灯倒计时?》
导航算法不是在“看”红绿灯,它是在根据已知规律不断“盲猜”,并在每一次真实观测中修正自己的“盲猜”。未来,你的手机摄像头会瞬间识别地库里的立柱编号,瞬间修正漂移,让你在地库也能享受“无感导航”。未来的导航,看的不只是经纬度,而是。在现实中,导航面临的数据充满了噪声:GPS 信号会在高楼间产生漂移,手机网络会断连,甚至路口的车辆起步速度也各有不同。你是否有过这样的经历:开车行驶在不熟悉的城市路口,距离红绿灯还有两百米,导航突然淡定地播报:“请注意,红灯倒计时 15 秒”,“保持当前速度可通过三个绿灯”。
2026-05-09 16:03:50
506
原创 深入理解 ClickHouse 缓存体系(上):从读取缓存说起
本文深入解析ClickHouse的多级缓存架构,揭示其性能优化的核心机制。从最前端的查询结果缓存(Query Cache)到内存字典加速(Dictionary),再到数据定位层的元数据缓存(PrimaryKeyCache+MarkCache),最后到真实数据获取层的未压缩缓存(UncompressedCache)和操作系统页缓存(OSPageCache),构成完整的缓存漏斗体系。文章通过实际测试数据展示了各级缓存的性能差异,并详细介绍了缓存配置、监控和清理方法。特别强调了查询缓存、字典缓存等高级特性的应用场
2026-03-05 16:17:37
593
原创 如何搭建一个可维护的文档中心网站
最近,不少人反馈语雀上iDms 文档出现卡顿情况,还有一些人没有使用过语雀,那么打开文档就需要登录在查看,这时候在文档不断扩大的情况下搭建一个文档站,就很有必要了。不过网络上搭建文档中心的工具是在是太多了,利用AI,筛选出来一些工具,总结了工具的优缺点来看看选什么作为文档站搭建工具。诚然,很多路不是一下子就选定的,当然我不知道写下这些话之后,是否在后面还得返回来再次进行工具选型,但希望只需要一次就够了。工具优点劣势GitBook云端协作,团队共享方便;自动生成美观的文档页面;
2025-07-31 15:14:38
1212
原创 处理 Clickhouse 内存溢出
它们很容易解释,前者是这个语句所花费的时间,后者是内存使用,从图中可以看出 insert into table select from other-table 的语句,每条需要7s左右时间,且内存9G左右,这样62G的内存完全hold不住啊。后台线程池的大小,merge 线程就是在该线程池中执行,当然该线程池不仅仅是给 merge 线程用的,默认值 16,推荐 32 提升 merge 的速度 (CPU 允许的前提下)。这边需要注意一点,参数需要设置在user.xml下,不需要要重启,保存后就会生效。
2025-05-06 14:26:40
2648
原创 ClickHouse 数据库中的 “超时”
事实上,clickhouse并不会因为你在界面上多点了一下鼠标,就取消之前的SQL运行,反而会产生多个SQL在并发执行,如果这种耗时比较久的SQL越积CPU打满,造成的结果就是恶性循环,其他SQL也会越来越慢,最终导致并发的SQL超过了设置的最大并发数,再也无法执行任何查询语句,甚至写入都会受到影响。因为对于clickhouse的查询来说,一个大的查询SQL往往会把整个服务器的资源吃满,如果并发查询比较多的话,那么不可避免地造成资源竞争,最终的结果就是谁也快不了,甚至还会出现OOM的情况。
2025-04-15 09:40:56
3160
原创 教你如何在clickhouse上建表
在 ClickHouse 中,表引擎是表的核心组成部分,决定了表的存储方式、数据分布、索引机制以及查询性能。ClickHouse 提供了多种表引擎,每种引擎适用于不同的场景。表引擎决定了如何存储表的数据。包括:数据的存储方式和位置,写到哪里以及从哪里读取数据支持哪些查询以及如何支持并发数据访问索引的使用(如果存在)是否可以执行多线程请求数据复制参数表引擎是 ClickHouse 的核心特性之一,它定义了数据的存储和查询方式。常见的表引擎分为以下几类:见第二章。
2025-04-10 18:07:59
1637
原创 Clickhouse 中的replace语法
REPLACE子句在SELECT语句中位于COLUMNS选择之后,但在WHERE子句之前。这意味着REPLACE操作会先于WHERE过滤执行。此外,文档还指出:这进一步说明REPLACE操作是在整个结果集上执行的,而不是在WHERE过滤之后。因此,我们可以得出结论,在ClickHouse中,查询结果集字段的动态替换(REPLACE)的优先级高于WHERE子句的过滤操作。REPLACE会先执行,然后才是WHERE过滤。
2025-01-23 15:37:35
1268
原创 记录一次CK中插入数据不在预期分区中的现象
slot 的数量等于所有分片权重之和,假设集群有两个分片,第一个分片 weight 为 1,第二个 weight 为2 ,那么 slot 的数量为 3(1+2),slot 按照权重元素的取值区间,与对应的分片形成映射关系,对同一ID值(同一分片键,同一分区键)的数据执行插入操作(插入到分布式表中),有概率写入到不同分片上去(与常理不符合,应该是写入到同一个分片节点上) 根据user_id 分区的。148上节点分片配置的weight为2,和第一个147节点上的配置不同!
2025-01-14 16:55:44
1202
原创 借助clickhouse-jdbc实现oracle数据迁移到mysql(脚本版)
同时Clickhouse 自带mysql函数,可以直接读取,插入数据到mysql数据库中(注意⚠️:在clickhouse数据库上修改不了mysql数据库数据)在SQL中可以重写命名集合中设置的参数,如下例所示。这个过程借助第三方数据库实现数据从oracle数据库到mysql数据的转变,比起传统的ETL工具,既不需要空间去转换数据,也不需要下载原始数据和上传转换好的数据。然后,我们就能在clickhouse数据库中查或者插入mysql表数据,如下例子是查的mysql 数据库中aicc.aicc_test。
2024-12-18 16:07:12
1045
原创 ClickHouse JDBC Bridge/Funtion实现多种数据库之间数据迁移-联合-ClickHouse
在 ClickHouse 中,我们需要使用适当的引擎,并且注意数据类型和主键的定义。ClickHouse 主要使用 MergeTree 系列引擎来支持主键和分区。├── clickhouse-jdbc-bridge-2.1.0-shaded.jar . #/usr/local/lib/java/目录下。① 可以执行insert 和select 的操作, 也可以执行show tables;和show create table_name;② 也可以进行clickhouse和mysql之间的交互;
2024-06-26 16:54:02
1260
原创 Clickhouse监控方案
3、scrape_configs 配置块:配置采集目标相关, prometheus 监视的目标。Prometheus 自身的运行信息可以通过 HTTP 访问,所以 Prometheus 可以监控自己的运行数据。可执行文件在cd /usr/sbin/目录下,配置文件在/etc/grafana下。➢ scrape_interval:配置拉取数据的时间间隔,默认为 1 分钟。1、global 配置块:控制 Prometheus 服务器的全局配置。➢ targets :指定监控的目标 ,其实就是从哪儿拉取数据。
2024-05-09 10:38:18
939
1
原创 If you‘re seeing this Grafana has failed to load its application files ___Grafana 问题
官网就那么几种安装方式,反复尝试几次都这样,看浏览器也在支持范围,头疼。没想到换个浏览器就打开了。
2024-04-16 14:46:45
1362
1
原创 霉霉——long live HTML歌单设计
里面涉及许多初级HTML知识,学习中带来信仰,等我再学学,争取来个爱心飘动效果。~~~纯纯就是本人霉粉自玩~~~~
2024-01-19 14:57:12
519
1
原创 Mysql数据库测试工具——sysbench
在 sysbench 1.0 之前, 该场景是通过 oltp.lua 这个脚本来测试的。不过该脚本在 sysbench 1.0 之后就被废弃了,但为了跟之前的版本兼容,该脚本放到了/usr/local/share/sysbench/tests/include/oltp_legacy/ 目录下。默认情况下,sysbench 是通过 INSERT INTO 命令来导入测试数据的。command是 sysbench 要执行的命令,支持的选项有:prepare,prewarm,run,cleanup,help。
2024-01-19 14:48:29
2320
1
原创 Greenplum数据库安装+GPCC部署
在Greenplum数据库中,pg_hba.conf文件用于配置客户端连接到数据库服务器的身份验证规则。当客户端请求连接到数据库服务器时,服务器会根据pg_hba.conf文件中的规则进行身份验证,以确定是否允许连接。必须是gpadmin超级用户执行,必须提供连接master的连接端口,并提供将要创建的gpmon超级用户的密码。在此种认证方法下,数据库会拒绝该连接(即,配置连接的黑名单)配置进行链接的用户,需要注意的是这里是指的数据库的用户。流复制链接的配置,在PG的主从配置中会用到。
2024-01-19 14:42:06
1205
1
原创 Mysql主从复制(黑马版)
做主从复制的目的,并不是为了备份为了解决主库的单点故障,快速切换到从库;为了减少主库的压力(读写分离);可以在从库中执行备份,避免备份期间影响主库服务;
2024-01-11 10:56:47
1117
原创 mysql的xtrabackup+主从复制之建备机
安装和数据库匹配的版本:根据mysql版本按装好xtrabackup工具。根据mysql版本选择xtrabackup版本,5.7.X版本的mysql对应2.4.X的xtrabackup,8.0.X版本的数据库对应8.0.X版本的xtrabackup(这里有个问题:2.4.X的xtrabackup版本最新只到28,但是数据库到了5.7.38)
2024-01-11 10:51:23
1868
原创 PXC安装+keepalived配置
💡 PXC(Percona XtraDB Cluster)是一个开源的、高可用性的MySQL解决方案,它基于Galera集群技术,提供了内置的多主节点、同步复制和故障转移等功能。PXC支持无需共享存储就能实现可扩展性和高可用性,使得应用程序能够更好地应对高并发访问和故障恢复。PXC集群主要由两部分组成:Percona Server with XtraDB和Write Set Replication patches(同步、多主复制插件)高可用性和可扩展性:PXC集群采用多主节点架构。
2023-09-15 14:14:06
486
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅