二、安裝與部署
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...