初識Clickhouse 安裝與部署(一)

2021-10-07 13:43:10 字數 4298 閱讀 1580

二、安裝與部署

clickhouse是由**yandex在2023年發布的乙個分布式資料分析型資料庫,其效率要比veritca快約5倍,其不依賴於hadoop生態軟體和基礎及高可用的特性適用於許多資料分析場景

1.資料壓縮

在一些列式資料庫管理系統中(例如:infinidb ce 和 monetdb) 並沒有使用資料壓縮。但是, 若想達到比較優異的效能,資料壓縮確實起到了至關重要的作用。

2.資料的磁碟儲存

許多的列式資料庫(如 sap hana, google powerdrill)只能在記憶體中工作,這種方式會造成比實際更多的裝置預算。clickhouse被設計用於工作在傳統磁碟上的系統,它提供每gb更低的儲存成本,但如果有可以使用ssd和記憶體,它也會合理的利用這些資源。

6.多核心並行處理

clickhouse會使用伺服器上一切可用的資源,從而以最自然的方式並行處理大型查詢。

4.多伺服器分布式處理

上面提到的列式資料庫管理系統中,幾乎沒有乙個支援分布式的查詢處理。

在clickhouse中,資料可以儲存在不同的shard上,每乙個shard都由一組用於容錯的replica組成,查詢可以並行地在所有shard上進行處理。這些對使用者來說是透明的

5.支援sql

clickhouse支援基於sql的宣告式查詢語言,該語言大部分情況下是與sql標準相容的。

支援的查詢包括 group by,order by,in,join以及非相關子查詢。

不支援視窗函式和相關子查詢。

6.向量引擎

為了高效的使用cpu,資料不僅僅按列儲存,同時還按向量(列的一部分)進行處理,這樣可以更加高效地使用cpu。

7.實時的資料更新

clickhouse支援在表中定義主鍵。為了使查詢能夠快速在主鍵中進行範圍查詢,資料總是以增量的方式有序的儲存在mergetree中。因此,資料可以持續不斷地高效的寫入到表中,並且寫入的過程中不會存在任何加鎖的行為。

8.索引

按照主鍵對資料進行排序,這將幫助clickhouse在幾十毫秒以內完成對資料特定值或範圍的查詢。

10.支援近似計算

clickhouse提供各種各樣在允許犧牲資料精度的情況下對查詢進行加速的方法:

用於近似計算的各類聚合函式,如:distinct values, medians, quantiles

基於資料的部分樣本進行近似查詢。這時,僅會從磁碟檢索少部分比例的資料。

不使用全部的聚合條件,通過隨機選擇有限個資料聚合條件進行聚合。這在資料聚合條件滿足某些分布條件下,在提供相當準確的聚合結果的同時降低了計算資源的使用。

支援資料複製和資料完整性

clickhouse使用非同步的多主複製技術。當資料被寫入任何乙個可用副本後,系統會在後台將資料分發給其他副本,以保證系統在不同副本上保持相同的資料。在大多數情況下clickhouse能在故障後自動恢復,在一些少數的複雜情況下需要手動恢復。

1.沒有完整的事務支援。

2.缺少高頻率,低延遲的修改或刪除已存在資料的能力。僅能用於批量刪除或修改資料,但這符合 gdpr。

3.稀疏索引使得clickhouse不適合通過其鍵檢索單行的點查詢。

clickhouse 僅支援linux 且必須支援sse4.2 指令集

這裡用centos7進行演示

grep -q sse4_2 /proc/cpuinfo && echo "sse 4.2 supported" || echo "sse 4.2 not supported"
得出下列結果

sse 4.2 supported
systemctl stop firewalld.service 

systemctl disable firewalld.service

關閉防火牆以及防火牆自啟動

mkdir -p /opt/software/clickhouse/
選擇所需的安裝包,只需要下面四種即可,其中el/7表示為centos7版本

(此處為示例版本):

包名clickhouse-server-common-20.3.12.112-1.el7.x86_64.rpm

clickhouse-server-20.3.12.112-1.el7.x86_64.rpm el/7

clickhouse-common-static-20.3.12.112-1.el7.x86_64.rpm

clickhouse-client-20.3.12.112-1.el7.x86_64.rpm

wget --content-disposition /packages/el/7/clickhouse-server-20.3.12.112-1.el7.x86_64.rpm/download.rpm

wget --content-disposition /packages/el/7/clickhouse-common-static-20.3.12.112-1.el7.x86_64.rpm/download.rpm

wget --content-disposition /packages/el/7/clickhouse-client-20.3.12.112-1.el7.x86_64.rpm/download.rpm

更多安裝方法請參照官方安裝文件,此處不再闡述

全部安裝完無錯誤資訊即可,在過程中可能會出現缺少安裝包的情況,此時需要將缺失的依賴補齊即可

/etc/clickhouse-server: 服務端的配置檔案目錄,包括全域性配置config.xml 和使用者配置users.xml,其中如需要外網訪問則需要開啟config.xml中更改配置:

# vi /etc/clickhouse-server/config.xml
example.yandex.ru

-->

其中需要放開::的注釋即可

/var/lib/clickhouse: 預設的資料儲存目錄,通常會修改,將資料儲存到大容量磁碟路徑中

/var/log/cilckhouse-server: 預設儲存日誌的目錄,通常會修改,將資料儲存到大容量磁碟路徑中

sudo service clickhouse-server start

start clickhouse-server service: path to data directory in /etc/clickhouse-server/config.xml: /var/lib/clickhouse/

done

可以在/var/log/clickhouse-server/目錄中檢視日誌。

如果服務沒有啟動,請檢查配置檔案 /etc/clickhouse-server/config.xml。

你也可以在控制台中直接啟動服務:

clickhouse-server --config-file=/etc/clickhouse-server/config.xml
在這種情況下,日誌將被列印到控制台中,這在開發過程中很方便。

如果配置檔案在當前目錄中,你可以不指定』–config-file』引數。它預設使用』./config.xml』。

你可以使用命令列客戶端連線到服務:

clickhouse-client
clickhouse client version 20.3.12.112.

connecting to localhost:9000 as user default.

connected to clickhouse server version 20.3.12 revision 54433.

wbl.clickhouse :)

驗證sql

wbl.clickhouse :) select 1 

select 1

┌─1─┐

│ 1 │

└───┘

1 rows in set. elapsed: 0.003 sec.

參考資料

clickhouse中文文件[引用日期2020-06-29]

clickhouse原理解析與應用實踐 .朱凱[引用日期2020-06-29]

ClickHouse集群安裝

vm15 ubuntu18.04 3 192.168.44.128 192.168.44.129 192.168.44.130 apt install openjdk 8 jre headless apt install openjdk 8 jdk headless zookeeper是乙個分布式的...

clickhouse安裝部署

clickhouse官網提供了各種安裝方式 因為我的目錄下只有這四個檔案,所以我直接用以下命令安裝 注意 如果乙個乙個安裝是有順序的 順序可以網上查下 用這個命令,如果有其他rpm檔案也會被一併安裝 rpm ivh 使用service clickhouse server start啟動服務 看到do...

安裝部署clickhouse

1.檢視linux 1.el7.x86 64.rpm download.rpm用同樣的方式獲取到同一版本的下面的包 root server04 clickhouse ll total 38504 rw r r 1 root root 6380 aug 6 06 02 clickhouse clien...