一、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. 大数据各组件安装(数据中台搭建)

    文章目录 一.基础环境配置(三台机器都操作) 1.修改主机名: 2.关闭防火墙: 3.关闭Selinux: 4.文件描述符配置: 5.关闭 THP: 6.自定义 JDK 安装: 6.1 删除默认ope ...

  2. 大数据及Linux安装

    大数据及Linux安装 大数据背景 现在的社会发展相当迅速,科技发达,信息流通,使得人们之间的交流越来越密切,生活也越来越方便,在智能手机.智能穿戴设备基本普及的高科技时代的背景下,大数据应运而生. ...

  3. gblfy大数据技术之安装CentOS系列

    gblfy大数据技术之安装CentOS系列 1检查BIOS虚拟化支持(可以先执行第二步,如果不支持再回来设置) 2新建虚拟机 3新建虚拟机向导 4创建虚拟空白光盘 5安装Linux系统对应的CentO ...

  4. 大数据培训ClickHouse表引擎

    表引擎 表引擎(即表的类型)决定了: 1)数据的存储方式和位置,写到哪里以及从哪里读取数据 2)支持哪些查询以及如何支持. 3)并发数据访问. 4)索引的使用(如果存在). 5)是否可以执行多线程请求 ...

  5. ClickHouse安装部署流程(tgz版)

    这里写自定义目录标题 ClickHouse安装包地址 安装 部署 ClickHouse安装包地址 http://repo.yandex.ru/clickhouse/ 因为我们使用tgz包进行安装,所以 ...

  6. 大数据丨ClickHouse在京东能源管理平台的实践

    ClickHouse是一款面向大数据场景下的OLAP数据库,相比于传统的基于Hadoop生态圈的OLAP大数据分析系统,ClickHouse具有极致的查询性能.轻量级的架构设计及维护简单等优势.目前社 ...

  7. ruoyi 多模块部署_大数据时代,独立部署的商城系统具有哪些优势?

    独立部署是把一个可部署软件包安装到一个指定IT环境上并让其按预定流程提供服务的过程. 现如今,越来越多的商家开始搭建网上商城系统,从而为自己积攒多年的客户群体提供更为便捷的购物模式,让购物变得更加智能 ...

  8. 大数据Hadoop环境安装

    前言 工作场景的需要,最近开始学习起了大数据相关的东西.对于我这个初学者,大数据入门就是首先得学会Hadoop环境的安装,按照步骤如遇相关问题,请指正. Hadoop环境的安装,我是用自己电脑借助VM ...

  9. Hive大数据-Hive的安装与启动---大数据之Hive工作笔记0005

    然后我们再去看这个hive的安装,其实正确的学习路径应该是,首先去看 一下hadoop,因为大数据中,很多知识都是基于hadoop的,然后再去看hive,然后再去 看hbase,spark,flink ...

最新文章

  1. 作为项目经理,如何处理好与不同类型客户之间的关系?
  2. 蔚来招聘|多传感器联合标定算法工程师
  3. 关于oracle spfile配置文件问题
  4. golang中string不能为nil
  5. Linux学习系列之Nginx调优实战
  6. GCC笔记 命令行分析
  7. makefile之目标与依赖(1)
  8. 10.tesseract
  9. 【Kafka】KafkaConnection to 1002 was disconnected before the response was read
  10. FIREDAC(DELPHI10 or 10.1)提交数据给ORACLE数据库的一个不是BUG的BUG
  11. VS Code 下载安装并设置中文面板显示
  12. TensorFlow函数(四)tf.trainable_variable() 和 tf.all_variable()
  13. 追踪研读法破解EZ-USB的“远程唤醒”
  14. 抖音最火的微信推送教程
  15. 你和语言模型,谁的填空能力更强?
  16. Spark2.1.0之初体验
  17. 我的世界服务器vip账号和密码是多少,我的世界hypixel服务器会员有什么区别 hypixel服务器会员介绍...
  18. 工作记录 01-02-2018 至 03-16-2018
  19. c语言报错spawning 插1,Visual C++中error spawning cl.exe错误的两种解决方法.
  20. 刀片服务器虚拟交换机,web client6.0设置刀片服务器虚拟机网络

热门文章

  1. 开机提示:one of your disks needs to be checked解决方法
  2. SpringBoot整合MongoDB实现ResultFul风格接口
  3. pyttsx3设置男性声音
  4. java中求某个时间跳过节假日和周末
  5. Android studio实现番茄钟
  6. ListView实现倒计时功能
  7. 英语精选流行口语+疯狂英语100句
  8. 人民币美元兑换程序python简单_纯代码实现人民币兑换美元
  9. 【京东电商网站主界面仿写——HTML第二部分】
  10. turtle画微笑表情