前言:

久闻 ClickHouse 大名,一直没有去详细了解。近期看了下 ClickHouse 相关文档,决定安装体验下。想了解 ClickHouse 的小伙伴可以一起跟着学习哦。本篇文章主要介绍 ClickHouse 安装方法及基础知识。

1. ClickHouse 简介

ClickHouse 是一个用于联机分析 (OLAP) 的列式数据库管理系统 (DBMS). 由俄罗斯搜索引擎巨头 Yandex 开源. 主要用于数据分析领域, 目前国内社区火热, 各个大厂纷纷跟进大规模用于 OLAP 领域。

一起来看下 ClickHouse 官网怎么介绍它的一些特性:

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

2. ClickHouse 安装教程

ClickHouse 可以在任何具有 x86_64 ,AArch64 或 PowerPC64LE CPU 架构的 Linux ,FreeBSD 或 Mac OS X 上运行。貌似不能在 Windows 系统下安装,不过 ClickHouse 同样支持 Docker 部署,Windows 系统可以在 Docker 下安装 ClickHouse 。

根据官方文档推荐:Debian 或 Ubuntu 系统可以使用官方预编译的 deb 软件包来安装,CentOS 、RedHat 等Linux发行版可以使用官方预编译的 rpm 包 来安装,如果您的操作系统不支持安装 deb 或 rpm 包,也可以使用 tgz 软件包或直接源码编译安装。下面我们以 CentOS 系统为例,以 rpm 方式来安装下 ClickHouse。

# 查看系统版本
[root@localhost ~]# more /etc/redhat-release
CentOS Linux release 7.6.1810 (Core) # 检测当前CPU是否支持SSE 4.2
[root@localhost ~]# grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
SSE 4.2 supported # 添加官方存储库
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 # 安装clickhouse
sudo yum install clickhouse-server clickhouse-client # 启动clickhouse
sudo /etc/init.d/clickhouse-server start # 进入clickhouse客户端
root@localhost ~]# clickhouse-client
ClickHouse client version 20.12.5.14 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.12.5 revision 54442. localhost :) select 1; SELECT 1 Query id: 42f5e589-2f81-44e2-9fb8-de45e682acfc ┌─1─┐
│ 1 │
└───┘ 1 rows in set. Elapsed: 0.002 sec. localhost :) select now(); SELECT now() Query id: c4c867a9-ae0e-4d6c-bb19-057e96cf6624 ┌───────────────now()─┐
│ 2021-01-13 10:19:14 │
└─────────────────────┘ 1 rows in set. Elapsed: 0.004 sec.

3. ClickHouse 简单操作

ClickHouse 支持有限的 SQL 操作,SQL 语法和传统的关系型数据库有相似之处。下面简单介绍下 ClickHouse 基础语法:

# 1.创建数据库
# 语法:
CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(...)]
# 示例:
[root@localhost ~]# clickhouse-client
ClickHouse client version 20.12.5.14 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.12.5 revision 54442. localhost :) create database test; CREATE DATABASE test Query id: c17cbf32-ab8c-45a0-8ebb-a7b0bdb88efe Ok. 0 rows in set. Elapsed: 0.015 sec. localhost :) use test; USE test Query id: 4eeadf20-e8bc-4b84-a953-71cf16e133b6 Ok. 0 rows in set. Elapsed: 0.001 sec. # 2.创建表
# 语法:
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1] [compression_codec] [TTL expr1],
name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2] [compression_codec] [TTL expr2],
...
) ENGINE = engine
# 示例:
root@localhost ~]# clickhouse-client
ClickHouse client version 20.12.5.14 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.12.5 revision 54442. localhost :) use test; USE test Query id: 37248a4f-36ec-4ed3-a08a-c345db228c98 Ok. 0 rows in set. Elapsed: 0.001 sec. localhost :) create table t1 (id Int32,name String) engine=TinyLog; CREATE TABLE t1
(
`id` Int32,
`name` String
)
ENGINE = TinyLog Query id: 8296c170-72fa-4852-8447-ab548fa3b7b8 Ok. 0 rows in set. Elapsed: 0.230 sec. localhost :) show tables; SHOW TABLES Query id: 7da8d2d5-e4ed-45f1-b96c-4d23924512ba ┌─name─┐
│ t1 │
└──────┘ 1 rows in set. Elapsed: 0.007 sec. # TinyLog是最简单的表的引擎,用于将数据存储在磁盘上。常用于小表。 # 3.插入数据
# 示例:
[root@localhost ~]# clickhouse-client
ClickHouse client version 20.12.5.14 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.12.5 revision 54442. localhost :) use test; USE test Query id: 71a1de2a-17fe-4a0b-b9b6-7e934016892e Ok. 0 rows in set. Elapsed: 0.001 sec. localhost :) insert into t1 (id, name) values (1, 'abc'), (2, 'bbbb'),(3,'sdfg'); INSERT INTO t1 (id, name) VALUES Query id: d4982851-8b52-4158-949f-fa94cd7d8ff3 Ok. 3 rows in set. Elapsed: 0.002 sec. localhost :) select * from t1; SELECT *
FROM t1 Query id: b73f366c-702e-4bda-b519-cb087754bbad ┌─id─┬─name─┐
│ 1 │ abc │
│ 2 │ bbbb │
│ 3 │ sdfg │
└────┴──────┘ 3 rows in set. Elapsed: 0.002 sec.

虽然 SQL 语法和关系型数据库有相似之处,但还是要摒弃已有的思维来学习 ClickHouse 。特别是数据类型、表引擎及其他特性,这些都是陌生的,学习下来还是有难度的。

参考:

初识ClickHouse——安装与入门的更多相关文章

  1. 暑假学习笔记(一)——初识Neo4j和APICloud入门

    暑假学习笔记(一)--初识Neo4j和APICloud入门 20180719笔记 1.Neo4j 接了学姐的系统测试报告任务,感觉工作很繁重,但是自己却每天挥霍时光.9月份就要提交系统测试报告了,但是 ...

  2. Apache Hadoop2.x 边安装边入门

    完整PDF版本:<Apache Hadoop2.x边安装边入门> 目录 第一部分:Linux环境安装 第一步.配置Vmware NAT网络 一. Vmware网络模式介绍 二. NAT模式 ...

  3. bower安装使用入门详情

    bower安装使用入门详情   bower自定义安装:安装bower需要先安装node,npm,git全局安装bower,命令:npm install -g bower进入项目目录下,新建文件1.tx ...

  4. [Python爬虫] scrapy爬虫系列 <一>.安装及入门介绍

    前面介绍了很多Selenium基于自动测试的Python爬虫程序,主要利用它的xpath语句,通过分析网页DOM树结构进行爬取内容,同时可以结合Phantomjs模拟浏览器进行鼠标或键盘操作.但是,更 ...

  5. 虚拟光驱 DAEMON Tools Lite ——安装与入门

    DAEMON Tools Lite 是什么?它不仅仅是虚拟光驱.是的,你可以使用它制作.加载光盘映像,但是 DAEMON Tools 产品那么多,Lite版与其他版本究竟有什么不同呢?或者说,是什么让 ...

  6. Python 3.6.3 官网 下载 安装 测试 入门教程 (windows)

    1. 官网下载 Python 3.6.3 访问 Python 官网 https://www.python.org/ 点击 Downloads => Python 3.6.3 下载 Python ...

  7. 八:Lombok 安装、入门 - 消除冗长的 java 代码

    Lombok 安装.入门 - 消除冗长的 java 代码 前言:    逛开源社区的时候无意发现的,用了一段时间,觉得还可以,特此推荐一下.    lombok 提供了简单的注解的形式来帮助我们简化消 ...

  8. robotframework安装及入门指南

    将很久之前自己在本地记录的一些笔记发表到随笔来,希望能够帮到一些童鞋~ robotframework安装及入门指南 本文主要介绍robotframework在windows环境的安装过程! 安装步骤 ...

  9. pytest_01_安装和入门

    目录 pytest 安装与入门 1.pip install -U pytest 2.创建一个test01.py的文件 3.在该目录下执行pytest(venv) 4.执行多个,新建一个py文件 tes ...

随机推荐

  1. 微信小程序Animation动画的使用

    目录 1,前言 2,属性 3,使用 1,前言 和css3动画不同,小程序中动画是主要是通过js控制的,简单来说就是创建一个动画实例animation.调用实例的方法来定义动画效果.最后通过动画实例的e ...

  2. 五个问题,三大策略,手把手教你定制App性能监控方案

    作者:友盟+U-APM团队 Why? 为什么要做应用性能监控? 首先,我们要知道应用性能监控具体指什么?以及目的: 监控是一套完整的"监视+报警"的系统.对于像我们这样的App开发 ...

  3. ES核心概念和原理

    ES:1:倒排索引 基于Document 关键词索引实现 . 根据关键词做索引 相关度 a. 数据结构 i. 包含关键词的Document List ii. 关键词在每个doc中出现的次数 词频 TF ...

  4. Android学习之探究Fragment

    •碎片是什么 Fragment是一种可以嵌入在活动中的UI片段,能够让程序更加合理和充分地利用大屏幕的空间: 出现的初衷是为了适应大屏幕的平板电脑,可以将其看成一个小型Activity,又称作Acti ...

  5. c++一些概念

    面向对象语言三大特征: 封装,多态,继承 封装: 1.将函数定义到结构体内部,就是封装. 2.编译器会自动传递结构体的指针给函数. 类: 带有函数的结构体,称为类. 成员函数: 结构体里面的函数,称为 ...

  6. vue-cli2 生成的项目打包优化(持续学习中)

    1.昨天看到自己的项目每次打包后都是30M左右,就觉得这个打包后的dist文件太大了,能不能小点呢, 然后就看网上的资料,提供了好多优化的办法,但是我只用了一个,后期再不断的优化吧. 打开工程项目文件 ...

  7. Dynamics CRM存放选项集记录的表

    我们在做一些自定义查询的时候会去查询选项集字段的值,但是实体的选项集字段是一个整型字段,直接查询并不能找到对应的选项集的显示内容.所以我们需要找到存放选项集键值对的表来做关联查询找到我们想要的值. D ...

  8. CentOS 7.6部署Vue + SrpingBoot + MySQL单体项目

    对于独立的项目(前端.后台单体服务.数据库),部署到新服务器上时,常常需要繁琐的配置与环境安装,这里介绍Centos 7.6下如何搭建基于Docker的环境,以及如何使用docker部署一套Vue + ...

  9. ssh+scp基本使用

    1 ssh ssh一般用于连接服务器,可以使用密码认证与密钥认证的方式. 1.1 密码认证 直接使用ssh即可: ssh username@xxx.xxx.xxx.xxx username为用户名,后 ...

  10. 002-Java的标识符和关键字

    目录 一.标识符 1.什么是标识符 2.标识符的命名规则 3.标识符的命名规范 二.关键字 1.什么是关键字 2.Java中的关键字 一.标识符 1.什么是标识符   标识符就是程序员自己规定的代表一 ...