ClickHouse
文章平均质量分 78
梦想画家
开源软件爱好者,乐于博客分享,业余时间喜欢跑步和科幻,希望与意趣相投朋友一起学习交流。
展开
-
用ClickHouse 文件表引擎快速查询分析文件数据
本文介绍了ClickHouse文件引擎的概念和使用方法。利用文件引擎我们快速实现对数据文件的查询统计分析。原创 2023-08-09 15:28:43 · 1307 阅读 · 0 评论 -
ClickHouse如何处理实时更新
ClickHouse提供丰富的工具集处理实时更新,如:ReplacingMergeTree, CollapsingMergeTree (本文未提及), AggregatingMergeTree 和aggregate 函数。数据通过插入新版本进行修改,插入在ClickHouse中很快有多种有效方法实现类似OLTP中的更新语义实际修改不会立刻发生具体选择哪种方法依赖具体应用场景。ReplacingMergeTree对用户来说是最直接、方便,但一般用于数据量为中小量级或数据仅通过主键查询场景。原创 2023-07-13 08:29:54 · 1776 阅读 · 0 评论 -
介绍几种ClickHouse的集合运算
实际应用中通常需要进行集合运算,如用户画像场景中,给同时复合两个条件集合的用户打标签。本文介绍intersect子句实现交集查询,另外还对比其他方法的实现逻辑。ClickHouse除了提供交集,还有并集和差集功能,实现逻辑一致,了解一个其他也都能理解并应用。原创 2023-06-28 12:14:57 · 2104 阅读 · 1 评论 -
在ClickHouse中计算衍生度量
指标的核心任务就是把原始数据转换为专家数据,指标有维度和度量等要素组成,有时为了提高计算效率,会基于指标度量同时定义其衍生度量,一次性计算多个值。如有当月销售额派生出上月销售额、去年同期销售额等。本文通过示例介绍ClickHouse如何实现衍生度量计算。原创 2023-06-27 15:08:30 · 1071 阅读 · 0 评论 -
使用EXPLAIN SYNTAX优化ClickHouse查询语句
ClickHouse 能够自动优化简单查询,可以使用`EXPLAIN SYNTAX`手动优化查询提升性能。虽然ClickHouse能够自动优化一些查询,但对于复杂查询并不能自动优化。基于EXPLAIN SYNTAX进行分析结果并结合查询日志,会对复杂查询优化提供更多的优化思路。原创 2023-06-25 20:30:00 · 1231 阅读 · 0 评论 -
优化索引粒度参数提升ClickHouse查询性能
当对高基数列进行过滤查询时,总是希望尽可能跳过更多的行。否则需要处理更多数据、需要更多资源。ClickHouse缺省在MergeTree表读取8192行数据块,但我们可以在创建表时调整该`index_granularity` 参数。本文通过示例说明如何调整该参数优化查询性能。原创 2023-06-25 16:12:47 · 1596 阅读 · 0 评论 -
ClickHouse性能调优之排序和数据类型
每个DBA都关心数据库性能调优,我们知道不同数据类型可以描述不能业务场景,同时也影响数据访问和有效存储。ClickHoue支持高级压缩算法提升速度和降低存储成本,优化ClickHoue存储架构提升内存和网络带宽的性能。那我们如何选择压缩算法和数据类型呢?本文通过简单示例说明了排序和选择合适的数据类型,对ClickHouse存占用和处理性能有较大影响。原创 2023-06-20 09:13:16 · 2037 阅读 · 0 评论 -
利用投影提升ClickHouse查询性能
本文介绍了排序键对查询的作用,并通过示例对比使用projection提升查询性能,最后也提及如何在命令行下查询性能统计信息。参考文档:https://www.tinybird.co/clickhouse/knowledge-base/improve-performance-inverted-index。原创 2023-06-19 22:02:09 · 2334 阅读 · 0 评论 -
# 正确删除并理解ClickHouse表和分区
ClickHouse表有一组数据块组成,称为分区和部分,分区是逻辑概念,对应磁盘上的目录,部分对应磁盘上的实际文件。我们可以从表中分离(detach) 分区(partition)或部分(parts),并没有实际删除数据,意味着数据从表中删除,并没有从磁盘上删除,我们可以在未来某个时刻重新附着分区或部分。原创 2023-06-17 17:25:54 · 4229 阅读 · 0 评论 -
ClickHouse http错误代码与查询日志
本文介绍如何获取所有ClickHouse http查询错误代码,通过对比错误代码更好理解HTTP请求的响应头信息。另外ClickHouse会在系统表中保留所有查询日志,如何保留查询相对平衡,避免日志过大占用大量磁盘空间。原创 2023-06-16 17:32:48 · 4216 阅读 · 0 评论 -
ClickHouse数据查询处理高级技巧
本文介绍ClickHouse查询远程服务、多表联合查询、查询特定分区,以及如何交换表和软删除表。这些功能一般RDBMS实现较难,ClickHouse提供的功能可以更高效、更便捷查询处理数据。原创 2023-06-06 10:54:58 · 3263 阅读 · 0 评论 -
ClickHouse性能调优——压缩和编码算法
本文主要介绍了ClickHouse的压缩类型及编码方法,并测试数据进行压缩率对比分析。根据分析结果,压缩率不仅和压缩算法和编码相关,也和数据类型,基数,数据特征有关。原创 2023-05-31 17:53:09 · 4574 阅读 · 0 评论 -
介绍ClickHouse重要特性——系统表
系统表是ClickHouse的重要特性,主要提供数据库SCHEMA、配置和使用的元数据。主要用于数据库管理、查询优化以及系统监控。通过使用系统表DBA和开发者能优化ClickHouse数据库性能、提升整体效率。原创 2023-05-27 20:06:19 · 2034 阅读 · 0 评论 -
ClickHouse识别日期范围重叠的记录
结果显示,employee1和employee1有重叠,从 2022-08-05到2022-08-10;类似employee2和employee3也有重叠,从2022-09-08到2022-09-10。实际项目中遇到需要查询记录之间日期范围重叠的记录,因为每条记录都包括开始和结束时间,本质就是查询日期重叠的记录,不需要完全重叠,只有有重叠就满足条件。在ClickHouse中可以在SQL中查询比较每个范围的开始和结束日期,判断是否有任何重叠。对于数据集中包括日期范围,通过这个方法可以有效识别日期重叠的记录。原创 2023-05-24 08:13:56 · 1218 阅读 · 0 评论 -
优化ClickHouse星型模型查询性能
ClickHouse中in查询大多数场景执行效果较好,另外反规范化也能提升性能。物化视图可以实现在插入阶段实时反规范化,但物化视图会增加磁盘空间、并影响插入性能。原创 2023-05-23 08:49:48 · 1268 阅读 · 0 评论 -
利用ClickHouse派生表优化查询性能
本文介绍了ClickHouse派生表,如何显示或隐式创建派生表,利用好派生表不仅可以提升SQL可读性,还可以提升查询性能。原创 2023-05-22 12:55:50 · 1272 阅读 · 0 评论 -
使用TTL管理ClickHouse数据生命周期
ClickHouse提供强大数据生命周期管理工具实现自动删除、压缩或在不同存储类型中移动。TTL语句可以在表级别配置压缩和保留策略,也可以配置列级ttl策略。参考资料:https://dhqgwvxng9vgy.cloudfront.net/blog/using-ttl-to-manage-data-lifecycles-in-clickhouse。原创 2023-05-20 16:37:21 · 3867 阅读 · 0 评论 -
ClickHouse服务端配置最佳实践
Clickhouse 服务端配置包括两个部分:服务配置 (config.xml) 和用户配置 (users.xml),它们缺省存储在目录下。建议不要改变默认配置文件,把我们的配置放在子目录下的独立文件中,这样更易于维护和升级。/etc/clickhouse-server/users.d – 存放用户配置的子目录./etc/clickhouse-server/config.d – 存放服务配置的子目录./etc/clickhouse-server/conf.d – 存放任何配置的子目录.原创 2023-05-12 14:41:30 · 3745 阅读 · 0 评论 -
ClickHouse 基于角色访问控制(RBAC)最佳实践
本文介绍ClickHouse RBAC访问控制模型。包括如何启用SQL管理,创建管理员用户,创建角色,授权,细粒度列和行级授权。并通过示例进行验证实现过程。原创 2023-05-11 13:37:41 · 1052 阅读 · 0 评论 -
比较ClickHouse三种表字段默认值表达式
ClickHouse表字段支持三种默认值表达式的定义方法,分别是DEFAULT、MATERIALIZED和ALIAS。Default其他RDBMS也支持,比较常用,本文注意介绍后两者表达式的差异,并通过示例分别进行介绍。原创 2023-04-26 08:04:00 · 3159 阅读 · 0 评论 -
如何合理使用ClickHouse分区表
在Clickhouse中分区功能实现透明地将表拆分为多个块,并能够独立管理这些块(例如删除它们)。分区键应该始终为低基数表达式(如有几十个值)。不要仅为了提高查询性能而考虑分区,同时也要注意到分区表数据写入性能可能会降低。原创 2023-04-20 09:20:08 · 6176 阅读 · 0 评论 -
ClickHouse自定义函数实例教程
通过函数封装复杂代码,可以在多个应用场景中复用通过给定输入参数,可以简化测试修改函数定义自动反应至所有函数调用,避免重复维护UDF可以消除重复工作,虽然强大,也不要过度滥用。原创 2023-04-19 08:13:53 · 3910 阅读 · 0 评论 -
ClickHouse实现大数据探索性分析
ClickHouse提供数学函数、聚集函数用于对大数据量进行探索性分析。,效率更高,通常用于数据分析的初始阶段。min(), max(), avg() and median() 最常用的几个聚集函数avgWeighted(col, weights) 计算加权平均quantile(level)(col) 计算分位数histogram(bins)(col) and bar() 计算并画直方图skewPop(col) 计算偏度,判断数据是否对称uniq(col) 近似唯一值计算。原创 2023-04-17 16:30:16 · 2327 阅读 · 0 评论 -
如何合理选择ClickHouse表主键
基于ClickHouse优化结构和排序数据,正确利用主键索引能节约资源,极大提升查询性能。选择计划在大多数查询中使用的列选择大部分查询需要的列,如主键包含3列,查询包括1列或2列如果查询不确定,首先使用低基数列,然后再使用高基数列,从而获得更好的压缩和提高磁盘利用率参考资料:https://medium.com/datadenys/how-clickhouse-primary-key-works-and-how-to-choose-it-4aaf3bf4a8b9。原创 2023-04-14 17:27:52 · 4274 阅读 · 0 评论 -
如何给ClickHouse表生成随机真实测试数据
本文介绍了生成随机测试的函数,包括基本语法及一些数据分布函数的应用,这些函数需至少22.10版本。利用这些函数让数据更真实、更贴近实际业务场景。参考资料:https://clickhouse.com/blog/generating-random-test-distribution-data-for-clickhouse官方文档:https://clickhouse.com/docs/en/sql-reference/functions/random-functions#randuniform。原创 2023-04-13 21:31:13 · 1891 阅读 · 0 评论 -
ClickHouse存储解析JSON数据
json数据在ClickHouse中就和string字段一样,但可以使用JSON*函数检查并抽取json键值。还可以使用抽取函数作为索引提升查询性能,但最好考虑将它们移动到单独的列中,只留下动态内容存储在JSON列中。参考:https://altinity.com/blog/clickhouse-json-data-type-version-22-6;原创 2023-03-30 21:18:57 · 6638 阅读 · 0 评论 -
常用ClickHouse性能监控SQL汇总
ClickHosue对DBA非常友好,system数据库提供了所有DBA需要的信息。本文进行介绍最重要的一些SQL,远不是完整清单,但应该能帮助你快速确定问题。参考文档:https://clickhouse.com/blog/optimize-clickhouse-codecs-compression-schema;原创 2023-03-29 20:07:57 · 1999 阅读 · 0 评论 -
快速搞懂ClickHouse表引擎
表引擎在ClickHouse中扮演重要角色,直接决定如何存储、读取数据,是否支持并法读写,是否支持索引、查询类型、主从复制等。ClickHouse提供4类表引擎,分别支持不同场景。如Log系列用于小型表数据分析,MergeTree系列实现大型表数据分析,集成系列用于数据集成。考虑到这么多类型对于新用户经来说难以理解、也难以选择,本文试图对各类引擎进行整理,加深理解,希望对你也有帮助。另外复制系列和分布式表引擎比较复杂,未来再学习分享。原创 2023-03-24 20:24:50 · 1542 阅读 · 0 评论 -
高效实施ClickHouse数据备份
本文介绍ClickHouse数据备份,包括手动实施,利用第三方工具(clickhouse-backup)实现。主要包括创建用户并授权,手动备份、自动备份。原创 2023-03-24 08:17:12 · 1743 阅读 · 1 评论 -
ClickHouse使用MySQL实现字典查询
外部字典是ClickHouse的一等公民,是Schema的一部分,我们可以使用本地DDL或 ON CLUSTER语句进行创建。实现细节多用户是透明的,它自动转换join查询为字典调用,用户体验及查询性能都值得我们去学习和使用。外部字典还有其他类型,如层次、多边形等字典,未来继续学习并分享。原创 2023-03-18 15:47:48 · 1628 阅读 · 0 评论