您好,登錄后才能下訂單哦!
本文源碼:GitHub·點這里 || GitEE·點這里
Yandex開源的數據分析的數據庫,名字叫做ClickHouse,適合流式或批次入庫的時序數據。ClickHouse不應該被用作通用數據庫,而是作為超高性能的海量數據快速查詢的分布式實時處理平臺,在數據匯總查詢方面(如GROUP BY),ClickHouse的查詢速度非常快。
下載倉庫:https://repo.yandex.ru/clickhouse
中文文檔:https://clickhouse.yandex/docs/zh/
(1)列式數據庫
列式數據庫是以列相關存儲架構進行數據存儲的數據庫,主要適合于批量數據處理和即時查詢。
(2)數據壓縮
在一些列式數據庫管理系統中不是用數據壓縮。但是, 數據壓縮在實現優異的存儲系統中確實起著關鍵的作用。
(3)數據的磁盤存儲
許多的列式數據庫只能在內存中工作,這種方式會造成比實際更多的設備預算。ClickHouse被設計用于工作在傳統磁盤上的系統,它提供每GB更低的存儲成本。
(4)多核心并行處理
大型查詢可以以很自然的方式在ClickHouse中進行并行化處理,以此來使用當前服務器上可用的所有資源。
(5)多服務器分布式處理
在ClickHouse中,數據可以保存在不同的shard上,每一個shard都由一組用于容錯的replica組成,查詢可以并行的在所有shard上進行處理。
(6)支持SQL和索引
ClickHouse支持基于SQL的查詢語言,該語言大部分情況下是與SQL標準兼容的。支持的查詢包括GROUPBY,ORDERBY,IN,JOIN以及非相關子查詢。不支持窗口函數和相關子查詢。按照主鍵對數據進行排序,這將幫助ClickHouse以幾十毫秒的低延遲對數據進行特定值查找或范圍查找。
(7)向量引擎
為了高效的使用CPU,數據不僅僅按列存儲,同時還按向量(列的一部分)進行處理。
(8)實時的數據更新
ClickHouse支持在表中定義主鍵。為了使查詢能夠快速在主鍵中進行范圍查找,數據總是以增量的方式有序的存儲在MergeTree中。因此,數據可以持續不斷高效的寫入到表中,并且寫入的過程中不會存在任何加鎖的行為。
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、安裝服務
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、查看配置
數據目錄:/var/lib/clickhouse/
臨時目錄:/var/lib/clickhouse/tmp/
日志目錄:/var/log/clickhouse-server
HTTP端口:8123
TCP 端口:9000
6、配置訪問權限
config.xml文件中去掉下面配置的注釋。
<listen_host>::</listen_host>
7、啟動服務
/etc/rc.d/init.d/clickhouse-server start
8、查看服務
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)
注意事項:官方推薦引擎,MergeTree
Clickhouse 中最強大的表引擎當屬MergeTree(合并樹)引擎及該系列(*MergeTree)中的其他引擎。MergeTree引擎系列的基本理念如下。當你有巨量數據要插入到表中,你要高效地一批批寫入數據片段,并希望這些數據片段在后臺按照一定規則合并。相比在插入時不斷修改(重寫)數據進存儲,這種策略會高效很多。
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數據庫極其相似。
GitHub·地址
https://github.com/cicadasmile/linux-system-base
GitEE·地址
https://gitee.com/cicadasmile/linux-system-base
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。