ClickHouse学习系列之一【安装说明】
背景
最近花了些时间看了下ClickHouse文档,发现它在OLAP方面表现很优异,而且相对也比较轻量和简单,所以准备入门了解下该数据库系统。按照习惯第一步先安装,本文对其用户权限管理方面进行梳理说明。
说明
ClickHouse是一个快速的开源数据库管理系统,它是面向列的。工作速度比传统方法快100-1000倍,ClickHouse的性能超过了目前市场上可比的面向列的DBMS。 每秒钟每台服务器每秒处理数亿至十亿多行和数十千兆字节的数据。
先看ClickHouse官网怎么介绍它的一些特性:
- 快速:ClickHouse会充分利用所有可用的硬件,以尽可能快地处理每个查询。单个查询的峰值处理性能超过每秒2 TB(解压缩后,仅使用的列)。在分布式设置中,读取是在健康副本之间自动平衡的,以避免增加延迟。
- 容错:ClickHouse支持多主机异步复制,并且可以跨多个数据中心进行部署。所有节点都相等,这可以避免出现单点故障。单个节点或整个数据中心的停机时间不会影响系统的读写可用性。
- 可伸缩:ClickHouse可以在垂直和水平方向上很好地缩放。 ClickHouse易于调整以在具有数百或数千个节点的群集上或在单个服务器上,甚至在小型虚拟机上执行。当前,每个单节点安装的数据量超过数万亿行或数百兆兆字节。
- 易用:ClickHouse简单易用,开箱即用。它简化了所有数据处理:将所有结构化数据吸收到系统中,并且立即可用于构建报告。 SQL允许表达期望的结果,而无需涉及某些DBMS中可以找到的任何自定义非标准API。
充分利用硬件:ClickHouse与具有相同的可用I/O吞吐量和CPU容量的传统的面向行的系统相比,其处理典型的分析查询要快两到三个数量级。 列式存储格式允许在RAM中容纳更多热数据,从而缩短了响应时间。
- 提高CPU效率:向量化查询执行涉及相关的SIMD处理器指令和运行时代码生成。 处理列中的数据会提高CPU行缓存的命中率。
- 优化磁盘访问:ClickHouse可以最大程度地减少范围查询的次数,从而提高了使用旋转磁盘驱动器的效率,因为它可以保持连续存储数据。
- 最小化数据传输:ClickHouse使公司无需使用专门针对高性能计算的专用网络即可管理其数据。
功能丰富:
- 友好的SQL:ClickHouse具有用户友好的SQL查询,并具有许多内置分析功能。除了大多数DBMS中可以找到的常用功能外,ClickHouse还提供了许多特定的功能。
- 高效管理非规范化数据:ClickHouse的面向列性质允许每个表具有数百或数千列,而不会减慢SELECT查询的速度。通过利用广泛的数据组织选项,例如数组,元组和嵌套数据结构,可以打包更多数据。
- 连接分布式或共置数据:ClickHouse提供了用于联接表的各种选项。联接既可以是本地群集,也可以访问存储在外部系统中的数据。还有一个外部字典支持,它提供了另一种更简单的语法,用于从外部源访问数据。
- 近似查询处理:用户可以控制结果准确性和查询执行时间之间的权衡,这在处理多个TB或PB的数据时非常方便。 ClickHouse还提供了概率数据结构,可快速有效地计算基数和分位数
可靠:
- ClickHouse一直在管理PB级数据,这些数据为俄罗斯领先的搜索提供商,欧洲最大的IT公司之一Yandex的大量高负载大众受众服务提供服务。自2012年以来,ClickHouse一直为公司的网络分析服务,比较电子商务平台,公共电子邮件服务,在线广告平台,商业智能工具和基础架构监视提供强大的数据库管理。
- ClickHouse可以配置为位于独立节点上的纯分布式系统,而没有任何单点故障。
- 软件和硬件故障或配置错误不会导致数据丢失。 ClickHouse不会删除“损坏的”数据,而是将其保存或询问您在启动前该怎么做。每次对磁盘或网络进行读取或写入之前,所有数据均经过校验和。几乎不可能意外删除数据,因为即使存在人为错误,也有保护措施。
- ClickHouse提供了对查询复杂性和资源使用情况的灵活限制,可以通过设置对其进行微调。可以同时为多个高优先级低延迟请求和一些具有后台优先级的长时间运行的查询提供服务。
何时使用ClickHouse:
用于分析结构良好且不可变的事件或日志流,建议将每个此类流放入具有预连接维度的单个宽表中。
何时不使用ClickHouse:
不适合事务性工作负载(OLTP)、高价值的键值请求、Blob或文档存储。
外部介绍:
- Percona公司怎么看ClickHouse:
ClickHouse: New Open Source Columnar Database
Column Store Database Benchmarks
在Percona的基准测试中,得出的结论是:ClickHouse在此基准测试中绝对是赢家:与MariaDB ColumnStore和Apache Spark相比,它显示出更好的性能(> 10倍)和更好的压缩。 如果您正在寻找最佳性能和压缩率,则ClickHouse看起来非常不错。同时,ColumnStore提供了一个MySQL端点(MySQL协议和语法),因此如果您要从MySQL进行迁移,它是一个不错的选择。具体的测试可以看上面2篇文章。
安装
环境要求:
具体的环境要求可以见官方文档说明。
开始:
ClickHouse目前有二种方法进行安装:一个是通过系统包安装(Ubuntu:apt-get;Centos:yum install),另一个是通过编译安装。可以在Quick start进行查看:
Ubuntu:
sudo apt-get install dirmngr
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E0C56BD4 echo "deb http://repo.clickhouse.tech/deb/stable/ main/" | sudo tee /etc/apt/sources.list.d/clickhouse.list
sudo apt-get update sudo apt-get install -y clickhouse-server clickhouse-client sudo service clickhouse-server start
clickhouse-client Centos、RedHat
sudo yum install yum-utils
sudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG
sudo yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/stable/x86_64
sudo yum install clickhouse-server clickhouse-client
sudo /etc/init.d/clickhouse-server start
clickhouse-client 编译安装,注意安装前添加用户
export LATEST_VERSION=$(curl -s https://repo.clickhouse.tech/tgz/stable/ | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -V -r | head -n 1)
curl -O https://repo.clickhouse.tech/tgz/stable/clickhouse-common-static-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.tech/tgz/stable/clickhouse-common-static-dbg-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.tech/tgz/stable/clickhouse-server-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.tech/tgz/stable/clickhouse-client-$LATEST_VERSION.tgz tar -xzvf clickhouse-common-static-$LATEST_VERSION.tgz
sudo clickhouse-common-static-$LATEST_VERSION/install/doinst.sh tar -xzvf clickhouse-common-static-dbg-$LATEST_VERSION.tgz
sudo clickhouse-common-static-dbg-$LATEST_VERSION/install/doinst.sh tar -xzvf clickhouse-server-$LATEST_VERSION.tgz
sudo clickhouse-server-$LATEST_VERSION/install/doinst.sh
sudo /etc/init.d/clickhouse-server start tar -xzvf clickhouse-client-$LATEST_VERSION.tgz
sudo clickhouse-client-$LATEST_VERSION/install/doinst.sh
安装完成之后,各个目录的分配如下:
- 配置文件目录:/etc/clickhouse-server
- 数据文件目录:/var/lib/clickhouse
- 日志文件目录:/var/log/clickhouse-server
各个目录可以在配置文件(config.xml)里进行修改,后续文章会有关于配置文件的说明。个人比较推荐使用apt或则yum来安装,安装好了开始登陆使用吧!
登陆
有二种方式登入ClickHouse,一是通过命令行登陆,而是通过图形界面登陆。安装好后登陆的默认用户名是default。
①:命令行登陆,如:
clickhouse-client --user=zhoujy --password= --host=192.168.163.132
②:图形界面登陆,默认图形界面管理是不开启的,需要启动则需要打开参数:<http_server_default_response></http_server_default_response>,默认http端口为8123:


注意:上面的登陆用户是需要开启远程(任意IP)访问的,需要管理,非ReadOnly权限,否则登录失败,默认的default是不能登陆的(只能localhost登陆)。关于如何配置用户权限管理在下篇文章中介绍。
总结
ClickHouse学习系列之一【安装说明】的更多相关文章
- 全网最详细的Git学习系列之安装各个Git图形客户端(Windows、Linux、Mac系统皆适用ing)(图文详解)
不多说,直接上干货! 目前Git图形客户端 TortoiseGit .SourceTree .GitUp .SmartGit .QGit .GitX .Gitnub.Tower .Git-cola . ...
- RabbitMQ学习系列一安装RabbitMQ服务
RabbitMQ学习系列一:windows下安装RabbitMQ服务 http://www.80iter.com/blog/1437026462550244 Rabbit MQ 是建立在强大的Erla ...
- ClickHouse学习系列之三【配置文件说明】
背景 最近花了些时间看了下ClickHouse文档,发现它在OLAP方面表现很优异,而且相对也比较轻量和简单,所以准备入门了解下该数据库系统.在介绍了安装和用户权限管理之后,本文对其配置文件做下相关的 ...
- ClickHouse学习系列之五【系统库system说明】
背景 之前介绍过ClickHouse相关的系列文章,现在ClickHouse已经能正常使用起来了,包括副本和分片.因为ClickHouse已经可以提供服务了,现在需要关心的就是服务期间该数据库的各项性 ...
- ClickHouse学习系列之七【系统命令介绍】
背景 前面介绍了ClickHouse相关的系列文章,该系列文章包括了安装.权限管理.副本分片.配置说明等.这次介绍一些ClickHouse相关的系统命令,如重载配置文件.关闭服务和进程.停止和启动后 ...
- Oracle11g R2学习系列 之一安装篇
前言 最近想去前同事推荐的一个Oracle相关的岗位竞争一下,由于之前没有使用Oracle的相关经验,所以决定学习一下,就算最终岗位应聘不成,至少也有了一些Oracle经验了,说不定哪天就用上了.再说 ...
- ClickHouse学习系列之二【用户权限管理】
背景 最近花了些时间看了下ClickHouse文档,发现它在OLAP方面表现很优异,而且相对也比较轻量和简单,所以准备入门了解下该数据库系统.在安装完之后首先做的应该如何设置用户密码以及权限控制.因为 ...
- ClickHouse学习系列之四【副本&分片部署说明】
背景 以前介绍过ClickHouse相关的系列文章,现在继续说明.本文开始说明ClickHouse的副本与分片,和其他数据库一样,ClickHouse也会出现单节点故障和单节点资源到达上限的情况.所以 ...
- ClickHouse学习系列之六【访问权限和账户管理】
背景 在之前写的文章[用户权限管理]里已经介绍了应该如何设置用户密码以及权限控制.但是只是针对修改配置文件的方式来进行用户权限管理,其实ClickHouse也支持基于RBAC(Role-Based A ...
随机推荐
- 移动端flex布局
移动端flex布局 弹性盒布局语法分为两部分: 1. 添加在父容器上的语法 (1)display : flex; 设置为弹性盒(父元素添加) (2)flex-direction: 主轴排列方式 row ...
- 最近做的一个Spring Boot小项目,欢迎大家访问 http://39.97.115.152/
最近做的一个Spring Boot小项目,欢迎大家访问 http://39.97.115.152/,帮忙找找bug,网站里有源码地址 网站说明 甲壳虫社区(Beetle Community) 一个开源 ...
- 解决Request中参数中文乱码问题
1.使用配置过滤器的方式解决 在web.xml中增加过滤器: <!--配置解决中文乱码的过滤器--> <filter> <filter-name>character ...
- 一步一步理解AdaBoosting(Adaptive Boosting)算法
最近学习<西瓜书>的集成学习之Boosting算法,看了一个很好的例子(https://zhuanlan.zhihu.com/p/27126737),为了方便以后理解,现在更详细描述一下步 ...
- 压力测试(三)-自定义变量和CSV可变参数实操
1.Jmeter用户自定义变量实战 简介:什么是用户自定义变量,怎样使用 为什么使用:很多变量在全局中都有使用,或者测试数据更改,可以在一处定义,四处使用 比如服务器地址 1.线程组->add ...
- 记一次苹果APP从账号续费到发布成功的历程
一.一波三折的续费 最近公司开发的苹果APP的SSL证书到期了,计划重新发布一下该APP,已替换即将到期的SSL证书.近几年随着钉钉.企业微信等在线办公软件超级平台的出现,各企业都会选择其中 ...
- Python 获取MySql某个表所有字段名
在使用python导出数据库中数据的时候,往往除了插入的数据以外,还有表字段等信息需要导出,查阅了资料后发现了2种方法 第一种:在mysql自带的表里查询,这个表保存了每张表的字段信息,可以用pymy ...
- django 从零开始 3认识url解析
在视图函数中定义一个函数abc 接受得到的参数 并显示在页面上 urls中设置 在页面会显示出错误 找不到该url ,原因是django1版本中使用的是url和re_path ,突然django2变 ...
- scrapycrawl 爬取笔趣阁小说
前言 第一次发到博客上..不太会排版见谅 最近在看一些爬虫教学的视频,有感而发,大学的时候看盗版小说网站觉得很能赚钱,心想自己也要搞个,正好想爬点小说能不能试试做个网站(网站搭建啥的都不会...) 站 ...
- python学习基础知识
学习python前最好知道的知识点: python之父:Guido van Rossum python是一种面向对象语言 目前python最新的版本是3.8,python2已经逐渐淘汰 python的 ...