关于mysql:初识ClickHouse安装与入门

29次阅读

共计 4171 个字符,预计需要花费 11 分钟才能阅读完成。

前言:

久闻 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。特地是数据类型、表引擎及其他个性,这些都是生疏的,学习下来还是有难度的。

参考:

  • https://clickhouse.tech/docs/zh/
  • https://www.cnblogs.com/zhoujinyi/p/12625655.html

正文完
 0