打开 “懒猫微服客户端” 下载应用

clickhouse

高性能列式数据库

16 次下载
0 次点赞
0 条评论
0 次催更
16

安装次数

0

点赞

0

应用评论

0

催更次数

桌面端

应用描述

ClickHouse 是一个用于联机分析处理 (OLAP) 的高性能列式数据库管理系统 (DBMS),专为快速查询海量数据而设计,以其卓越的查询性能而闻名,尤其是在处理大规模数据集上的聚合分析查询时,速度通常比其他分析型数据库快一个数量级。 优势: 极高的查询性能: 尤其擅长处理大规模数据集上的聚合查询,性能远超传统的关系型数据库。 简单易用: 支持 SQL 查询语言,学习成本较低。 强大的扩展性: 可以通过水平扩展来处理海量数据。 成本效益高: 开源免费,可以降低使用成本。 自带 ch-ui 作为前端界面,开发 9000 端口(tcp)可以使用其他工具进行连接。 默认用户:default,空密码

相关攻略

ClickHouse 实用指南:让你的数据分析飞起来

如果你在做项目的时候,遇到了海量数据分析的问题,传统的 MySQL 查个几千万条数据就卡得要命。但如果是 ClickHouse,真的会被它的速度震撼到。 ## ClickHouse 是个啥? 简单来说,ClickHouse 是一个**开源的列式数据库**,专门用来做实时数据分析。你可以理解为它是一个超快的数据仓库,特别擅长处理大量数据的查询和分析。 https://appstore.lazycat.cloud/#/shop/detail/io.zeroc.app.clickhouse ## 快速上手 应用安装后,打开就是功能页面 ![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/e1b343dd-0146-4bd8-8716-47a83b19af64.png "image.png") 资源管理器面板 (Explorer),可以浏览数据库的结构。它内置了一些数据库: INFORMATION_SCHEMA: 许多 SQL 数据库中都有的标准模式,包含关于数据库对象(如表、列和数据类型)的元数据。 system: ClickHouse 中的另一个系统数据库,包含内部表和关于服务器状态的信息 ![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/ba54389a-d505-40e9-9f40-acd3d95d16f1.png "image.png") 右侧区域,是写sql语句的地方 ![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/70c585a5-9c5a-4e9a-950e-a93ac2154ca1.png "image.png") SQL QUERY (SQL 查询): 这是页面最重要的部分。它是一个编辑器,您可以在这里直接编写和执行 SQL 查询,向 ClickHouse 服务器发送 SELECT、INSERT、CREATE 或其他 SQL 语句 ![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/440f322e-045f-4b8a-ba71-870d197f2659.png "image.png") 创建一个用户行为分析的表: ```sql -- 创建数据库 CREATE DATABASE user_analytics; -- 使用数据库 USE user_analytics; -- 创建用户行为表 CREATE TABLE user_events ( user_id UInt32, event_time DateTime, event_type String, page_url String, device String ) ENGINE = MergeTree() ORDER BY (user_id, event_time); ``` 插入一些测试数据: ```sql INSERT INTO user_events VALUES (1001, '2024-01-15 10:30:00', 'page_view', '/home', 'mobile'), (1001, '2024-01-15 10:35:00', 'click', '/product/123', 'mobile'), (1002, '2024-01-15 11:00:00', 'page_view', '/home', 'desktop'), (1002, '2024-01-15 11:05:00', 'purchase', '/checkout', 'desktop'), (1003, '2024-01-15 12:00:00', 'page_view', '/about', 'mobile'); ``` ![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/f1c749a8-3437-464f-9b42-38ca30854b99.png "image.png") 试试查询: ```sql -- 按设备类型统计事件数量 SELECT device, count() as event_count FROM user_events GROUP BY device; ``` ![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/2d35987f-c430-47fb-bd5a-794c152fa383.png "image.png") ### 选择合适的表引擎 **MergeTree(最常用):** ```sql CREATE TABLE events ( date Date, user_id UInt32, action String ) ENGINE = MergeTree() PARTITION BY toYYYYMM(date) -- 按月分区 ORDER BY (user_id, date); -- 主键排序 ``` **ReplacingMergeTree(去重):** ```sql CREATE TABLE user_profiles ( user_id UInt32, name String, email String, updated_at DateTime ) ENGINE = ReplacingMergeTree(updated_at) -- 用更新时间去重 ORDER BY user_id; ``` **利用分区剪枝:** ```sql -- 好的查询,利用了分区 SELECT count() FROM events WHERE date >= '2024-01-01' AND date < '2024-02-01'; -- 不好的查询,扫描全表 SELECT count() FROM events WHERE toYear(date) = 2024; ``` 查看表大小: ```sql SELECT table, formatReadableSize(sum(bytes)) as size, sum(rows) as rows FROM system.parts GROUP BY table; ``` ![image.png](https://lzc-playground-1301583638.cos.ap-chengdu.myqcloud.com/guidelines/496/b483fd82-aa51-4181-9d61-434de2670da1.png "image.png") ### 为什么它这么快? 传统数据库(比如 MySQL)是按行存储数据的: ``` 姓名 年龄 城市 张三 25 北京 李四 30 上海 王五 28 深圳 ``` 而 ClickHouse 是按列存储的: ``` 姓名列: [张三, 李四, 王五] 年龄列: [25, 30, 28] 城市列: [北京, 上海, 深圳] ``` 这样做的好处是: - 查询时只读取需要的列,大大减少IO - 同一列的数据类型相同,压缩效果更好 - 适合做聚合计算(求和、平均值等) **适合的场景:** - 日志分析(服务器日志、用户行为日志) - 实时报表和数据看板 - 时间序列数据分析 - 大数据量的统计分析 - **不太适合的场景:** - 频繁的单条记录增删改 - 需要事务支持的场景 - 小数据量的简单查询 ## 写在最后 ClickHouse 适合在处理大数据量分析的时候。 如果你也在做数据分析相关的工作,强烈建议试试 ClickHouse,相信不会让你失望的。 有问题的话欢迎一起讨论~

懒猫评分/评论

0.0

0 条评论

此 App 尚未收到足够的评分或评论,无法显示评论列表。

应用信息

最新版本

0.0.1

更新日期

6/4/2025

预估安装占用

252.49 MB

不支持平台

ios、android

提供者

zeroc

兼容性

可在此设备上使用

"0.0.1-initial publish"