clickhouse安装_初识ClickHouse——安装与入门
前言:
久聞 ClickHouse 大名,一直沒有去詳細(xì)了解。近期看了下 ClickHouse 相關(guān)文檔,決定安裝體驗下。想了解 ClickHouse 的小伙伴可以一起跟著學(xué)習(xí)哦。本篇文章主要介紹 ClickHouse 安裝方法及基礎(chǔ)知識。
1. ClickHouse 簡介
ClickHouse 是一個用于聯(lián)機(jī)分析 (OLAP) 的列式數(shù)據(jù)庫管理系統(tǒng) (DBMS). 由俄羅斯搜索引擎巨頭 Yandex 開源. 主要用于數(shù)據(jù)分析領(lǐng)域, 目前國內(nèi)社區(qū)火熱, 各個大廠紛紛跟進(jìn)大規(guī)模用于 OLAP 領(lǐng)域。
一起來看下 ClickHouse 官網(wǎng)怎么介紹它的一些特性:
- 快速:ClickHouse會充分利用所有可用的硬件,以盡可能快地處理每個查詢。單個查詢的峰值處理性能超過每秒 2 TB(解壓縮后,僅使用的列)。在分布式設(shè)置中,讀取是在健康副本之間自動平衡的,以避免增加延遲。
- 容錯:ClickHouse支持多主機(jī)異步復(fù)制,并且可以跨多個數(shù)據(jù)中心進(jìn)行部署。所有節(jié)點都相等,這可以避免出現(xiàn)單點故障。單個節(jié)點或整個數(shù)據(jù)中心的停機(jī)時間不會影響系統(tǒng)的讀寫可用性。
- 可伸縮:ClickHouse可以在垂直和水平方向上很好地縮放。 ClickHouse易于調(diào)整以在具有數(shù)百或數(shù)千個節(jié)點的群集上或在單個服務(wù)器上,甚至在小型虛擬機(jī)上執(zhí)行。當(dāng)前,每個單節(jié)點安裝的數(shù)據(jù)量超過數(shù)萬億行或數(shù)百兆兆字節(jié)。
- 易用:ClickHouse簡單易用,開箱即用。它簡化了所有數(shù)據(jù)處理:將所有結(jié)構(gòu)化數(shù)據(jù)吸收到系統(tǒng)中,并且立即可用于構(gòu)建報告。 SQL允許表達(dá)期望的結(jié)果,而無需涉及某些DBMS中可以找到的任何自定義非標(biāo)準(zhǔn)API。
2. ClickHouse 安裝教程
ClickHouse 可以在任何具有 x86_64 ,AArch64 或 PowerPC64LE CPU 架構(gòu)的 Linux ,FreeBSD 或 Mac OS X 上運行。貌似不能在 Windows 系統(tǒng)下安裝,不過 ClickHouse 同樣支持 Docker 部署,Windows 系統(tǒng)可以在 Docker 下安裝 ClickHouse 。
根據(jù)官方文檔推薦:Debian 或 Ubuntu 系統(tǒng)可以使用官方預(yù)編譯的 deb 軟件包來安裝,CentOS 、RedHat 等Linux發(fā)行版可以使用官方預(yù)編譯的 rpm 包 來安裝,如果您的操作系統(tǒng)不支持安裝 deb 或 rpm 包,也可以使用 tgz 軟件包或直接源碼編譯安裝。下面我們以 CentOS 系統(tǒng)為例,以 rpm 方式來安裝下 ClickHouse。
# 查看系統(tǒng)版本 [root@localhost ~]# more /etc/redhat-release CentOS Linux release 7.6.1810 (Core) # 檢測當(dāng)前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# 進(jìn)入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 1Query 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 語法和傳統(tǒng)的關(guān)系型數(shù)據(jù)庫有相似之處。下面簡單介紹下 ClickHouse 基礎(chǔ)語法:
# 1.創(chuàng)建數(shù)據(jù)庫 # 語法: 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 testQuery id: c17cbf32-ab8c-45a0-8ebb-a7b0bdb88efeOk.0 rows in set. Elapsed: 0.015 sec. localhost :) use test;USE testQuery id: 4eeadf20-e8bc-4b84-a953-71cf16e133b6Ok.0 rows in set. Elapsed: 0.001 sec.# 2.創(chuàng)建表 # 語法: 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 testQuery id: 37248a4f-36ec-4ed3-a08a-c345db228c98Ok.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 = TinyLogQuery id: 8296c170-72fa-4852-8447-ab548fa3b7b8Ok.0 rows in set. Elapsed: 0.230 sec. localhost :) show tables;SHOW TABLESQuery id: 7da8d2d5-e4ed-45f1-b96c-4d23924512ba┌─name─┐ │ t1 │ └──────┘1 rows in set. Elapsed: 0.007 sec. # TinyLog是最簡單的表的引擎,用于將數(shù)據(jù)存儲在磁盤上。常用于小表。# 3.插入數(shù)據(jù) # 示例: [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 testQuery id: 71a1de2a-17fe-4a0b-b9b6-7e934016892eOk.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) VALUESQuery id: d4982851-8b52-4158-949f-fa94cd7d8ff3Ok.3 rows in set. Elapsed: 0.002 sec. localhost :) select * from t1;SELECT * FROM t1Query id: b73f366c-702e-4bda-b519-cb087754bbad┌─id─┬─name─┐ │ 1 │ abc │ │ 2 │ bbbb │ │ 3 │ sdfg │ └────┴──────┘3 rows in set. Elapsed: 0.002 sec.雖然 SQL 語法和關(guān)系型數(shù)據(jù)庫有相似之處,但還是要摒棄已有的思維來學(xué)習(xí) ClickHouse 。特別是數(shù)據(jù)類型、表引擎及其他特性,這些都是陌生的,學(xué)習(xí)下來還是有難度的。
參考:
- https://clickhouse.tech/docs/zh/
- https://www.cnblogs.com/zhoujinyi/p/12625655.html
總結(jié)
以上是生活随笔為你收集整理的clickhouse安装_初识ClickHouse——安装与入门的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 树形控件(CTreeCtrl和CTree
- 下一篇: 使用Settings Bundle为程序