ClickHouse要點小記

2021-10-19 15:01:55 字數 2611 閱讀 8186

那些有相同分割槽表示式值的資料片段才會合併。這意味著 你不應該用太精細的分割槽方案(超過一千個分割槽)。否則,會因為檔案系統中的檔案數量過多和需要開啟的檔案描述符過多,導致 select 查詢效率不佳。

複製是多主非同步的。

insert語句(以及alter)可在任意可用的伺服器上執行。資料首先插入到本地的伺服器 (即執行查詢的伺服器),然後資料被複製到其他伺服器。

由於複製是非同步的,所以最近插入的資料出現在其他副本上會有一定的延遲。

如果部分副本不可用,則在它們可用時寫入資料。

如果副本可用, 則等待的時間是通過網路傳輸壓縮資料塊所耗費的時間。

預設情況下, insert操作只需等待乙個副本寫入成功後返回。如果僅將資料成功寫入乙個 副本,並且該副本的伺服器不再存在, 則儲存的資料將丟失。要啟動來自多個副本的寫入確 認機制,使用insert_quorum選項。

insert_quorum:啟用仲裁寫入,寫入多少個副本才算成功。預設0。insert_quorum <2,則禁用仲裁寫入;insert_quorum> = 2,則啟用仲裁寫入。

當在insert_quorum_timeout期間將資料正確寫入副本的insert_quorum時,insert才能成功。如果由於任何原因而成功寫入的副本數量未達到insert_quorum,則認為寫入失敗,並將從已寫入資料的所有副本中刪除插入的塊。讀取從insert_quorum寫入的資料時,可以使用select_sequential_consistency選項。查詢時可用副本的數量小於insert_quorum則會報錯。

insert_quorum_timeout:仲裁寫入超時(秒),預設60s。 如果超時時間內沒有寫完,則將生成乙個異常,並且客戶端必須重複查詢才能將同一塊寫入相同或任何其他副本。

執行分布式查詢時,首先計算分片的每個副本的錯誤數,然後將查詢傳送至最少錯誤的副本。如果沒有錯誤或者錯誤數相同,則按如下的策略查詢資料:

1.random(預設) : 將查詢傳送至任意乙個副本。

2.nearest_hostname : 將查詢傳送至主機名最相似的副本。

3.in_order : 將查詢按配置檔案中的配置順序傳送至副本。

4.first_or_random : 選擇第乙個副本,如果第乙個副本不可用,隨機選擇乙個可用的副本。

建表時新增on cluster 可以只操作一次在多個節點上同時新建本地表

private request buildrequest(clickhouserequestblank requestblank)

return builder.build();

} public string getrandomhosturl(

)

推薦使用複製表而不是非複製表,普通mergetree會存在資料同步的問題,新建複製表時可以在配置檔案中新增全域性變數標籤,指定分片名和副本名

internal_replication引數 非複製表設定為false 複製表設定為true

值為true則由表自動同步資料,若為false則由集群自動同步資料

沒有直接提供qps等類似資料,需要根據日誌計算

如果用grafana直連,指標高頻查詢會影響集群效能

如果採用clickhouse-exporter+prometheus+grafana的組合,prometheus監控flink會有小毛病

tabix用於查詢sql,監控資訊

grafana專業監控

賬號密碼均為admin

登入後進入此處可看到新建的三個儀錶盤

json標籤號13606,模板位址

json標籤號2515,模板位址

讀贏在使用者小記 要點提煉

寫在前面,有乙個好習慣,當你看到乙個結論或想法時,你贊同,舉個例子,你不贊同,也舉個例子。如果能為你每個想法和結論搭配乙個例子,你就更能讓別人信服。以使用者為中心的設計 產品設計師不能犯的乙個重大錯誤 站在自己的角度想使用者。設計 時不要假設使用者會像你一樣去思考和操作,多和直接接觸使用者的人例如銷...

clickhouse 部署 介紹

clickhouse是乙個用於聯機分析處理 olap 的列式資料庫管理系統 columnar dbms 傳統資料庫在資料大小比較小,索引大小適合記憶體,資料快取命中率足夠高的情形下能正常提供服務。但殘酷的是,這種理想情形最終會隨著業務的增長走到盡頭,查詢會變得越來越慢。你可能通過增加更多的記憶體,訂...

初步認識clickhouse

命令列客戶端 可以選擇使用互動式與非互動式 批量 兩種模式 互動模式 進入互動模式 clickhouse client 如果埠不是9000的,可以通過 port自行設定 clickhouse client port x 退出客戶端 exit 原生客戶端介面 tcp 可以從clickhouse源 進行...