产品图鉴:Clickhouse

2023-10-16 14:15:06 浏览数 (3)

什么是Clickhouse

Clickhouse是俄罗斯yandex公司于2016年开源的一个列式存储数据库管理系统,是流行的OLAP数据库之一,使用MPP架构,以其超高的查询性能受到业界的青睐。

Clickhouse数据压缩性能很好,相比PostgreSQL,所需磁盘空间减少70%;社区活跃,支持TTL(过期数据定期删除),适配多种操作语言(Java、Go、Python、Nodejs)。

它支持标准的SQL语言,包括SELECT、INSERT、UPDATE、DELETE等常见操作,还支持窗口函数、聚合函数、JOIN等复杂的查询和分析功能。易用性也比较不错。

代码语言:javascript复制
--创建表格
CREATE TABLE student (
    id UInt16,
    name String,
    age UInt8
) ENGINE = Memory;
--插入数据
INSERT INTO student VALUES
    (1, 'Alice', 20),
    (2, 'Bob', 22),
    (3, 'Charlie', 19);
--查询数据
SELECT * FROM student;
--聚合查询
SELECT AVG(age) AS avg_age FROM student;
--join查询
SELECT s.name, c.course_name
FROM student s
LEFT JOIN course c ON s.id = c.student_id;

支持从多种数据源进行数据接入,用于OLAP分析。

代码语言:javascript复制
--接入MySQL数据
SELECT *
FROM
   mysql(
    'localhost:3306',
    'my_database',
    'my_table',
    'postgresql_user',
    'password')
;

但Clickhouse也有其缺点,它主要关注单表优化,不能很好地处理复杂表达式和多表join的场景,而且在需要落盘的场景clickhouse也没有做过很好的优化。更新与删除的支持并不好。

0 人点赞