CLickhouse核心特性

目錄

CLickhouse核心特性

1 完備的DBMS功能

2 列式存儲與數據壓縮

3 向量化執行引擎

4 關系模型與SQL查詢

5 多樣化的表引擎

6 多線程與分布式

7 多主架構

8 在線查詢

9 數據分片與分布式查詢

Clickhouse適用場景

Clickhouse不適用場景

Clickhouse名稱含義


CLickhouse核心特性

1 完備的DBMS功能

具備dbms(數據庫管理系統)的一些基本功能:DDL,DML,權限控制,數據備份與恢復,分布式管理等

2 列式存儲與數據壓縮

按列存儲可以有效減少查詢時掃描的數據量

數據默認使用LZ4算法壓縮,Yandex.Metrica生產環境數據總體壓縮比可以達到8:1

3 向量化執行引擎

向量化執行,可以簡單地看作一項消除程序中循環的優化。

為了實現向量化執行,需要利用CPU的SIMD指令。SIMD的全稱是 Single Instruction Multiple Data,即用單條指令操作多條數據。現代計算 機系統概念中,它是通過數據并行以提高性能的一種實現方式(其他 的還有指令級并行和線程級并行),它的原理是在CPU寄存器層面實現 數據的并行操作

4 關系模型與SQL查詢

Clickhouse使用SQL作為查詢語句,SQL 擁有極高的“群眾基礎”,更容易被使用者學習接受。

關系模型相比文檔和鍵值對等其他模型,擁有更好的描述能力, 也能夠更加清晰地表述實體間的關系。

5 多樣化的表引擎

ClickHouse 共擁有合并樹、內存、文件、接口和其他6大類20多種表引擎。其中每 一種表引擎都有著各自的特點,用戶可以根據實際業務場景的要求, 選擇合適的表引擎使用。

6 多線程與分布式

如果說向量化執行是通過數據級并行的方式提升了性能,那么多 線程處理就是通過線程級并行的方式實現了性能的提升。相比基于底 層硬件實現的向量化執行SIMD,線程級并行通常由更高層次的軟件層 面控制。現代計算機系統早已普及了多處理器架構,所以現今市面上 的服務器都具備良好的多核心多線程處理能力。由于SIMD不適合用于 帶有較多分支判斷的場景,ClickHouse也大量使用了多線程技術以實 現提速,以此和向量化執行形成互補。

ClickHouse在數據存取方面,既支持分區(縱向擴 展,利用多線程原理),也支持分片(橫向擴展,利用分布式原 理),可以說是將多線程和分布式的技術應用到了極致。

7 多主架構

ClickHouse則采用Multi-Master多主架構,集群中的每個節點角色對 等,客戶端訪問任意一個節點都能得到相同的效果。這種多主的架構 有許多優勢,例如對等的角色使系統架構變得更加簡單,不用再區分 主控節點、數據節點和計算節點,集群中的所有節點功能相同。所以 它天然規避了單點故障的問題,非常適合用于多數據中心、異地多活 的場景。

8 在線查詢

正如ClickHouse的“廣告詞”所言,其他的開源系統太慢,商用的 系統太貴,只有Clickouse在成本與性能之間做到了良好平衡,即又快 又開源。ClickHouse當之無愧地闡釋了“在線”二字的含義,即便是在 復雜查詢的場景下,它也能夠做到極快響應,且無須對數據進行任何 預處理加工。

9 數據分片與分布式查詢

數據分片是將數據進行橫向切分,這是一種在面對海量數據的場 景下,解決存儲和查詢瓶頸的有效手段,是一種分治思想的體現。 ClickHouse支持分片,而分片則依賴集群。每個集群由1到多個分片組 成,而每個分片則對應了ClickHouse的1個服務節點。分片的數量上限 取決于節點數量(1個分片只能對應1個服務節點)。

ClickHouse并不像其他分布式系統那樣,擁有高度自動化的分片 功能。ClickHouse提供了本地表(Local Table)與分布式表 (Distributed Table)的概念。一張本地表等同于一份數據的分片。而 分布式表本身不存儲任何數據,它是本地表的訪問代理,其作用類似 分庫中間件。借助分布式表,能夠代理訪問多個數據分片,從而實現 分布式查詢。

Clickhouse適用場景

ClickHouse非常適用于商業智能領域(也就是我們所說的BI領域),除此之外,它也能夠被廣泛應用于廣告流量、Web、App流量、 電信、金融、電子商務、信息安全、網絡游戲、物聯網等眾多其他領 域。

Clickhouse不適用場景

·不支持事務。

·不擅長根據主鍵按行粒度進行查詢(雖然支持),故不應該把ClickHouse當作Key-Value數據庫使用。

·不擅長按行刪除數據(雖然支持)。

Clickhouse名稱含義

Click Stream,Data WareHouse

整個系統的邏輯就十分清晰了,那就是基于頁 面的點擊事件流,面向數據倉庫進行OLAP分析

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

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

相關文章

P8642 [藍橋杯 2016 國 AC] 路徑之謎

[藍橋杯 2016 國 AC] 路徑之謎 題目描述 小明冒充 X X X 星球的騎士,進入了一個奇怪的城堡。 城堡里邊什么都沒有,只有方形石頭鋪成的地面。 假設城堡地面是 n n n\times n nn 個方格。如圖所示。 按習俗,騎士要從西北角走到東南角。 …

C/C++中const關鍵字詳解

為什么使用const?采用符號常量寫出的代碼更容易維護;指針常常是邊讀邊移動,而不是邊寫邊移動;許多函數參數是只讀不寫的。const最常見用途是作為數組的界和switch分情況標號(也可以用枚舉符代替),分類如下:…

音視頻 vs2017配置FFmpeg

vs2017 ffmpeg4.2.1 一、首先我把FFmpeg整理了一下&#xff0c;放在C盤 二、新建空項目 三、添加main.cpp&#xff0c;將bin文件夾下dll文件拷貝到cpp目錄下 #include<stdio.h> #include<iostream>extern "C" { #include "libavcodec/avcodec.h&…

【Docker】使用 Docker Registry 搭建自己的 Docker 鏡像倉庫

使用 Docker Registry 搭建自己的 Docker 鏡像倉庫 在使用 Docker 進行應用程序的開發和部署時&#xff0c;使用 Docker 鏡像倉庫是一個很好的實踐。它允許集中存儲和管理 Docker 鏡像&#xff0c;方便團隊協作和版本控制。在本文中&#xff0c;將介紹如何使用 Docker Registr…

Nginx隨筆

Nginx下載鏈接 安裝命令&#xff1a; apt update apt install nginx 一、基礎命令&#xff08;Ubuntu&#xff09; 1、在全局 nginx -t //檢查Nginx的配置文件是否有錯 systemctl start nginx //啟動Nginx systemctl stop nginx //停止Nginx systemctl status nginx //查…

【數據結構與算法——TypeScript】圖結構(Graph)

【數據結構與算法——TypeScript】 圖結構(Graph) 認識圖結構以及特性 什么是圖? 在計算機程序設計中&#xff0c;圖結構 也是一種非常常見的數據結構。 但是&#xff0c;圖論其實是一個非常大的話題 認識一下關于圖的一些內容 圖的抽象數據類型一些算法實現。 什么是圖?…

jmeter獲取mysql數據

JDBC Connection Configuration Database URL: jdbc:mysql:// 數據庫地址 /庫名 JDBC Driver class&#xff1a;com.mysql.jdbc.Driver Username&#xff1a;賬號 Password&#xff1a;密碼 JDBC Request 字段含義 字段含義 Variable Name Bound to Pool 數據庫連接池配置…

使用vue3 + ts + vite + v-md-editor 在前端頁面預覽markdown文件

1.效果預覽 2. 依賴包安裝 yarn add kangc/v-md-editornext v-md-editor中文官網&#xff1a;https://code-farmer-i.github.io/vue-markdown-editor/zh/ v-md-editor分為4種組件&#xff1a; 輕量版編輯器進階版編輯器預覽組件html預覽組件 對UI組件庫頁面&#xff0c;我只需…

問道管理:縮量小幅上漲說明什么?

股市里面&#xff0c;股票價格上漲或跌落都是常見現象。可是關于那些在商場上尋求收益的出資者來說&#xff0c;他們需要對每一個股市中的價格動搖有深化的了解&#xff0c;以便做出更正確的出資決策。最近&#xff0c;出資者們發現商場縮量小幅上漲的現象時有發生&#xff0c;…

Jmeter壓測實戰:Jmeter二次開發之自定義函數

目錄 1 前言 2 開發準備 3 自定義函數核心實現 3.1 新建項目 3.2 繼承實現AbstractFunction類 3.3 最終項目結構 4 Jmeter加載擴展包 4.1 maven構建配置 4.2 項目打包 4.3 Jmeter加載擴展包 5 自定義函數調用調試 5.1 打開Jmeter函數助手&#xff0c;選擇自定義函數…

clickhouse 刪除操作

OLAP 數據庫設計的宗旨在于分析適合一次插入多次查詢的業務場景&#xff0c;市面上成熟的 AP 數據庫在更新和刪除操作上支持的均不是很好&#xff0c;當然 clickhouse 也不例外。但是不友好不代表不支持&#xff0c;本文主要介紹在 clickhouse 中如何實現數據的刪除&#xff0c…

單鏈表相關操作(插入,刪除,查找)

通過上一節我們知道順序表的優點&#xff1a; 可隨機存儲&#xff08;O(1)&#xff09;&#xff1a;查找速度快 存儲密度高&#xff1a;每個結點只存放數據元素&#xff0c;而單鏈表除了存放數據元素之外&#xff0c;還需存儲指向下一個節點的指針 http://t.csdn.cn/p7OQf …

【2023年11月第四版教材】《第4章-信息系統管理(合集篇)》

第4章-信息系統管理之管理方法&#xff08;第四版新增章節&#xff09;&#xff08;第一部分&#xff09; 章節說明1 管理方法1.1 信息系統四個要素1.2 信息系統四大領域1.3 信息系統戰略三角1.4 信息系統架構轉換1.5 信息系統體系架構1.6 信息系統運行1.7 運行和監控1.8 管理和…

北郵鄧中亮:深度融合5G+北斗,實現高精準定位

如今&#xff0c;萬物互聯時代&#xff0c;物與物、物與人、人與人之間需要實現更多的互聯。在如此復雜多變的環境中&#xff0c;定位技術面臨著著更多挑戰和需求&#xff0c;需要不斷的創新和改進。唯有如此&#xff0c;才能滿足未來智能交通、無人駕駛和工業互聯網等領域的高…

kafka基本概念及操作

kafka介紹 Kafka是最初由Linkedin公司開發&#xff0c;是一個分布式、支持分區的&#xff08;partition&#xff09;、多副本的 &#xff08;replica&#xff09;&#xff0c;基于zookeeper協調的分布式消息系統&#xff0c;它的最大的特性就是可以實時的處理大量數據以滿足各…

【LeetCode】242 . 有效的字母異位詞

242 . 有效的字母異位詞&#xff08;簡單&#xff09; 方法&#xff1a;哈希表 思路 首先判斷兩個字符串長度是否相等&#xff0c;不相等直接返回 false&#xff1b;接下來設置一個長度為26 的哈希表&#xff0c;分別對應26個小寫字母&#xff1b;遍歷兩個字符串&#xff0c;…

Go語言工程實踐之測試與Gin項目實踐

Go 語言并發編程 及 進階與依賴管理_軟工菜雞的博客-CSDN博客 03 測試 回歸測試一般是QA(質量保證)同學手動通過終端回歸一些固定的主流程場景 集成測試是對系統功能維度做測試驗證,通過服務暴露的某個接口,進行自動化測試 而單元測試開發階段&#xff0c;開發者對單獨的函數…

day-21 代碼隨想錄算法訓練營(19)二叉樹part07

530.二叉搜索樹的最小絕對差 思路一&#xff1a;二叉搜索樹的中序遍歷必為升序數組&#xff0c;加入數組后計算相鄰兩個數差值&#xff0c;即可求出最小絕對差 思路二&#xff1a;同樣的思路&#xff0c;中序遍歷&#xff0c;直接使用指針記錄上一個節點&#xff0c;同時更新…

KAFKA第二課之生產者(面試重點)

生產者學習 1.1 生產者消息發送流程 在消息發送的過程中&#xff0c;涉及到了兩個線程——main線程和Sender線程。在main線程中創建了一個雙端隊列RecordAccumulator。main線程將消息發送給RecordAccumulator&#xff0c;Sender線程不斷從RecordAccumulator中拉取消息發送到K…

03-基礎入門-搭建安全拓展

基礎入門-搭建安全拓展 1、涉及的知識點2、常見的問題3、web權限的設置4、演示案例-環境搭建&#xff08;1&#xff09;PHPinfo&#xff08;2&#xff09;wordpress&#xff08;3&#xff09;win7虛擬機上使用iis搭建網站&#xff08;4&#xff09;Windows Server 2003配置WEB站…