ClickHouse快速入门

ClickHouse快速入门上篇

CK官网 什么是ClickHouse? | ClickHouse Docs


1. ClickHouse是什么

1.1 一句话介绍ClickHouse

ClickHouse 的全称是是Click Stream,Data WareHouse,简称ClickHouse、CH、CK,是俄罗斯的 Yandex 于 2016 年开源的列式存储数据库,使用 C++ 语言编写,主要用于在线分析处理查询(OLAP)能够使用 SQL 查询实时生成分析数据报告。

ps:olap数据库的特点就是擅长做一次插入多次查询的操作,而不适合做删除和修改

1.2 ClickHouse的优缺点

优点:

1) 支持完备的SQL操作

几乎覆盖了标准 SQL 的大部分语法,包括 DDL 和 DML,以及配套的各种函数,用户管理及权限管理,数据的备份与恢复。

2) 列式存储与数据压缩

大数据常用的存储方式,优点:易压缩、聚合、计数等

3)高吞吐的写入能力

ClickHouse 在数据导入时全部是顺序 append 写,写入后数据段不可更改,在后台 compaction 时也是多个段 merge sort 后顺序写回磁盘。官方公开 benchmark 测试显示能够达到 50MB-200MB/s 的写入吞吐能力,按照每行 100Byte 估算,大约相当于 50W-200W 条/s 的写入速度。 4) 丰富的表引擎

ClickHouse 和 MySQL 类似,把表级的存储引擎插件化,根据表的不同需求可以设定不同 的存储引擎。目前包括合并树、日志、接口和其他四大类 20 多种引擎。

5) 并行处理

ClickHouse 将数据划分为多个 partition,每个 partition 再进一步划分为多个 index granularity(索引粒度),然后通过多个 CPU核心分别处理其中的一部分来实现并行数据处理。 在这种设计下,单条 Query 就能利用整机所有 CPU。极致的并行处理能力,极大的降低了查 询延时。 所以,ClickHouse 即使对于大量数据的查询也能够化整为零平行处理。但是有一个弊端 就是对于单条查询使用多 cpu,就不利于同时并发多条查询。所以对于高 qps 的查询业务, ClickHouse 并不是强项。

6) 查询速度快

CK的查询速度快是基于单表的查询的速度快,而对于多表的join查询时,速度没有优势。

总结:CK对于单表的查询速度非常快,单条 Query 就能利用整机所有 CPU,因此不太适合高QPS的查询,进一步来讲,CK不适合存储初始数据的数据库,更加契合大量的已经处理过的宽表的存储。

缺点:

1)不支持事务,不支持真正的删除/更新;

2)不支持高并发,官方建议qps为100,可以通过修改配置文件增加连接数,但是在服务器足够好的情况下;

3)SQL满足日常使用80%以上的语法,join比较特殊;最新版已支持类似SQL的join,但性能不好;

2. CK的基本数据类型

简单来讲,CK的数据类型的使用方法同其他数据库,但是在写法上有点差异。

2.1 整型

2.1.1 有符号整型

Int8 - [-128 : 127]

Int16 - [-32768 : 32767]

Int32 - [-2147483648 : 2147483647]

Int64 - [-9223372036854775808 : 9223372036854775807]

直接是int加上位数,同int,bigint,tinyint等。一般来讲肯定是int32和int64用的居多。

2.1.2 无符号整型

UInt8 - [0 : 255]

UInt16 - [0 : 65535]

UInt32 - [0 : 4294967295]

UInt64 - [0 : 18446744073709551615]

2.2 浮点型

float32,float64

说明:浮点型会存在精度丢失的问题,所以使用场景一般数据值比较小,不涉及大量的统计计算,精度要求不高的时候。比如 保存商品的重量。通常下都会使用Decimal类型表示小数。

2.3 Decimal型

有符号的浮点数,可在加、减和乘法运算过程中保持精度。对于除法,最低有效数字会 被丢弃(不舍入)。

有三种声明:

➢ Decimal32(s),相当于 Decimal(9-s,s),有效位数为 1~9

➢ Decimal64(s),相当于 Decimal(18-s,s),有效位数为 1~18

➢ Decimal128(s),相当于 Decimal(38-s,s),有效位数为 1~38 s 标识小数位

使用场景: 一般金额字段、汇率、利率等字段为了保证小数点精度,都使用 Decimal 进行存储。

2.4 字符串

1)String

字符串可以任意长度的。它可以包含任意的字节集,包含空字节。

2)FixedString(N)

固定长度 N 的字符串,N 必须是严格的正自然数。当服务端读取长度小于 N 的字符 串时候,通过在字符串末尾添加空字节来达到 N 字节长度。 当服务端读取长度大于 N 的 字符串时候,将返回错误消息。 与 String 相比ÿ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ClickHouse是一个OLAP数据库,它在单表查询方面的速度优于关联查询,而且与其他OLAP数据库相比,这种差距更为明显。然而,ClickHouse也有一些限制,比如没有完整的事务支持,缺少高频率、低延迟的修改或删除已存在数据的能力,只能用于批量删除或修改数据。此外,ClickHouse的稀疏索引使得它不适合通过键检索单行的点查询。\[1\] 关于ClickHouse的文件存储位置,配置文件位于/etc/clickhouse-server/config.xml,启动文件位于/usr/bin,数据存储在/var/lib/clickhouse,日志存储在/var/log/clickhouse-server。\[2\] 如果你想下载ClickHouse,可以在http://repo.red-soft.biz/repos/clickhouse/stable/el7/找到下载地址。在单机模式下安装ClickHouse,你需要上传5个文件到/usr/local/clickhouse目录,并分别安装这5个rpm文件。然后,你可以启动ClickServer。\[3\] #### 引用[.reference_title] - *1* [ClickHouse实时分析(一)- ClickHouse入门](https://blog.csdn.net/weixin_44758876/article/details/123628863)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【用户画像】ClickHouse简介、特点、安装和部署](https://blog.csdn.net/weixin_43923463/article/details/127471546)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ClickHouse原理及使用](https://blog.csdn.net/weixin_32265569/article/details/111822811)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值