新聞中心
本文源碼:GitHub·點(diǎn)這里 || GitEE·點(diǎn)這里
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、成都網(wǎng)站建設(shè)、拜泉網(wǎng)絡(luò)推廣、小程序制作、拜泉網(wǎng)絡(luò)營銷、拜泉企業(yè)策劃、拜泉品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供拜泉建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
一、ClickHouse簡介
1、基礎(chǔ)簡介
Yandex開源的數(shù)據(jù)分析的數(shù)據(jù)庫,名字叫做ClickHouse,適合流式或批次入庫的時(shí)序數(shù)據(jù)。ClickHouse不應(yīng)該被用作通用數(shù)據(jù)庫,而是作為超高性能的海量數(shù)據(jù)快速查詢的分布式實(shí)時(shí)處理平臺(tái),在數(shù)據(jù)匯總查詢方面(如GROUP BY),ClickHouse的查詢速度非常快。
下載倉庫:https://repo.yandex.ru/clickhouse
中文文檔:https://clickhouse.yandex/docs/zh/
2、數(shù)據(jù)庫特點(diǎn)
(1)列式數(shù)據(jù)庫
列式數(shù)據(jù)庫是以列相關(guān)存儲(chǔ)架構(gòu)進(jìn)行數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫,主要適合于批量數(shù)據(jù)處理和即時(shí)查詢。
(2)數(shù)據(jù)壓縮
在一些列式數(shù)據(jù)庫管理系統(tǒng)中不是用數(shù)據(jù)壓縮。但是, 數(shù)據(jù)壓縮在實(shí)現(xiàn)優(yōu)異的存儲(chǔ)系統(tǒng)中確實(shí)起著關(guān)鍵的作用。
(3)數(shù)據(jù)的磁盤存儲(chǔ)
許多的列式數(shù)據(jù)庫只能在內(nèi)存中工作,這種方式會(huì)造成比實(shí)際更多的設(shè)備預(yù)算。ClickHouse被設(shè)計(jì)用于工作在傳統(tǒng)磁盤上的系統(tǒng),它提供每GB更低的存儲(chǔ)成本。
(4)多核心并行處理
大型查詢可以以很自然的方式在ClickHouse中進(jìn)行并行化處理,以此來使用當(dāng)前服務(wù)器上可用的所有資源。
(5)多服務(wù)器分布式處理
在ClickHouse中,數(shù)據(jù)可以保存在不同的shard上,每一個(gè)shard都由一組用于容錯(cuò)的replica組成,查詢可以并行的在所有shard上進(jìn)行處理。
(6)支持SQL和索引
ClickHouse支持基于SQL的查詢語言,該語言大部分情況下是與SQL標(biāo)準(zhǔn)兼容的。支持的查詢包括GROUPBY,ORDERBY,IN,JOIN以及非相關(guān)子查詢。不支持窗口函數(shù)和相關(guān)子查詢。按照主鍵對(duì)數(shù)據(jù)進(jìn)行排序,這將幫助ClickHouse以幾十毫秒的低延遲對(duì)數(shù)據(jù)進(jìn)行特定值查找或范圍查找。
(7)向量引擎
為了高效的使用CPU,數(shù)據(jù)不僅僅按列存儲(chǔ),同時(shí)還按向量(列的一部分)進(jìn)行處理。
(8)實(shí)時(shí)的數(shù)據(jù)更新
ClickHouse支持在表中定義主鍵。為了使查詢能夠快速在主鍵中進(jìn)行范圍查找,數(shù)據(jù)總是以增量的方式有序的存儲(chǔ)在MergeTree中。因此,數(shù)據(jù)可以持續(xù)不斷高效的寫入到表中,并且寫入的過程中不會(huì)存在任何加鎖的行為。
二、Linux下安裝流程
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*'
控制臺(tái)輸出
Installed Packages
clickhouse-client.noarch
clickhouse-common-static.x86_64
clickhouse-server.noarch
5、查看配置
- cd /etc/clickhouse-server/
- vim config.xml
數(shù)據(jù)目錄:/var/lib/clickhouse/
臨時(shí)目錄:/var/lib/clickhouse/tmp/
日志目錄:/var/log/clickhouse-server
HTTP端口:8123
TCP 端口:9000
6、配置訪問權(quán)限
config.xml文件中去掉下面配置的注釋。
::
7、啟動(dòng)服務(wù)
/etc/rc.d/init.d/clickhouse-server start
8、查看服務(wù)
ps -aux |grep clickhouse
三、基礎(chǔ)操作
1、建表語句
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ù)片段在后臺(tái)按照一定規(guī)則合并。相比在插入時(shí)不斷修改(重寫)數(shù)據(jù)進(jìn)存儲(chǔ),這種策略會(huì)高效很多。
2、批量寫入
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');
3、查詢語句
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
當(dāng)前標(biāo)題:Linux系統(tǒng):Centos7下搭建ClickHouse列式存儲(chǔ)數(shù)據(jù)庫
鏈接分享:http://www.ef60e0e.cn/article/gosghe.html