clickhouse基礎概念及集群部署

一. 簡述:?

? ?ClickHouse 是一款高性能列式存儲數據庫,專為海量數據的實時分析場景設計。它以極致的查詢速度、高效的存儲利用率和強大的并行處理能力著稱,廣泛應用于日志分析、用戶行為分析、業務監控等大數據分析領域。

? 1. 核心特性:

?? ?a). 列式存儲:傳統行式數據庫(如 MySQL)按行存儲數據,適合增刪改查;ClickHouse 按列存儲,同一列數據連續存放,可大幅減少 IO 量(僅讀取查詢所需列),且相同類型數據壓縮率更高(通常比行式存儲高 5-10 倍)。

? ?b). ?高效的查詢性能:基于向量執行引擎,單次處理一批數據(而非單條),減少函數調用開銷;查詢會被拆分為多個子任務,在多個 CPU 核心上并行執行;內置大量優化的數學、字符串等函數,支持復雜計算高效執行。

? ?c). ?支持實時寫入更新:提供?INSERT?語句支持高吞吐寫入(每秒數十萬條),數據寫入后立即可見。

? ?d). ?豐富的表引擎:表引擎決定數據存儲方式、索引策略和查詢特性,核心引擎包括:?

  • MergeTree:常用引擎,支持分區、排序、TTL、副本和分片,適合海量歷史數據存儲。

  • ReplacingMergeTree:在合并分區時自動去重,適合處理重復數據。

  • SummingMergeTree:合并時自動聚合數據,適合預計算場景。

  • Memory:內存表,查詢極快但數據不持久,適合臨時計算。

? 2. 分布式架構支持:?

? ? ? 原生支持集群部署,通過分片(數據拆分到不同節點)和副本(數據冗余備份)實現高可用和水平擴展,用戶無需關心底層存儲分布。

? 3. 使用場景:

????????a). 日志與指標分析:如服務器日志、應用程序埋點數據的實時查詢。

????????b). 用戶行為分析:分析用戶在網站 / App 上的點擊、瀏覽等行為,生成漏斗圖、留存率等報表。

????????c). 業務監控與儀表盤:實時監控訂單量、支付成功率等關鍵指標,支持毫秒級響應的儀表盤展示。

????????d). 時序數據存儲:存儲物聯網設備的傳感器數據(如溫度、濕度),支持按時間范圍快速查詢。

三. 服務部署:?

? 1. ?檢查當前CPU是否支持SSE 4.2:

#grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
SSE 4.2 supported

2. 安裝部署:

#yum install yum-utils
#rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG
#yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/stable/x86_64
#yum install clickhouse-server clickhouse-client(當無法聯網時,可通過https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/下載,只需要clickhouse-client,clickhouse-server,clickhouse-common-static三個包)

3. 配置clickhouse:/etc/clickhouse-server/config.xml

#vim /etc/clickhouse-server/config.xml
<!-- 監聽地址,默認只允許本地訪問,改為0.0.0.0允許外部訪問 -->
<listen_host>0.0.0.0</listen_host><!-- 數據存儲路徑(默認在/var/lib/clickhouse/) -->
<path>/var/lib/clickhouse/</path><!-- 日志路徑 -->
<log>/var/log/clickhouse-server/clickhouse-server.log</log>#設置密碼
1. 生成加密密碼: 
echo -n "your_password" | sha256sum | awk '{print $1}'2. 編輯配置
#vim /etc/clickhouse-server/users.xml
<users><default><!-- 明文密碼(測試環境) --><password>your_password</password><!-- 或加密密碼(生產環境,通過clickhouse-client生成) --><!-- <password_sha256_hex>哈希值</password_sha256_hex> --><networks><ip>::/0</ip> <!-- 允許所有IP訪問 --></networks></default>
</users>

?4. 啟動服務:?

# 啟動服務
sudo systemctl start clickhouse-server

5. ?功能驗證:

# 本地連接(默認無密碼)
clickhouse-client-- 創建測試數據庫
CREATE DATABASE IF NOT EXISTS test;-- 創建表
CREATE TABLE test.logs (timestamp DateTime,level String,message String) ENGINE = MergeTree() ORDER BY timestamp;-- 插入數據
INSERT INTO test.logs VALUES (now(), 'INFO', 'ClickHouse installed successfully');-- 查詢數據
SELECT * FROM test.logs;

三. 關于集群部署

? ?clickhouse 在21.12版本之前,需要依賴zookeeper進行節點協調等任務, 從21.12起,引入了clickhouse-keeper,用來替代zookeeper。 部署多個節點后,配置集群元數據:?

#vim /etc/clickhouse-server/config.xml<remote_servers><my_cluster> <!-- mycluster --><shard> <!-- 分片1 --><replica><host>node1</host><port>9000</port></replica></shard><shard> <!-- 分片2 --><replica><host>node2</host><port>9000</port></replica></shard><shard> <!-- 分片2 --><replica><host>node2</host><port>9000</port></replica></shard></my_cluster>
</remote_servers>#重啟所有節點,通過 SELECT * FROM system.clusters 驗證集群狀態。

?-------------------------------------------------------------------------------------

? ? ? ? ? ? ? ? ? ? ? ? ?深耕運維行業多年,擅長運維體系建設,方案落地。歡迎交流!

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? V: ywjw996

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ?? 《 運維經緯 》

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/92926.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/92926.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/92926.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

低版本 IntelliJ IDEA 使用高版本 JDK 語言特性的問題

現實問題&#xff1a; 目前最新的 IntelliJ IDEA 已經不支持在 Win7 環境上安裝了&#xff0c;如果企業內開發環境仍然是 Win7&#xff0c;就會導致很多問題。 比如當前 IDEA 版本為 2023.1&#xff0c;最大支持 JDK17&#xff0c;如何正常使用 JDK21 的新特性呢&#xff1f;比…

3分鐘 Spring AI 實現對話功能

1.什么是spring AISpring AI 是 Spring 官方推出的一個基于 Spring 生態的 AI 應用開發框架&#xff0c;旨在簡化將人工智能&#xff08;如大語言模型、生成式 AI&#xff09;集成到 Java 應用中的過程。它提供了統一的 API 和工具&#xff0c;讓開發者能更輕松地調用 AI 模型2…

CMake筆記:配置(Configure)、生成(Generate)和構建(Build)

以下為AI生成的內容&#xff1a; 一、配置階段&#xff08;Configure&#xff09; 本質&#xff1a;解析項目邏輯&#xff0c;構建內存模型 觸發命令&#xff1a;cmake -S <源碼路徑> -B <構建路徑> 關鍵操作與輸出&#xff1a;操作類型典型案例輸出產物變量定義se…

直接編輯pdf文件教程

工具下載地址&#xff1a;https://pan.quark.cn/s/4befbe5f4a77 一、下載并安裝軟件二、打開軟件&#xff0c;并打開一個pdf文件三、編輯PDF文件&#xff0c;并保存四、關閉軟件&#xff0c;打開源文件查看效果。

javaswing json格式化工具

效果展示代碼 package com.example.springbootdemo;import javax.swing.*; import javax.swing.border.TitledBorder; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeSelectionModel; import java.…

真實案例 | 如何用iFlyCode開發Webpack插件?

01案例背景在項目中&#xff0c;我們經常需要存檔前端每次打包的版本&#xff0c;方便線上快速切換不同版本使用。經過思考&#xff0c;我們可以在打包時&#xff0c;將本次打包結果另存為zip壓縮包&#xff0c;方便后續使用。于是我準備開發一個Webpack插件實現此功能&#xf…

19day-人工智能-機器學習-分類算法-決策樹

1. 什么是決策樹學過數據結構與算法的小伙伴應該對樹不陌生吧&#xff0c;這里的決策樹也是大同小異的&#xff0c;只是每次反之都有一個條件來決定流向的。1.1 決策節點通過條件判斷而進行分支選擇的節點。如&#xff1a;將某個樣本中的屬性值(特征值)與決策節點上的值進行比較…

地球磁層全球MHD模型中模擬Dst指數的半經驗方法

A semi-empirical approach to simulating the Dst index in global MHD models of Earth’s magnetosphere pdf 1 Introduction Dst指數 (Disturbance storm time index, 地磁暴時擾動指數) 是描述磁暴活動強度應用最廣泛的指數&#xff0c;對于研究地磁擾動和磁暴具有重要意…

什么是臟讀、幻讀、不可重復讀?

臟讀、幻讀和不可重復讀是數據庫事務隔離級別中常見的三種數據一致性問題。它們描述了在并發事務環境下可能出現的異常現象。下面通過對比表格和具體示例進行清晰解析&#xff1a;核心概念對比表問題類型觸發場景本質原因示例臟讀 (Dirty Read)事務A讀取了事務B未提交的修改讀取…

騰訊位置商業授權微信小程序關鍵詞輸入提示

微信小程序JavaScript SDK 開發指南 關鍵詞輸入提示 getSuggestion(options:Object) 用于獲取輸入關鍵字的補完與提示&#xff0c;幫助用戶快速輸入 注&#xff1a;坐標系采用gcj02坐標系 options屬性說明 屬性類型必填說明keywordString是用戶輸入的關鍵詞&#xff08;希望…

LabVIEW菜單操控

該程序圍繞運行時菜單欄操作&#xff0c;實現從初始化構建菜單結構&#xff08;含菜單項、快捷鍵 &#xff09;&#xff0c;到響應交互刪除特定菜單項&#xff0c;再到監控界面事件驅動邏輯&#xff0c;完成自定義菜單交互全流程&#xff0c;適配需靈活菜單控制的程序開發場景。…

Web 服務詳解:HTTP 與 HTTPS 配置

Web 服務詳解&#xff1a;HTTP 與 HTTPS 配置 一、HTTP 服務概述 HTTP&#xff08;Hypertext Transfer Protocol&#xff0c;超文本傳輸協議&#xff09;是用于在網絡上傳輸網頁數據的基礎協議&#xff0c;默認使用80 端口&#xff0c;以明文形式傳輸數據。常見的 HTTP 服務軟…

YOLO-v2-tiny 20種物體檢測模型

一、簡介 YOLO-v2-tiny是基于YOLO(You Only Look Once)實時目標檢測算法的輕量級版本&#xff0c;專門為嵌入式設備和資源受限環境優化。本模型能夠檢測20種常見物體類別&#xff0c;在保持較高檢測精度的同時大幅減少了計算量和模型大小。 20種物體檢測模型&#xff0c; 使用…

heterophilic graph和hetergeneous graph區別(附帶homophilic graph 和homoegeneous graph)

Heterophilic Graph&#xff08;異配圖&#xff09;連接的節點在屬性上不相似,但是所有節點和邊的類別都是同一種類型&#xff0c;數據集如squirrel / chameleon&#xff0c;它們是 heterogeneous graph&#xff08;異質圖&#xff09;而不是Heterophilic Graph&#xff08;異配…

Thinkphp(GUI)漏洞利用工具,支持各版本TP漏洞檢測,命令執行,Getshell

工具介紹 Thinkphp(GUI)漏洞利用工具&#xff0c;支持各版本TP漏洞檢測&#xff0c;命令執行&#xff0c;Getshell。JAVAFX可視化編寫&#xff0c;博主第一次用javafx來寫界面&#xff0c;第一次學習嘗試&#xff0c;僅僅只用于學習嘗試如果缺少什么payload&#xff0c;歡迎提交…

GitHub分支保護介紹(Branch Protection)(git分支保護)(通過設置規則和權限來限制對特定分支的操作的功能)

文章目錄**1. 核心功能****a. 防止誤操作****b. 強制代碼審查****c. 狀態檢查&#xff08;Status Checks&#xff09;****d. 權限控制****2. 如何設置分支保護&#xff1f;**1. **進入倉庫設置**2. **添加分支保護規則**3. **配置保護規則**4. **保存設置****3. 常見應用場景**…

怎么理解On-Premises

On-Premises 指的是—— 軟件、系統、數據中心等部署并運行在企業自己管理的本地硬件或機房里&#xff0c;而不是放在云端或第三方托管環境中。 你可以把它理解成&#xff1a;“服務器在你自己家里&#xff08;公司機房&#xff09;&#xff0c;而不是寄放在別人家&#xff08;…

UserController類講解

用戶管理控制器&#xff0c;實現了用戶CRUD操作的RESTful API&#xff1a; 1. 類結構與核心注解 1.1 控制器聲明 RestController RequestMapping("/api/users") public class UserControllerRestController 深度解析&#xff1a; 組合注解&#xff1a;Controller Re…

【劍指offer】搜索算法

目錄 &#x1f4c1; JZ53 數字在升序數組中出現的次數?編輯 &#x1f4c1; JZ4 二維數組中的查找?編輯 &#x1f4c1; JZ11 旋轉數組的最小數字 &#x1f4c1; JZ38 字符串的排列?編輯 &#x1f4c1; JZ53 數字在升序數組中出現的次數 這就是一道簡單的模板題&#xff0…

ETLCloud批流一體化體現在哪

ETLCloud批流一體化體現在哪 企業對數據處理的實時性、高效性和準確性的要求越來越高。批流一體化作為一種先進的數據處理理念&#xff0c;逐漸被企業所采用。 目前許多國產化ETL工具也裝配了十分強大的批流一體化能力&#xff0c;ETLCoud就是一個很好的代表&#xff0c;它能夠…