大数据之clickhouse安装部署
一、clickhouse简介
ClickHouse是俄罗斯的Yandex于2016年开源的一个用于联机分析(OLAP:Online Analytical Processing)的列式数据库管理系统(DBMS:Database Management System) , 主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。 ClickHouse的全称是Click Stream,Data WareHouse,简称ClickHouse
ClickHouse是一个完全的列式分布式数据库管理系统,允许在运行时创建表和数据库,加载数据和运行查询,而无需重新配置和重新启动服务器,支持线性扩展,简单方便,高可靠性,容错。它在大数据领域没有走 Hadoop 生态,而是采用 Local attached storage 作为存储,这样整个 IO 可能就没有 Hadoop 那一套的局限。它的系统在生产环境中可以应用到比较大的规模,因为它的线性扩展能力和可靠性保障能够原生支持 shard + replication 这种解决方案。它还提供了一些 SQL 直接接口,有比较丰富的原生 client。
优点:
灵活的MPP架构,支持线性扩展,简单方便,高可靠性
多服务器分布式处理数据 ,完备的DBMS系统
底层数据列式存储,支持压缩,优化数据存储,优化索引数据 优化底层存储
容错跑分快:比Vertica快5倍,比Hive快279倍,比MySQL快800倍,可处理数据级别已达到10亿级别
功能多:支持数据统计分析各种场景,支持类SQL查询,异地复制部署
海量数据存储,分布式运算,快速闪电的性能,几乎实时的数据分析 ,友好的SQL语法,出色的函数支持
缺点:
不支持事务,不支持真正的删除/更新
不支持高并发,官方建议qps为100,可通过修改配置文件增加连接数,但是在服务器足够好的情况下
不支持二级索引
不擅长多表join
元数据管理需要人为干预
尽量做1000条以上批量的写入,避免逐行insert或小批量的insert,update,delete操作
依赖zookeeper
应用场景:
1.绝大多数请求都是用于读访问的, 要求实时返回结果
2.数据需要以大批次(大于1000行)进行更新,而不是单行更新;或者根本没有更新操作
3.数据只是添加到数据库,没有必要修改
4.读取数据时,会从数据库中提取出大量的行,但只用到一小部分列
5.表很“宽”,即表中包含大量的列
6.查询频率相对较低(通常每台服务器每秒查询数百次或更少)
7.对于简单查询,允许大约50毫秒的延迟
8.列的值是比较小的数值和短字符串(例如,每个URL只有60个字节)
9.在处理单个查询时需要高吞吐量(每台服务器每秒高达数十亿行)
10.不需要事务
11.数据一致性要求较低 [原子性 持久性 一致性 隔离性]
12.每次查询中只会查询一个大表。除了一个大表,其余都是小表
13.查询结果显著小于数据源。即数据有过滤或聚合。返回结果不超过单个服务器内存大小
不适用场景:
不支持事务(对并发的读写不支持,批量插入是支持事务的)
不擅长根据主键按行粒度进行查询,不应该把ClickHouse当作Key-Value数据库使用
不擅长按行删除数据(支持但不擅长,一般批量删除)
二、基本概念
分片:ClickHouse的集群由分片 ( Shard ) 组成,而每个分片又通过副本 ( Replica ) 组成。ClickHouse的1个节点只能拥有1个分片。
分区 :ClickHouse支持PARTITION BY子句,在建表时可以指定按照任意合法表达式进行数据分区操作,比如通过toYYYYMM()将数据按月进行分区、toMonday()将数据按照周几进行分区。
副本:数据存储副本,在集群模式下实现高可用。
引擎:不同的引擎决定了表数据的存储特点和表数的操作行为:。
在clickhouse中数据库也有自己的引擎, 数据库目前支持的数据库引擎有5种:
·Ordinary:默认引擎,在绝大多数情况下我们都会使用默认引擎,使用时无须刻意声明。在此数据库下可以使用任意类型的表引擎
·Dictionary:字典引擎,此类数据库会自动为所有数据字典创建它们的数据表。
·Memory:内存引擎,用于存放临时数据。此类数据库下的数据表只会停留在内存中,不会涉及任何磁盘操作,当服务重启后数据会被清除。
·Lazy:日志引擎,此类数据库下只能使用Log系列的表引擎。
·MySQL:MySQL引擎,此类数据库下会自动拉取远端MySQL中的数据,并为它们创建MySQL表引擎的数据表。
三、clickhouse安装部署
单节点部署:
1)安装curl工具
yum install -y curl
2)添加clickhouse的yum镜像
curl -s https://packagecloud.io/install/repositories/altinity/clickhouse/script.rpm.sh | sudo bash
3)检查镜像情况
[root@doit04 yum.repos.d]# yum list | grep clickhouse
clickhouse-client.x86_64 20.5.4.40-1.el7 @Altinity_clickhouse
clickhouse-common-static.x86_64 20.5.4.40-1.el7 @Altinity_clickhouse
4)安装clickhouse的服务端和客户端
yum install -y clickhouse-server
yum -y install clickhouse-client
5)启动服务daunt
service clickhouse-server start
6)启动交互式客户端
clickhouse-client
分布式部署:
见 大数据之clickhouse常用函数
四、参数设置
1、允许其他机器访问
vi config.xml
<listen_host>::</listen_host>
service clickhouse-server restart --重启服务
2、目录结构
(1)/etc/clickhouse-server:服务端的配置文件目录,包括全局配置config.xml
和用户配置users.xml等。
(2)/var/lib/clickhouse:默认的数据存储目录(通常会修改默认路径配置,将数据保存到大容量磁盘挂载的路径)。
(3)/var/log/clickhouse-server:默认保存日志的目录(通常会修改路径配置,将日志保存到大容量磁盘挂载的路径)。
五、clickhouse基本入门
1、建表语句,一定要指定引擎
create table tb_test(id Int8 ,name String
) engine=Memory;
2、数据类型
数值类型
数值类型分为整数、浮点数和定点数三类:
1、整数
2、浮点数
3、定点数
字符串类型
字符串类型可以细分为String、FixedString(固定长度)和UUID三类。
时间类型
时间类型分为Date、DateTime(精确到秒)和DateTime64(精确到亚秒)三类。
复杂类型
复杂类型分为Array、Enum、Tuple和Nested四类
1、Array数组类型
create table test_array(name String ,hobby Array(String)
) engine=Log;insert into test_array values('于谦',['抽烟','喝酒','烫头']);
insert into test_array values('班长',['抽烟','于谦']);
2、Enum枚举类型
create table test_enum(id UInt8 ,color Enum('RED'=1,'GREEN'=2 ,'BLUE'=3)
)engine=Memory ;insert into test_enum values(1,'RED'),(3,'BLUE') ;
insert into test_enum values(4,'PINK'); -- 没有声明的值是不能插入
3、Tuple元祖类型
create table test_tuple(name String ,info Tuple(String,String,UInt8)
)engine=Memory ;insert into test_tuple values('zss',('M','coder',23)),('lss',tuple('F','coder',33));
4、Nested嵌套类型
create table test_nested(uid Int8 ,name String ,hobby Nested(id Int8 ,hname1 String ,hname2 String
)
)engine=Memory ;insert into test_nested values (1,'zss',[1,2,3],['吃','喝','睡'],['eat','drink','sleep']);
insert into test_nested values (2,'lss',[1,2],['吃','喝'],['eat','drink']);
特殊类型
特殊类型包括Domain 、IPv6、IPv4(存储ip地址)和Nulltable 类型
1、IPv4类型
create table tb_ip2(id Int8 ,ip IPv4
)engine=Memory ;insert into tb_ip2 values(1,'192.167.34.2') ;
2、Nulltable 类型
create table tb_nulltable (id Int8 ,age Nulltable(Int8)
)engine=Memory ;
参考:https://www.kancloud.cn/kanbaobao/clickhouse/2374152
大数据之clickhouse安装部署相关推荐
- 大数据各组件安装(数据中台搭建)
文章目录 一.基础环境配置(三台机器都操作) 1.修改主机名: 2.关闭防火墙: 3.关闭Selinux: 4.文件描述符配置: 5.关闭 THP: 6.自定义 JDK 安装: 6.1 删除默认ope ...
- 大数据及Linux安装
大数据及Linux安装 大数据背景 现在的社会发展相当迅速,科技发达,信息流通,使得人们之间的交流越来越密切,生活也越来越方便,在智能手机.智能穿戴设备基本普及的高科技时代的背景下,大数据应运而生. ...
- gblfy大数据技术之安装CentOS系列
gblfy大数据技术之安装CentOS系列 1检查BIOS虚拟化支持(可以先执行第二步,如果不支持再回来设置) 2新建虚拟机 3新建虚拟机向导 4创建虚拟空白光盘 5安装Linux系统对应的CentO ...
- 大数据培训ClickHouse表引擎
表引擎 表引擎(即表的类型)决定了: 1)数据的存储方式和位置,写到哪里以及从哪里读取数据 2)支持哪些查询以及如何支持. 3)并发数据访问. 4)索引的使用(如果存在). 5)是否可以执行多线程请求 ...
- ClickHouse安装部署流程(tgz版)
这里写自定义目录标题 ClickHouse安装包地址 安装 部署 ClickHouse安装包地址 http://repo.yandex.ru/clickhouse/ 因为我们使用tgz包进行安装,所以 ...
- 大数据丨ClickHouse在京东能源管理平台的实践
ClickHouse是一款面向大数据场景下的OLAP数据库,相比于传统的基于Hadoop生态圈的OLAP大数据分析系统,ClickHouse具有极致的查询性能.轻量级的架构设计及维护简单等优势.目前社 ...
- ruoyi 多模块部署_大数据时代,独立部署的商城系统具有哪些优势?
独立部署是把一个可部署软件包安装到一个指定IT环境上并让其按预定流程提供服务的过程. 现如今,越来越多的商家开始搭建网上商城系统,从而为自己积攒多年的客户群体提供更为便捷的购物模式,让购物变得更加智能 ...
- 大数据Hadoop环境安装
前言 工作场景的需要,最近开始学习起了大数据相关的东西.对于我这个初学者,大数据入门就是首先得学会Hadoop环境的安装,按照步骤如遇相关问题,请指正. Hadoop环境的安装,我是用自己电脑借助VM ...
- Hive大数据-Hive的安装与启动---大数据之Hive工作笔记0005
然后我们再去看这个hive的安装,其实正确的学习路径应该是,首先去看 一下hadoop,因为大数据中,很多知识都是基于hadoop的,然后再去看hive,然后再去 看hbase,spark,flink ...
最新文章
- 作为项目经理,如何处理好与不同类型客户之间的关系?
- 蔚来招聘|多传感器联合标定算法工程师
- 关于oracle spfile配置文件问题
- golang中string不能为nil
- Linux学习系列之Nginx调优实战
- GCC笔记 命令行分析
- makefile之目标与依赖(1)
- 10.tesseract
- 【Kafka】KafkaConnection to 1002 was disconnected before the response was read
- FIREDAC(DELPHI10 or 10.1)提交数据给ORACLE数据库的一个不是BUG的BUG
- VS Code 下载安装并设置中文面板显示
- TensorFlow函数(四)tf.trainable_variable() 和 tf.all_variable()
- 追踪研读法破解EZ-USB的“远程唤醒”
- 抖音最火的微信推送教程
- 你和语言模型,谁的填空能力更强?
- Spark2.1.0之初体验
- 我的世界服务器vip账号和密码是多少,我的世界hypixel服务器会员有什么区别 hypixel服务器会员介绍...
- 工作记录 01-02-2018 至 03-16-2018
- c语言报错spawning 插1,Visual C++中error spawning cl.exe错误的两种解决方法.
- 刀片服务器虚拟交换机,web client6.0设置刀片服务器虚拟机网络