概述
ClickHouse入门学习01
简介
2016年俄罗斯Yandex(类似本土的百度)公司,开源的一款olap数据库,它的前身是公司内部的一款在线流量分析产品Yandex.Metrica。
ClickHouse特点
-
列存储和数据压缩:典型的olap数据库特性
列存储方式与行存储方式不同,我们熟悉的MySql数据库使用的是行存储方式,而ClickHouse使用的是列存储。以下user信息表为例:
id | name | age |
---|---|---|
1 | zhangsan | 18 |
2 | lisi | 19 |
3 | wangwu | 20 |
行存储在服务端的数据存放为
1 | zhangsan | 18 | 2 | lisi | 19 | 3 | wangwu | 20 |
---|
当我们查询某个人的所有属性时,可以通过一次磁盘查找加顺序读取就可以。但当我们想要查询所有人的年龄时需要全表扫描并取出相应字段。
列存储在服务端的数据存放为
1 | 2 | 3 | zhangsan | lisi | wangwu | 18 | 19 | 20 |
---|
当我们想要查询所有人的年龄时只需要查询年龄这一个字段就行。因为年龄在磁盘上的存储是连续的。
总的来说,当我们想要查询某个用户的所有信息,行存储方式更为高效,当我们想要表中某个字段的所有信息,并计算一些结果,列存储方式更为高效。
olap和oltp又是什么
oltp(联机事务处理)
操作型处理,叫联机事务处理OLTP(On-Line TransactionProcessing),也可以称面向交易的处理系统,它是针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改。用户较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。传统的数据库系统作为数据管理的主要手段,主要用于操作型处理。
olap(联机分析处理)
分析型处理,叫联机分析处理OLAP(On-Line Analytical Processing)一般针对某些主题的历史数据进行分析,支持管理决策。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-meI8HwdQ-1657014432860)(C:Users24879Desktop笔记图片eb9197f46551f50d36837923c9039f59.jpg)]
ClickHouse中的数据类型
1、基础类型
基础类型只有数值、字符串和时间三种类型。
1.1、数值类型
数值类型分为整数、浮点数和定点数三类
- Int
clickhouse中使用Int8、Int16、Int32和Int64指代4种大小的Int类型,其末尾的数字正好表明了占用字节的大小8位=1字节。
- Float
clickhouse直接使用Float32和Float64代表单精度浮点数以及双精度浮点数
Float32从小数点后第8位起产生数据溢出
Float64从小数点后第17位起产生数据溢出
- 布尔类型
ClickHouse无指定的如true和false布尔型,可以使用 UInt8 取值 0 或 1 表示
- Decimal类型
- 简写方式:Decimal32(S)/Decimal64(S)/Decimal128(S)
- 原生方式:Decimal(P, S)
其中P代表精度,表示总位数(整数部分+小数部分),取值范围:1 ~ 38
S表示小数位数,取值范围:0 ~ P
-
字符串
String 区分MySQL的 varchar() 类型
FixedString(N) 固定字符长度 N
-
枚举类型
Enum8 对应 Int8 即 ‘String’ = Int8
Enum16 对应 Int16 即 ‘String’ = Int16
-
时间型
Date 表示 年-月-日
DateTime 表示 年-月-日 时:分:秒
DateTime64 表示 年-月-日 时:分:秒:亚秒
-
数组型
Array(T) T可以是任意类型,也可以是数组型
Array(T) 也可以直接表示为 [ T ]
DateTime64 表示 年-月-日 时:分:秒:亚秒
- 数组型
Array(T) T可以是任意类型,也可以是数组型
Array(T) 也可以直接表示为 [ T ]
注意Nullable类型建议使用无意义的业务数据代替如 -1.
最后
以上就是包容豌豆为你收集整理的ClickHouse入门学习01ClickHouse入门学习01的全部内容,希望文章能够帮你解决ClickHouse入门学习01ClickHouse入门学习01所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复