您好,登錄后才能下訂單哦!
本文源碼:GitHub·點(diǎn)這里 || GitEE·點(diǎn)這里
Yandex開源的數(shù)據(jù)分析的數(shù)據(jù)庫,名字叫做ClickHouse,適合流式或批次入庫的時(shí)序數(shù)據(jù)。ClickHouse不應(yīng)該被用作通用數(shù)據(jù)庫,而是作為超高性能的海量數(shù)據(jù)快速查詢的分布式實(shí)時(shí)處理平臺,在數(shù)據(jù)匯總查詢方面(如GROUP BY),ClickHouse的查詢速度非常快。
下載倉庫:https://repo.yandex.ru/clickhouse
中文文檔:https://clickhouse.yandex/docs/zh/
(1)列式數(shù)據(jù)庫
列式數(shù)據(jù)庫是以列相關(guān)存儲架構(gòu)進(jìn)行數(shù)據(jù)存儲的數(shù)據(jù)庫,主要適合于批量數(shù)據(jù)處理和即時(shí)查詢。
(2)數(shù)據(jù)壓縮
在一些列式數(shù)據(jù)庫管理系統(tǒng)中不是用數(shù)據(jù)壓縮。但是, 數(shù)據(jù)壓縮在實(shí)現(xiàn)優(yōu)異的存儲系統(tǒng)中確實(shí)起著關(guān)鍵的作用。
(3)數(shù)據(jù)的磁盤存儲
許多的列式數(shù)據(jù)庫只能在內(nèi)存中工作,這種方式會造成比實(shí)際更多的設(shè)備預(yù)算。ClickHouse被設(shè)計(jì)用于工作在傳統(tǒng)磁盤上的系統(tǒng),它提供每GB更低的存儲成本。
(4)多核心并行處理
大型查詢可以以很自然的方式在ClickHouse中進(jìn)行并行化處理,以此來使用當(dāng)前服務(wù)器上可用的所有資源。
(5)多服務(wù)器分布式處理
在ClickHouse中,數(shù)據(jù)可以保存在不同的shard上,每一個shard都由一組用于容錯的replica組成,查詢可以并行的在所有shard上進(jìn)行處理。
(6)支持SQL和索引
ClickHouse支持基于SQL的查詢語言,該語言大部分情況下是與SQL標(biāo)準(zhǔn)兼容的。支持的查詢包括GROUPBY,ORDERBY,IN,JOIN以及非相關(guān)子查詢。不支持窗口函數(shù)和相關(guān)子查詢。按照主鍵對數(shù)據(jù)進(jìn)行排序,這將幫助ClickHouse以幾十毫秒的低延遲對數(shù)據(jù)進(jìn)行特定值查找或范圍查找。
(7)向量引擎
為了高效的使用CPU,數(shù)據(jù)不僅僅按列存儲,同時(shí)還按向量(列的一部分)進(jìn)行處理。
(8)實(shí)時(shí)的數(shù)據(jù)更新
ClickHouse支持在表中定義主鍵。為了使查詢能夠快速在主鍵中進(jìn)行范圍查找,數(shù)據(jù)總是以增量的方式有序的存儲在MergeTree中。因此,數(shù)據(jù)可以持續(xù)不斷高效的寫入到表中,并且寫入的過程中不會存在任何加鎖的行為。
1、下載倉庫
curl -s
https://packagecloud.io/install/repositories/altinity/clickhouse/script.rpm.sh
| sudo os=centos dist=7 bash
2、查看安裝包
sudo yum list 'clickhouse*'
3、安裝服務(wù)
sudo yum install -y clickhouse-server clickhouse-client
4、查看安裝列表
sudo yum list installed 'clickhouse*'
控制臺輸出
Installed Packages
clickhouse-client.noarch
clickhouse-common-static.x86_64
clickhouse-server.noarch
5、查看配置
數(shù)據(jù)目錄:/var/lib/clickhouse/
臨時(shí)目錄:/var/lib/clickhouse/tmp/
日志目錄:/var/log/clickhouse-server
HTTP端口:8123
TCP 端口:9000
6、配置訪問權(quán)限
config.xml文件中去掉下面配置的注釋。
<listen_host>::</listen_host>
7、啟動服務(wù)
/etc/rc.d/init.d/clickhouse-server start
8、查看服務(wù)
ps -aux |grep clickhouse
CREATE TABLE cs_user_info (
`id` UInt64,
`user_name` String,
`pass_word` String,
`phone` String,
`email` String,
`create_day` Date DEFAULT CAST(now(),'Date')
) ENGINE = MergeTree(create_day, intHash42(id), 8192)
注意事項(xiàng):官方推薦引擎,MergeTree
Clickhouse 中最強(qiáng)大的表引擎當(dāng)屬M(fèi)ergeTree(合并樹)引擎及該系列(*MergeTree)中的其他引擎。MergeTree引擎系列的基本理念如下。當(dāng)你有巨量數(shù)據(jù)要插入到表中,你要高效地一批批寫入數(shù)據(jù)片段,并希望這些數(shù)據(jù)片段在后臺按照一定規(guī)則合并。相比在插入時(shí)不斷修改(重寫)數(shù)據(jù)進(jìn)存儲,這種策略會高效很多。
INSERT INTO cs_user_info
(id,user_name,pass_word,phone,email)
VALUES
(1,'cicada','123','13923456789','cicada@com'),
(2,'smile','234','13922226789','smile@com'),
(3,'spring','345','13966666789','spring@com');
SELECT * FROM cs_user_info ;
SELECT * FROM cs_user_info WHERE user_name='smile' AND pass_word='234';
SELECT * FROM cs_user_info WHERE id IN (1,2);
SELECT * FROM cs_user_info WHERE id=1 OR id=2 OR id=3;
查詢語句和操作MySQL數(shù)據(jù)庫極其相似。
GitHub·地址
https://github.com/cicadasmile/linux-system-base
GitEE·地址
https://gitee.com/cicadasmile/linux-system-base
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。