CH是由俄羅斯“熊哥”開源的一套用於聯機分析(OLAP)的列式資料庫管理系統(DBMS),它通過針對性的設計,力圖解決海量多維度數據的查詢性能問題。小白程式員輕鬆上手,安裝和操作就像mysql一樣簡單。 ...
該篇內容由個人博客點擊跳轉同步更新!轉載請註明出處!
前言
我是在17年就聽說過Clickhouse,那時還未接觸過億數據的運算,那時我在的小公司對於千萬數據的解決方案還停留在分庫分表,最好的也是使用mycat做的集群。這些解決方案都比較複雜,畢竟通常來說那些需要大量存儲的數據基本都是像日誌,流水等不需要修改的數據,像客戶人員等需要經常維護的信息一般項目也就幾萬左右,在這些不是非常重要的數據上耗太多時間我個人是覺得有點浪費(但畢竟還是要的嘛),直到我到了新公司才重新拾起了對Clickhouse的學習,下麵主要介紹下安裝以及下篇會介紹一些簡單的用法。
一、ClickHouse簡介 文檔地址
CH是由俄羅斯“熊哥”開源的一套用於聯機分析(OLAP)的列式資料庫管理系統(DBMS),它通過針對性的設計,力圖解決海量多維度數據的查詢性能問題。小白程式員輕鬆上手,安裝和操作就像mysql一樣簡單。
適用於:
- 大多數是讀請求
- 每次寫入大於1000行的數據(不適用於單條插入)
- 不修改已添加的數據
- 每次查詢都從資料庫中讀取大量的行,但是同時又僅需要少量的列
- 寬表,即每個表包含著大量的列
- 較少的查詢(通常每台伺服器每秒數百個查詢或更少)
- 對於簡單查詢,允許延遲大約50毫秒
- 列中的數據相對較小: 數字和短字元串(例如,每個URL 60個位元組)
- 處理單個查詢時需要高吞吐量(每個伺服器每秒高達數十億行)
- 事務不是必須的
- 對數據一致性要求低
- 每一個查詢除了一個大表外都很小
查詢結果明顯小於源數據,換句話說,數據被過濾或聚合後能夠被盛放在單台伺服器的記憶體中
應用場景
公交軌跡(我自己的應用場景)
消費轉賬流水
日誌記錄
天氣數據
......
二、ClickHouse安裝
安裝方式有多種(暫未支持windows上安裝),官方文檔上介紹的安裝方式感覺有點複雜,下麵介紹一種較為簡單的安裝方式,通過rpm安裝包進行安裝,git地址:點擊跳轉
系統環境:CentOS 7.5
1、下載包需要curl支持,當前系統沒有的話需要先通過yum安裝一下
sudo yum install -y curl
2、下載安裝腳本
curl -s https://packagecloud.io/install/repositories/altinity/clickhouse/script.rpm.sh | sudo bash
3、檢查clickhouse安裝包全不全
sudo yum list 'clickhouse*'
Available Packages
clickhouse-client.x86_64 18.1.0-1.el7 Altinity_clickhouse
clickhouse-common-static.x86_64 18.1.0-1.el7 Altinity_clickhouse
clickhouse-compressor.x86_64 1.1.54336-3.el7 Altinity_clickhouse
clickhouse-debuginfo.x86_64 18.1.0-1.el7 Altinity_clickhouse
clickhouse-mysql.noarch 0.0.20180319-1 Altinity_clickhouse
clickhouse-server.x86_64 18.1.0-1.el7 Altinity_clickhouse
clickhouse-server-common.x86_64 18.1.0-1.el7 Altinity_clickhouse
clickhouse-test.x86_64 18.1.0-1.el7 Altinity_clickhouse
4、檢查沒問題的話開始安裝服務端和客戶端
sudo yum install -y clickhouse-server clickhouse-client
5、檢查安裝後的包全不全
sudo yum list installed 'clickhouse*'
Installed Packages
clickhouse-client.x86_64 18.1.0-1.el7 @Altinity_clickhouse
clickhouse-common-static.x86_64 18.1.0-1.el7 @Altinity_clickhouse
clickhouse-server.x86_64 18.1.0-1.el7 @Altinity_clickhouse
clickhouse-server-common.x86_64 18.1.0-1.el7 @Altinity_clickhouse
6、安裝成功後首先運行服務端,預設會使用config.xml作為配置文件,也可以通過--config=xxx來指定配置文件
sudo service clickhouse-server start
7、客戶端運行,這裡的命令啥的和mysql很像,一些命令語法都是差不多的,下麵簡單試下
clickhouse-client
localhost :) show databases
SHOW DATABASES
┌─name────┐
│ default │
│ system │
└─────────┘
2 rows in set. Elapsed: 0.030 sec.
這時服務端會有響應信息
ClickHouse client version 18.1.0.
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 18.1.54396.
:)
三、可視化界面安裝,官方文檔有介紹很多種工具,這裡介紹Tabix
上面介紹的操作方式都是在linux上進行操作的,結果什麼都需要通過終端進行查看,很不方便,好在有第三方可視化Web界面工具Tabix
Tabix使用安裝非常方便,有本地安裝和無安裝兩種方式
1、無安裝方式最簡單,直接打開官方提供的地址:點擊跳轉
在上面輸入你Clickhouse運行的地址、埠、登錄名、密碼等信息就好了。
2、本地安裝方式
本地需要web伺服器,所以先安裝一個nginx,具體安裝不再細說,網上資料有很多,nginx配置
server {
listen 80;
server_name ui.tabix.io;
charset utf-8;
root /var/www/tabix.ui/build;
location / {
if (!-f $request_filename) {
rewrite ^(.*)$ /index.html last;
}
index index.html index.htm;
}
}
然後下載最新的安裝文件:點擊跳轉,並且解壓將build文件夾拷貝到nginx對應的目錄下,然後瀏覽運行看下效果,具體登錄操作和上面一樣。
四、擴充
集群的安裝可參考這篇文章:點擊跳轉
使用Prometheus進行系統的監控
使用Grafana監控資料庫的性能
下一篇將介紹數據操作的一些類庫
微信關註我哦!(轉載註明出處)