ClickHouse | 青训营笔记

115 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 15 天

ClickHouse

ClickHouse 是俄罗斯的“百度”——Yandex 公司在 2016 年开源的一款针对大数据实时分析的高性能分布式数据库,与之对应的有 Hadoop 生态 hive,Vertica 和百度出品的 palo。这是“战斗民族”继 Nginx 后,又开源的一款“核武器”。那么其作为分析型数据库,有 三大特点:

  • 跑分快
  • 功能多
  • 文艺范

ClickHouse 特性

  • 采用列式存储

  • 数据压缩

  • CPU 利用率高,在计算时会使用机器上的所有 CPU 资源

  • 支持分片,并且同一个计算任务会在不同分片上并行执行,计算完成后会将结果汇总

  • 支持 SQL,SQL 几乎成了大数据的标准工具,使用门槛较低

  • 支持联表查询

  • 支持实时更新

  • 自动多副本同步

  • 支持索引

  • 分布式存储查询

ClickHouse性能

  • 低延迟: 对于数据量(几千行,列不是很多)不是很大的短查询,如果数据已经被载入缓存,且使用主码,延迟在 50MS 左右。

  • 并发量: 虽然 ClickHouse 是一种在线分析型数据库,也可支持一定的并发,但当单个查询比较短时,官方建议 100 Queries / second。

  • 写入速度: 在使用 MergeTree 引擎的情况下,写入速度大概是 50 - 200M/s,如果按照 1K 一条记录来算,大约每秒可写入 50000 ~ 200000 条记录每秒。如果每条记录比较小的话写入速度会更快。1 亿条数据的文件 2.2GB,导入 Clickhouse 用时 24 秒。查询统计用时 0.185 秒。

ClickHouse 数据类型

  • UInt8,UInt16,UInt32,UInt64,Int8,Int16,Int32,Int64。

  • Float32, Float64

  • String

  • Date

  • DateTime

ClickHouse SQL 语句

建库

CREATE DATABASE test ENGINE = Ordinary;

建表

CREATE TABLE 表名(字段名 数据类型...) ENGINE = 存储引擎(日期字段, (主键), 索引粒度);

插入数据

INSERT INTO 表名 [(字段名...)] VALUES (值...), ...

查询数据

SELECT 字段名... FROM 表名 WHERE 条件;