1、介绍

开源的列式存储数据库(DBMS),由C++编写,用于在线分析处理查询(OLAP)

可以通过SQL查询实时生成分析数据报告

解释:

DBMS:数据库管理系统

常见的列式存储数据库:Hbase、ClickHouse、Druid

OLAP:On-Line Analytical Processing,联机分析处理,做数据统计和分析的平台

OLTP:On-Line Transaction Processing,联机事务处理,业务数据处理的平台

2、特点

列式存储适用于聚合统计操作、便于压缩和缓存

兼容SQL语法和DBMS的功能

可以根据需求选择多种引擎

顺序写+压缩,保证了高吞吐写入能力

划多个分区及索引粒度,可以实现并行处理,可以充分利用CPU,但不适用于多条查询

3、常见的数据类型

整形:(U)Int8-64

浮点型:Float32-64,存在误差,适用于精度要求不高场景

×布尔型:无专门类型,常用UInt8表示,取值0/1

Decimal类型(可保持精度的有符号浮点类型):Decimal32(s)-128

字符串类型:任意长/定长字符串FixString(N)

枚举类型:Enum8/16,例如x Enum8('hello' = 1, 'world' = 2),插入是VALUES(‘hello’),(‘world’),或转换整形查询CAST(x,’Int8’)

时间类型:Date、Datetime、Datetime64

数组类型:array(1, 2) AS x或[1, 2] AS x

4、常见的表引擎

表引擎介绍:显式声明、决定存储方式和位置、并发索引多线程

TinyLog:保存到磁盘,无索引和并发控制,仅用于测试少量数据

Memory:存至内存,无索引,查询性能高,小数据量

MergeTree-合并树:可设置分区(不同文件、写入合并)、主键(非唯一约束,默认间隔8192)和排序字段(前缀字段必须为主键)、可设置表级别和列级别TTL生命周期

ReplacingMergeTree:去重合并树,避免了无唯一约束,重复数据保留版本字段大(参数, 常为时间)

SummingMergeTree:适用于根据维度进行汇总聚合,参数传递汇总列

5、常见操作

(1)插入

(2)更新/删除:
重操作,会改变分区(建议做批量变更)

语法:alter table t_order_smt delete/update

执行:先为新数据新建分区,把旧分区打失效标记,通过分区合并的触发,删除旧数据
(3)查询

支持子查询、CTE(Common Table Expression 公用表表达式/临时结果集,例如with a as xxx)、join、group by的各种小计操作:

with rollup:自右至左去掉维度小计

with cube:先自右至左,再自左至右进行小计

with totals: 计算合计

(4)修改字段操作

增删改字段

alter table tableName add / modify / drop column

(5)数据导出操作

clickhouse-client --query "select * from t_order_mt where create_time='2020-06-01 12:00:00'" --format CSVWithNames > /opt/module/data/rs1.csv1

6、副本-高可用性

写入流程:写入数据后将写入日志提交到zk,副本收到zk的写入日志后从主节点下载新数据

配置步骤:同步xml配置文件,分别建表,引擎采用ReplicatedMergeTree

参数传递:engine =ReplicatedMergeTree('/clickhouse0225/table/01/t_order_rep','rep_102')

7、分片集群

(1)解决问题:横向扩容、水平切分

(2)操作:不同分片在不同节点,使用Distributed 表引擎实现数据拼接

(3)读取流程:选择error count小的副本进行数据的读取

最新文章

  1. Pythonn 内置函数
  2. centos6 pyotp bug修复
  3. python 代码片段22
  4. Python 常用函数time.strftime()简介
  5. CUBRID学习笔记 12防火墙设置 linux
  6. 创建SQL数据库指定文件路径
  7. web安全:xss && csrf
  8. 解决jquery和其他库的冲突
  9. MySQL学习笔记(六):索引
  10. 43.Linux调试测试输入思路
  11. java 8 Lambda表达式(翻译自Stackoverflow)
  12. JavaScript的Document ,Histroy,Location对象
  13. idea使用的小技巧总结
  14. Java学习笔记(二十四):单例设计模式singleton
  15. iterable与iterator
  16. mysql 权限管理 目录
  17. levenshtein函数
  18. 2.3 Oracle之DDL 语句(约束、伪列、视图、序列、同义词) 精简版
  19. What Does “Neurons that Fire Together Wire Together” Mean?
  20. 安装完SqlServer2008,wamp服务器无法启动的问题

热门文章

  1. CI/CD集成
  2. Elastic:应用程序性能监控/管理(APM)实践
  3. 史上最全的selenium三大等待介绍
  4. scss的使用方法
  5. 几个Caller-特性的妙用
  6. 基于docker安装phpmyadmin
  7. AVX图像算法优化系列二: 使用AVX2指令集加速查表算法。
  8. Springboot 之 Filter 实现超大响应 JSON 数据压缩
  9. 2.ElasticSearch系列之集群权限认证
  10. spring boot+vue前后端项目的分离(我的第一个前后端分离项目)