背景

最近花了些时间看了下ClickHouse文档,发现它在OLAP方面表现很优异,而且相对也比较轻量和简单,所以准备入门了解下该数据库系统。按照习惯第一步先安装,本文对其用户权限管理方面进行梳理说明。

说明

ClickHouse是一个快速的开源数据库管理系统,它是面向列的。工作速度比传统方法快100-1000倍,ClickHouse的性能超过了目前市场上可比的面向列的DBMS。 每秒钟每台服务器每秒处理数亿至十亿多行和数十千兆字节的数据。

  先看ClickHouse官网怎么介绍它的一些特性:

  1. 快速:ClickHouse会充分利用所有可用的硬件,以尽可能快地处理每个查询。单个查询的峰值处理性能超过每秒2 TB(解压缩后,仅使用的列)。在分布式设置中,读取是在健康副本之间自动平衡的,以避免增加延迟。
  2. 容错:ClickHouse支持多主机异步复制,并且可以跨多个数据中心进行部署。所有节点都相等,这可以避免出现单点故障。单个节点或整个数据中心的停机时间不会影响系统的读写可用性。
  3. 可伸缩:ClickHouse可以在垂直和水平方向上很好地缩放。 ClickHouse易于调整以在具有数百或数千个节点的群集上或在单个服务器上,甚至在小型虚拟机上执行。当前,每个单节点安装的数据量超过数万亿行或数百兆兆字节。
  4. 易用:ClickHouse简单易用,开箱即用。它简化了所有数据处理:将所有结构化数据吸收到系统中,并且立即可用于构建报告。 SQL允许表达期望的结果,而无需涉及某些DBMS中可以找到的任何自定义非标准API。

充分利用硬件:ClickHouse与具有相同的可用I/O吞吐量和CPU容量的传统的面向行的系统相比,其处理典型的分析查询要快两到三个数量级。 列式存储格式允许在RAM中容纳更多热数据,从而缩短了响应时间。

  1. 提高CPU效率:向量化查询执行涉及相关的SIMD处理器指令和运行时代码生成。 处理列中的数据会提高CPU行缓存的命中率。
  2. 优化磁盘访问:ClickHouse可以最大程度地减少范围查询的次数,从而提高了使用旋转磁盘驱动器的效率,因为它可以保持连续存储数据。
  3. 最小化数据传输:ClickHouse使公司无需使用专门针对高性能计算的专用网络即可管理其数据。

功能丰富:

  1. 友好的SQL:ClickHouse具有用户友好的SQL查询,并具有许多内置分析功能。除了大多数DBMS中可以找到的常用功能外,ClickHouse还提供了许多特定的功能。
  2. 高效管理非规范化数据:ClickHouse的面向列性质允许每个表具有数百或数千列,而不会减慢SELECT查询的速度。通过利用广泛的数据组织选项,例如数组,元组和嵌套数据结构,可以打包更多数据。
  3. 连接分布式或共置数据:ClickHouse提供了用于联接表的各种选项。联接既可以是本地群集,也可以访问存储在外部系统中的数据。还有一个外部字典支持,它提供了另一种更简单的语法,用于从外部源访问数据。
  4. 近似查询处理:用户可以控制结果准确性和查询执行时间之间的权衡,这在处理多个TB或PB的数据时非常方便。 ClickHouse还提供了概率数据结构,可快速有效地计算基数和分位数

可靠

  1. ClickHouse一直在管理PB级数据,这些数据为俄罗斯领先的搜索提供商,欧洲最大的IT公司之一Yandex的大量高负载大众受众服务提供服务。自2012年以来,ClickHouse一直为公司的网络分析服务,比较电子商务平台,公共电子邮件服务,在线广告平台,商业智能工具和基础架构监视提供强大的数据库管理。
  2. ClickHouse可以配置为位于独立节点上的纯分布式系统,而没有任何单点故障。
  3. 软件和硬件故障或配置错误不会导致数据丢失。 ClickHouse不会删除“损坏的”数据,而是将其保存或询问您在启动前该怎么做。每次对磁盘或网络进行读取或写入之前,所有数据均经过校验和。几乎不可能意外删除数据,因为即使存在人为错误,也有保护措施。
  4. ClickHouse提供了对查询复杂性和资源使用情况的灵活限制,可以通过设置对其进行微调。可以同时为多个高优先级低延迟请求和一些具有后台优先级的长时间运行的查询提供服务。

何时使用ClickHouse:

  用于分析结构良好且不可变的事件或日志流,建议将每个此类流放入具有预连接维度的单个宽表中。

何时不使用ClickHouse:

  不适合事务性工作负载(OLTP)、高价值的键值请求、Blob或文档存储。

外部介绍:

  在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作为一个高性能OLAP数据库,虽然OLAP能力逆天但也不应该把它用于任何OLTP事务性操作的场景,相比OLTP:不支持事务、不擅长根据主键按行粒度的查询、不擅长按行删除数据,目前市场上的其他同类高性能OLAP数据库同样也不擅长这些方面。因为对于一款OLAP数据库而言,OLTP能力并不是重点。
 

ClickHouse学习系列之一【安装说明】的更多相关文章

  1. 全网最详细的Git学习系列之安装各个Git图形客户端(Windows、Linux、Mac系统皆适用ing)(图文详解)

    不多说,直接上干货! 目前Git图形客户端 TortoiseGit .SourceTree .GitUp .SmartGit .QGit .GitX .Gitnub.Tower .Git-cola . ...

  2. RabbitMQ学习系列一安装RabbitMQ服务

    RabbitMQ学习系列一:windows下安装RabbitMQ服务 http://www.80iter.com/blog/1437026462550244 Rabbit MQ 是建立在强大的Erla ...

  3. ClickHouse学习系列之三【配置文件说明】

    背景 最近花了些时间看了下ClickHouse文档,发现它在OLAP方面表现很优异,而且相对也比较轻量和简单,所以准备入门了解下该数据库系统.在介绍了安装和用户权限管理之后,本文对其配置文件做下相关的 ...

  4. ClickHouse学习系列之五【系统库system说明】

    背景 之前介绍过ClickHouse相关的系列文章,现在ClickHouse已经能正常使用起来了,包括副本和分片.因为ClickHouse已经可以提供服务了,现在需要关心的就是服务期间该数据库的各项性 ...

  5. ClickHouse学习系列之七【系统命令介绍】

    背景  前面介绍了ClickHouse相关的系列文章,该系列文章包括了安装.权限管理.副本分片.配置说明等.这次介绍一些ClickHouse相关的系统命令,如重载配置文件.关闭服务和进程.停止和启动后 ...

  6. Oracle11g R2学习系列 之一安装篇

    前言 最近想去前同事推荐的一个Oracle相关的岗位竞争一下,由于之前没有使用Oracle的相关经验,所以决定学习一下,就算最终岗位应聘不成,至少也有了一些Oracle经验了,说不定哪天就用上了.再说 ...

  7. ClickHouse学习系列之二【用户权限管理】

    背景 最近花了些时间看了下ClickHouse文档,发现它在OLAP方面表现很优异,而且相对也比较轻量和简单,所以准备入门了解下该数据库系统.在安装完之后首先做的应该如何设置用户密码以及权限控制.因为 ...

  8. ClickHouse学习系列之四【副本&分片部署说明】

    背景 以前介绍过ClickHouse相关的系列文章,现在继续说明.本文开始说明ClickHouse的副本与分片,和其他数据库一样,ClickHouse也会出现单节点故障和单节点资源到达上限的情况.所以 ...

  9. ClickHouse学习系列之六【访问权限和账户管理】

    背景 在之前写的文章[用户权限管理]里已经介绍了应该如何设置用户密码以及权限控制.但是只是针对修改配置文件的方式来进行用户权限管理,其实ClickHouse也支持基于RBAC(Role-Based A ...

随机推荐

  1. js数据类型大全

    声明变量的命名规范(标识符) 1.不能以数字开头,只能以字母或者¥或者_开头 2.js变量名称区分大小写 3.变量名不能含有关键字(this.if.for.while) 4.驼峰命名法 console ...

  2. sklearn简单实现机器学习算法记录

    sklearn简单实现机器学习算法记录 需要引入最重要的库:Scikit-learn 一.KNN算法 from sklearn import datasets from sklearn.model_s ...

  3. 做直播能有多赚钱,Python告诉你

    前面我们介绍了APP爬虫环境的搭建和mitmproxy工具的简单使用,这次我们要来一个简单的APP爬虫,尝试一下APP爬虫的简单实用,顺便让我们看看喜马拉雅上的主播到底有多赚钱. APP爬虫一般分为两 ...

  4. Docker深入浅出系列 | Docker Compose多容器实战

    目录 前期准备 Docker Compose是什么 为什么要用Docker Compose Docker Compose使用场景 Docker Compose安装 Compose Yaml文件结构 C ...

  5. python下载神通板砖有声版

    背景 前端时间在喜马拉雅上偶然听到牛大宝说的有声小说神通板砖,说的很是幽默,听的正起劲的时候开始收费了,于是我就在网上找了下看看有没有免费版,一搜果然有,但该网站上广告太多了,于是我就写了个小脚本可以 ...

  6. d3.js ---画坐标轴

    画坐标轴 //使用d3的svg的axis()方法生成坐标轴 var x_axis = d3.svg.axis().scale(scale_x), y_axis = d3.svg.axis().scal ...

  7. 在Shadow DOM使用原生模板

    原生模板的优势 延迟了资源加载 延迟了加载和处理模板所引用的资源的时机,这样,用户就能够在模板中使用任意多的资源,却不阻碍页面的渲染. 延迟了渲染内容 无论模板在什么位置,浏览器不会把模板中的内容直接 ...

  8. Typora[MarkDown编辑器]+(PicGo+Github+JsDelivr)[个人图床] ,开启你的高效创作

    使用Typora搭配Picgo开启你的高效创作 0x00 一切都要从MarkDown说起 富文本语言的弊端 平常我们最常用的写作工具,无非是富文本编辑器中的代表--微软家的Office Word.这种 ...

  9. 微信小程序用setData修改数组或对象中的一个属性值,超好用,最简单的实现方法,不容错过!大神们 都 在 看 的方法!!!

    在page中 data: { info: [{ name: "yuki", tou: "../img/head.jpg", zGong: 130, gMoney ...

  10. c++第二周阶段小测2

    函数参数已完成(全部是正确答案)     1 [单选题] 以下关于函数参数的说法,不正确的是   A. 函数调用时,先将实参的值按照位置传递给对应的形参. B. 实参与形参的个数及顺序不必一一对应. ...