日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux系统:Centos7下搭建ClickHouse列式存储数据库

發(fā)布時間:2025/3/17 linux 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux系统:Centos7下搭建ClickHouse列式存储数据库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文源碼:GitHub·點這里 || GitEE·點這里

一、ClickHouse簡介

1、基礎(chǔ)簡介

Yandex開源的數(shù)據(jù)分析的數(shù)據(jù)庫,名字叫做ClickHouse,適合流式或批次入庫的時序數(shù)據(jù)。ClickHouse不應(yīng)該被用作通用數(shù)據(jù)庫,而是作為超高性能的海量數(shù)據(jù)快速查詢的分布式實時處理平臺,在數(shù)據(jù)匯總查詢方面(如GROUP BY),ClickHouse的查詢速度非常快。

下載倉庫:https://repo.yandex.ru/clickhouse 中文文檔:https://clickhouse.yandex/docs/zh/

2、數(shù)據(jù)庫特點

(1)列式數(shù)據(jù)庫

列式數(shù)據(jù)庫是以列相關(guān)存儲架構(gòu)進(jìn)行數(shù)據(jù)存儲的數(shù)據(jù)庫,主要適合于批量數(shù)據(jù)處理和即時查詢。

(2)數(shù)據(jù)壓縮

在一些列式數(shù)據(jù)庫管理系統(tǒng)中不是用數(shù)據(jù)壓縮。但是, 數(shù)據(jù)壓縮在實現(xiàn)優(yōu)異的存儲系統(tǒng)中確實起著關(guān)鍵的作用。

(3)數(shù)據(jù)的磁盤存儲

許多的列式數(shù)據(jù)庫只能在內(nèi)存中工作,這種方式會造成比實際更多的設(shè)備預(yù)算。ClickHouse被設(shè)計用于工作在傳統(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ù)不僅僅按列存儲,同時還按向量(列的一部分)進(jìn)行處理。

(8)實時的數(shù)據(jù)更新

ClickHouse支持在表中定義主鍵。為了使查詢能夠快速在主鍵中進(jìn)行范圍查找,數(shù)據(jù)總是以增量的方式有序的存儲在MergeTree中。因此,數(shù)據(jù)可以持續(xù)不斷高效的寫入到表中,并且寫入的過程中不會存在任何加鎖的行為。

二、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*'

控制臺輸出

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/ 臨時目錄:/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

三、基礎(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, intHash32(id), 8192)

注意事項:官方推薦引擎,MergeTree

Clickhouse 中最強大的表引擎當(dāng)屬MergeTree(合并樹)引擎及該系列(*MergeTree)中的其他引擎。MergeTree引擎系列的基本理念如下。當(dāng)你有巨量數(shù)據(jù)要插入到表中,你要高效地一批批寫入數(shù)據(jù)片段,并希望這些數(shù)據(jù)片段在后臺按照一定規(guī)則合并。相比在插入時不斷修改(重寫)數(shù)據(jù)進(jìn)存儲,這種策略會高效很多。

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

總結(jié)

以上是生活随笔為你收集整理的Linux系统:Centos7下搭建ClickHouse列式存储数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。