開源列式分布式數據庫clickhouse

這里寫自定義目錄標題

  • 開源列式OLAP數據庫clickhouse
    • clickhouse
      • 使用 ClickHouse 的場景
    • 如何理解行式存儲和列式存儲
    • clickhouse-go

開源列式OLAP數據庫clickhouse

  • OLAP (分析型):專為快速掃描、聚合、分析海量數據設計。
  • OLTP (事務型):專為處理大量短事務(插入、更新、刪除、點查)設計。

clickhouse

官網:https://clickhouse.com/
ClickHouse 是一個開源列式數據庫管理系統,專為在線分析處理(OLAP)而設計。它能夠快速執行高并發、高效的數據查詢,適合用于處理大量數據。

ClickHouse 是由俄羅斯Yandex公司開源的,他是俄羅斯的一家互聯網巨頭公司,雖然在國際上沒什么名氣,但在俄羅斯,他就是老大,是俄羅斯排名第一的搜索引擎公司。是和谷歌、百度一樣的存在。ClickHouse 誕生于 2016 年,就是來自于 Yandex 公司。

主要用于在線分析處理 (OLAP) 業務。它采用列式存儲結構,可使用 SQL 語句實時生成數據分析報告,另外它還支持索引,分布式查詢以及近似計算等特性,憑借其優異的表現,ClickHouse 在各大互聯網公司均有廣泛地應用。

它專為需要超快查詢速度和海量數據(PB級)掃描的實時分析場景而設計,尤其擅長大規模數據集的聚合查詢。

ClickHouse 的主要特性包括:

  • 高性能:支持實時數據查詢和分析,通過列式存儲結構優化查詢速度。查詢速度快,支持并發分析場景。插入寫入高吞吐,但更新和刪除操作代價高
    ClickHouse 寫入吞吐量大
    單服務器日志寫入量在 50MB 到 200MB/s,每秒寫入超過 60w 記錄數,是 Elasticsearch 的 5 倍以上。
  • 高度可擴展:能處理 PB 級的數據,適合大規模應用。
  • SQL 支持:兼容 SQL 查詢語言,方便以 SQL 為基礎的數據操作。
  • 容錯性:內置的數據冗余和快照支持,可保證數據的安全性。

不適合的場景包括:

  • 核心業務系統主庫
  • 高頻 update/delete 的場景
  • 強一致性需求業務

使用 ClickHouse 的場景

  1. 實時數據分析:可以用于流量分析、用戶行為跟蹤等需要實時響應的場景。
  2. 大數據倉庫:處理海量數據,比如日志數據、傳感器數據等,進行長期存儲和分析。
  3. 業務智能:通過 OLAP 查詢,為企業提供決策支持的數據分析和報表。
  4. 數據集成:與 ETL(抽取、轉換、加載)流程結合,作為分析的數據存儲后端。

如何理解行式存儲和列式存儲

數據庫存儲方式主要分為兩種:行式存儲(Row-based Storage)和列式存儲(Column-based Storage)。
行式存儲 (Row-based Storage)
存儲方式:
數據按行存儲,一行的所有字段連續存放在一起
例如:
[ID1, Name1, Age1, City1]
[ID2, Name2, Age2, City2]
[ID3, Name3, Age3, City3]

傳統的 MySQL 數據庫的每一行數據都是物理的存儲在一起的。如果我要取 id 等于 10000 這一條數據的 name 列,那我就必須要把這一行數據讀取出來,然后取 name 列。
在眾多的數據中,我只取一列,但我需要把每條數據都讀取出來。

列式存儲 (Column-based Storage)
存儲方式:
數據按列存儲,同一列的所有值連續存放
例如:
[ID1, ID2, ID3]
[Name1, Name2, Name3]
[Age1, Age2, Age3]
[City1, City2, City3]

由于 name 列的數據都存儲在一起,因此效率大大的超過了傳統的數據庫。

clickhouse-go

github:https://github.com/ClickHouse/clickhouse-go

clickhouse-go 是 Go 語言的 ClickHouse 驅動程序,允許開發者使用 Go 進行數據操作。
clickhouse-go 為 Go 開發者提供了便捷的方式來與 ClickHouse 進行交互。

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

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

相關文章

Java Stream API 詳解(Java 8+)

1. Stream 操作分類Stream 操作分為兩類:中間操作(Intermediate Operations)返回新的 Stream,可以鏈式調用(如 filter, map, sorted, distinct)。惰性求值:只有遇到終止操作時才會執行。終止操作…

「源力覺醒 創作者計劃」_文心大模型4.5系列開源模型, 從一行代碼到一個生態:聊聊開源戰略那些事兒,順便扯扯文心大模型 4.5 的使用心得

前言:哈嘍,大家好,今天給大家分享一篇文章!并提供具體代碼幫助大家深入理解,徹底掌握!創作不易,如果能幫助到大家或者給大家一些靈感和啟發,歡迎收藏關注哦 💕 目錄從一行…

算法專題(二)回文鏈表

1、源代碼class Solution {public boolean isPalindrome(ListNode head) {ListNode fasthead,slowhead; //快慢指針都在頭結點//快指針走2步,慢指針走一步。//雙數快指針最后是null,單數快指針下一位是nullwhile(fast!null && fast.next!null){f…

2025《艾諾提亞失落之歌》逆向工程解包嘗試

前言 想開發一下光明之魂,看能不能解包《艾諾提亞失落之歌》的模型。 之前寫了(https://blog.csdn.net/weixin_42875245/article/details/148616547?spm1001.2014.3001.5501) 沿用這個思路進行逆向工程解包。 文章目錄請添加圖片描述前言…

JVM 03 類加載機制

JVM 將字節碼二進制流加載到內存稱為類加載。 什么時候加載類 new 實例化對象。而對象所屬類還沒被加載。讀取/設置類的靜態非常量字段,常量字段在常量池。調用類的靜態方法。類初始化,優先初始化父類。虛擬機啟動時,先加載用戶指定的主類。 …

STM32H7+FreeRTOS+LwIP移植EtherCAT開源主站SOEM

代碼下載什么的就不多說了,直接看需要移植修改的代碼。 1、osal.c修改 /******************************************************************************* * *** **** *** *** …

VijosOJ:中文信息學競賽的二十年開源之路

VijosOJ:中文信息學競賽領域的老牌開源在線判題系統 在中文編程教育與信息學競賽的發展歷程中,在線判題系統(OJ)扮演了至關重要的角色。它們不僅是選手訓練的 “戰場”,更是知識傳遞與社區交流的樞紐。VijosOJ&#x…

QPainter::CompositionMode解析

基本概念目標(Destination):已經存在的像素。源(Source):要繪制的新像素。組合模式:決定源和目標如何混合。總結SourceOver:源繪制在目標之上。DestinationOver:目標繪制在源之上。Clear:二者重疊區域被清空…

對接釘釘審批過程記錄(C#版本)

釘釘開放平臺:API總覽 - 釘釘開放平臺 按照開放平臺操作指引,進入到釘釘開發者后臺:開發者后臺統一登錄 - 釘釘統一身份認證,進行應用創建。 按照開放平臺指引下載釘釘SDK(新版)。 在vs引入釘釘dll文件。 獲…

AFSIM入門教程03.03:更新所有依賴庫版本

系列索引:AFSIM入門教程索引 上一篇中更新了tiff庫版本,本文將更新所有使用到的依賴庫版本。 失敗了 依賴庫 首先獲取哪些庫被使用了。打開源碼目錄,搜索# Configure the 3rd_party,可以看到調用第三方庫的代碼。 官方提供的…

完美解決hive external表中csv字段內容含“,“逗號的問題

為解決hive表中csv字段內容含","逗號的問題,網上幾乎都是說要用org.apache.hadoop.hive.serde2.OpenCSVSerde。 使用方法為: 1、mysql導出時,加一個ENCLOSED BY ‘"’, 示例: mysql -h 10.16.0.10 -P …

【Git】修改本地和遠程的分支名稱

其原理是: 對于本地:可直接修改分支名稱;對于遠程:不可直接重命名分支,所以應該將修改好名稱的分支以新分支的形式推送上遠程倉庫,之后將新分支與遠程新分支關聯,之后可選擇刪除舊分支# 例子&am…

ubuntu24.04安裝selenium、chrome、chromedriver

實驗環境:kaggle notebook、colab notebook1、安裝chrome!wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb!sudo dpkg -i google-chrome-stable_current_amd64.deb!sudo apt-get install -f!export QT_QPA_PLATFORMoffscreen!sudo…

西門子PLC基礎指令6:讀取時鐘指令、設置時鐘指令、使能含義與注意

讀/寫指令 1. 讀取時鐘 指令 READ_RTCREAD_RTC (RTC 全稱是 Real - Time Clock,即實時時鐘 )指令的主要作用是將 CPU 內部實時時鐘(RTC)的當前日期和時間信息讀取出來,并存儲到以指定字節地址(圖…

GeoTools 結合 OpenLayers 實現緩沖區分析

前言? 緩沖區分析是地理信息系統(GIS)空間分析的核心功能之一。它通過圍繞點、線或面等地理實體,自動生成指定距離(或寬度)的等距區域(緩沖區)。該功能為量化空間鄰近度、評估影響范圍、識別潛…

SpringBoot 接入SSE實現消息實時推送的優點,原理以及實現

SpringBoot 接入SSE實現消息實時推送的優點,原理以及實現 前言 上一篇文章 我寫的關于SpringBoot整合t-io是websocket實時通信的文章中我們可以了解到 websocket是雙向通信的,而且需要TCP連接的支持,今天在這里我要說的SSE(Server-Sent Events) 是一個單項通信的消息實時推…

創建型設計模式:對象誕生的藝術與智慧

🎭 創建型設計模式:對象誕生的藝術與智慧 💡 溫馨提示:本文將以輕松有趣的方式帶你探索設計模式的世界,就像在聽一個關于"如何優雅地生孩子"的故事一樣! 🚪 傳送門:在開始…

如何解決pip安裝報錯ModuleNotFoundError: No module named ‘gensim’問題

【Python系列Bug修復PyCharm控制臺pip install報錯】如何解決pip安裝報錯ModuleNotFoundError: No module named ‘gensim’問題 摘要 在使用 PyCharm 2025 進行 Python 開發時,常常需要通過 pip install 安裝第三方包以豐富項目功能。但在安裝 gensim 等包時&…

【嵌入式電機控制#26】BLDC:三相模擬采集

之前有些網友試著用有刷的平均電流法采集三相,還搞了個閉環控制。求!結果直接把驅動板給干沒了......做過仿真的朋友們都知道,無刷電機的相電流波形是介于方波和正弦波的。如果拿平均電流去測量,很不靠譜。這節內容為大家分享采集…

ref存儲對象和reactive深度響應式遞歸地對對象的嵌套屬性進行響應式處理

ref 不會遞歸地對 對象 或 數組 中的每個屬性或元素進行深度響應式處理。如果你需要遞歸處理嵌套屬性,reactive 是更適合的選擇。讓我通過具體的例子來展示這一點。 例子:ref 存儲對象和嵌套對象 1. 使用 ref 存儲嵌套對象: import { createA…