【大数据面试】ClickHouse:介绍、特点、数据类型、引擎、操作、副本、分片
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小的副本进行数据的读取
【大数据面试】ClickHouse:介绍、特点、数据类型、引擎、操作、副本、分片的更多相关文章
- 面试系列二:精选大数据面试真题JVM专项-附答案详细解析
公众号(五分钟学大数据)已推出大数据面试系列文章-五分钟小面试,此系列文章将会深入研究各大厂笔面试真题,并根据笔面试题扩展相关的知识点,助力大家都能够成功入职大厂! 大数据笔面试系列文章分为两种类型: ...
- 大数据系列2:Hdfs的读写操作
在前文大数据系列1:一文初识Hdfs中,我们对Hdfs有了简单的认识. 在本文中,我们将会简单的介绍一下Hdfs文件的读写流程,为后续追踪读写流程的源码做准备. Hdfs 架构 首先来个Hdfs的架构 ...
- 【大数据】Clickhouse基础知识
第1章 ClickHouse概述 1.1 什么是ClickHouse ClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),主要用于在线分析处理查询(OLAP),能 ...
- 微博大数据即席查询(OLAP)引擎实践
前言 适用于 即席查询 场景的开源查询引擎有很多,如:Elasticsearch.Druid.Presto.ClickHouse等:每种系统各有利弊,有的擅长检索,有的擅长统计:实践证明,All In ...
- 大数据开发 | MapReduce介绍
1. MapReduce 介绍 1.1MapReduce的作用 假设有一个计算文件中单词个数的需求,文件比较多也比较大,在单击运行的时候机器的内存受限,磁盘受限,运算能力受限,而一旦将单机版程序扩展 ...
- [java大数据面试] 2018年4月百度面试经过+三面算法题:给定一个数组,求和为定值的所有组合.
给定一个数组,求和为定值的所有组合, 这道算法题在leetcode应该算是中等偏下难度, 对三到五年工作经验主要做业务开发的同学来说, 一般较难的也就是这种程度了. 简述经过: 不算hr面,总计四面, ...
- Hadoop大数据面试--Hadoop篇
本篇大部分内容參考网上,当中性能部分參考:http://blog.cloudera.com/blog/2009/12/7-tips-for-improving-mapreduce-performanc ...
- 大数据面试(HR电话了解)
1什么是HA集群? 所谓HA,即高可用(7*24小时不中断服务) HA集群是hadoop高可用集群,即有两个namenode,一个active,一个stanby,active的name挂掉之后,sta ...
- 大数据技术之_11_HBase学习_02_HBase API 操作 + HBase 与 Hive 集成 + HBase 优化
第6章 HBase API 操作6.1 环境准备6.2 HBase API6.2.1 判断表是否存在6.2.2 抽取获取 Configuration.Connection.Admin 对象的方法以及关 ...
- 大数据入门到精通11-spark dataframe 基础操作
// dataframe is the topic 一.获得基础数据.先通过rdd的方式获得数据 val ny= sc.textFile("data/new_york/")val ...
随机推荐
- 2.2 virtualenv 虚拟环境
有的时候因为各种原因,在操作系统下,我们会安装很多版本的Python解释器.同样,我们也有可能因为各种原因,需要不同版本的模块,比如Django1.8,Django1.11.再加上pip工具管理器的版 ...
- 2.第一篇 k8s组件版本及功能简介
文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483772&idx=1&sn=a693d8a9 ...
- kubepi访问
ko最新版本会默认安装kubepi,端口没有对外暴露,点击dashboard打开的就是默认安装的kubepi 如果安装了最新版本的ko,之前单独运行的kubepi就可以stop了
- Docker 容器日志管理
Docker 日志分为两类: Docker 引擎日志(也就是 dockerd 运行时的日志), 容器的日志,容器内的服务产生的日志. 一 .Docker 引擎日志 Docker 引擎日志一般是交给了 ...
- 2_Docker
一. Docker介绍 1.1 引言 场景1: 我本地运行没问题啊 环境问题 场景2: 哪个哥们又写死循环了, 怎么这么卡 在多用户的操作系统下, 会相互影响 场景3: 淘宝在双11的时候, 用户量暴 ...
- 堆Pwn:House Of Storm利用手法
0x00:介绍 利用手法的背景: house of storm是一种结合了unsorted bin attack和Largebin attack的攻击技术,其基本原理和Largebin attack类 ...
- bfs与dfs基础
bfs像二叉树的层序遍历 像这个图走bfs就{1, 2, 3, 4, 5, 6, 7, 8}这样走: dfs就{1, 2, 5, 6, 3, 7, 8, 4}. bfs与queue相结合,走到哪就把哪 ...
- 自己动手写ls命令——Java版
自己动手写ls命令--Java版 介绍 在前面的文章Linux命令系列之ls--原来最简单的ls这么复杂当中,我们仔细的介绍了关于ls命令的使用和输出结果,在本篇文章当中我们用Java代码自己实现ls ...
- 基于docker安装phpmyadmin
今天用到了phpadmin,要从头装的话,比较麻烦,所以就选择使用docker 安装 准备 任意Linux系统且已成功安装docker环境 安装phpmyAdmin 1. 拉取镜像 docker pu ...
- 京东云开发者|京东云RDS数据迁移常见场景攻略
云时代已经来临,云上很多场景下都需要数据的迁移.备份和流转,各大云厂商也大都提供了自己的迁移工具.本文主要介绍京东云数据库为解决用户数据迁移的常见场景所提供的解决方案. 场景一:数据迁移上云 数据迁移 ...