Doris 安裝部署、實際應用及優化實踐:對比 ClickHouse 的深度解析

在實時分析、報表系統以及高并發 OLAP 查詢等場景中,列式存儲數據庫因其卓越的查詢性能逐漸成為主流。Doris 和 ClickHouse 是近年來最受歡迎的兩款開源 OLAP 引擎,本文將系統介紹 Doris 的安裝部署、應用場景及優化實踐,并與 ClickHouse 做一波深度比較,幫助大家更清晰地選擇適合自己業務的實時分析引擎。


一、Doris 簡介:極速響應的實時數倉引擎

Apache Doris(原名 StarRocks)是一個現代化 MPP 架構的實時分析數據庫,具備以下特點:

  • 高吞吐、低延遲的實時分析能力

  • 支持高并發、復雜聚合的 SQL 查詢

  • 支持流批一體(Flink、Kafka、Spark)

  • 向量化執行引擎 + CBO 優化器


二、Doris 安裝部署指南

? 官方下載地址:
Doris 的所有版本均可從官方站點獲取:
👉 https://doris.apache.org/

您可以在網站的 "Download" 頁面中選擇適配版本,也可以查看各版本 Release Note 了解功能更新。

1. 環境準備

  • 操作系統:建議使用 CentOS 7+

  • JDK:OpenJDK 1.8+

  • 服務器配置:建議 16G+ 內存,8 核 CPU

2. Doris 組件架構

組件說明
FE(Frontend)管理元數據、接收 SQL 查詢、做調度
BE(Backend)存儲數據、執行計算任務
Broker連接外部系統,如 HDFS、S3、Hive 等
StarRocks Connector連接 Flink、Kafka、Spark 進行實時導入

3. 單機部署(快速測試)

 

bash

復制編輯

# 解壓 Doris tar -zxvf apache-doris-x.x.x-bin.tar.gz cd apache-doris # 啟動 FE cd fe && sh start_fe.sh --daemon # 啟動 BE cd ../be && sh start_be.sh --daemon

訪問 FE Web UI:http://<host>:8030,默認賬戶:root

4. 集群部署(生產推薦)

  • 至少 3 個 FE(1 主 2 備) + 3 個 BE 節點

  • 使用 MySQL 高可用存儲元數據(如 MGR、MHA)

  • 推薦配合 Prometheus + Grafana 進行監控


三、Doris 實際應用場景

場景類型實踐描述
實時數據倉庫Kafka + Flink 實時寫入 Doris,支持實時 OLAP
報表系統支持千萬級數據量下的毫秒級多維分析
數據集市(ADS 層)作為 ADS 層,承載最終指標匯總查詢
嵌入式 BI 分析前端對接 Superset / Tableau 實時查詢

案例示例(如醫療、廣告、IoT):

某醫療公司通過 Kafka → Flink 實時標準化數據流入 Doris,前端實現小時級報表自動更新,全流程延遲小于 10 秒。


四、Doris 性能優化實踐

1. 表設計優化

  • 聚合模型(Aggregate):適合報表類場景,自動聚合重復維度

  • 明細模型(Duplicate):保留原始明細,不做聚合,適合數據追溯

  • 主鍵模型(Primary Key):支持 UPSERT,適合維度更新

2. 分區 & 分桶設計

  • 分區建議使用時間字段,便于冷熱數據管理

  • 分桶可以基于維度字段(如 user_id),均勻分布查詢壓力

 

sql

復制編輯

CREATE TABLE user_action ( event_date DATE, user_id BIGINT, action STRING ) PARTITION BY RANGE(event_date) ( PARTITION p20240101 VALUES LESS THAN ("2024-01-02") ) DISTRIBUTED BY HASH(user_id) BUCKETS 32;

3. 查詢性能優化

  • 利用 materialized view 加速聚合

  • 避免跨分區查詢,使用謂詞下推

  • 開啟向量化執行引擎(默認已啟用)

4. 導入優化

  • 批量導入使用 Stream Load(文件)或 Broker Load(HDFS)

  • 實時導入使用 Kafka Connector 或 Flink-Doris Connector


五、ClickHouse 簡介與對比分析

對比維度DorisClickHouse
架構MPP 架構,FE+BE 模式多副本復制 + 多分片
數據更新支持 UPSERT(主鍵模型)不支持原地更新,僅支持批量 INSERT
查詢性能高并發 + 向量化單查詢速度極快
實時能力支持 Kafka 實時導入 + 查詢支持 Kafka 實時導入
SQL 支持支持 ANSI SQL + 子查詢 + 視圖SQL 支持略弱,不完全兼容 ANSI
生態集成Spark/Flink/Kafka 無縫連接支持 ClickHouse Sink/Source
運維復雜度安裝部署簡單,組件清晰多副本配置復雜,依賴 ZooKeeper

總結:

  • Doris 適合企業級實時數倉構建、復雜多維分析、報表系統

  • ClickHouse 更適合對延遲要求極高的日志查詢、監控分析等場景


六、推薦使用建議

  • 構建企業實時數倉: Doris 更適合作為 ADS 層或一體化查詢引擎,穩定可靠。

  • 秒級查詢場景(如日志系統): ClickHouse 更勝一籌,適合單點高速查詢。

  • 兩者可組合使用: 實時寬表/指標入 Doris,事件日志歸檔入 ClickHouse。


七、總結

Doris 與 ClickHouse 都是極具競爭力的 OLAP 引擎,在大數據時代下為實時分析帶來了質的飛躍。Doris 更傾向于企業級生產環境、復雜 SQL 支持和一體化數倉架構,而 ClickHouse 則在極致性能和簡潔架構下取得快速發展。

如果你正處于數倉選型階段,不妨結合本文的對比,評估系統需求、數據規模、團隊技術棧,做出適配業務的最佳選擇。

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

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

相關文章

OracleLinuxR5U5系統重啟后啟動數據庫oracle23ai

1、切換到oracle用戶 [rootOracleLinux-R9-U5 ~]# su oracle2、查看oracle是否配置了ORACLE_SID [oracleOracleLinux-R9-U5 root]$ cd ~ [oracleOracleLinux-R9-U5 ~]$ cat .bash_profile3、輸出內容如下&#xff1a; [oracleOracleLinux-R9-U5 ~]$ cat .bash_profile # .ba…

【正點原子】STM32MP257 同構多核架構下的 ADC 電壓采集與處理應用開發實戰

在嵌入式系統中&#xff0c;ADC模擬電壓的讀取是常見的需求。如何高效、并發、且可控地完成數據采集與處理&#xff1f;本篇文章通過雙線程分別綁定在 Linux 系統的不同 CPU 核心上&#xff0c;采集 /sys/bus/iio 接口的 ADC 原始值與縮放系數 scale&#xff0c;并在另一個核上…

電商用戶購物行為分析:基于K-Means聚類與分類驗證的完整流程

隨著電商行業的快速發展,用戶行為分析成為企業優化營銷策略、提升用戶體驗的重要手段。通過分析用戶的購物行為數據,企業可以挖掘出用戶群體的消費特征和行為模式,從而制定更加精準的營銷策略。本文將詳細介紹一個基于Python實現的電商用戶購物行為分析系統,涵蓋數據預處理…

AMGCL庫的Backends及使用示例

AMGCL庫的Backends及使用示例 AMGCL是一個用于解決大型稀疏線性方程組的C庫&#xff0c;它提供了多種后端(backends)實現&#xff0c;允許用戶根據不同的硬件和性能需求選擇合適的計算后端。 AMGCL支持的主要Backends 內置Backends: builtin - 默認的純C實現block - 支持塊狀…

Express中間件(Middleware)詳解:從零開始掌握(3)

實用中間件模式25例 1. 基礎增強模式 請求屬性擴展 function extendRequest() {return (req, res, next) > {req.getClientLanguage () > {return req.headers[accept-language]?.split(,)[0] || en;};next();}; } 響應時間頭 function responseTime() {return (r…

05--MQTT物聯網協議

一、MQTT的概念 MQTT 協議快速入門 2025&#xff1a;基礎知識和實用教程 | EMQ 1.MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一種輕量級、基于發布-訂閱模式的消息傳輸協議&#xff0c;適用于資源受限的設備和低帶寬、高延遲或不穩定的網絡環境。它…

數據結構與算法——鏈表OJ題詳解(2)

文章目錄 一、前言二、OJ續享2.1相交鏈表2.2環形鏈表12.2環形鏈表2 三、總結 一、前言 哦了兄弟們&#xff0c;咱們上次在詳解鏈表OJ題的時候&#xff0c;有一部分OJ題呢up并沒有整理完&#xff0c;這一個星期呢&#xff0c;up也是在不斷的學習并且沉淀著&#xff0c;也是終于…

SQL Server AlwaysOn (SQL 查詢數據詳解及監控用途)

修正后的完整查詢 SELECT ar.replica_server_name AS [副本名稱],ar.availability_mode_desc AS [同步模式],DB_NAME(dbr.database_id) AS [數據庫名稱],dbr.database_state_desc AS [數據庫狀態],dbr.synchronization_state_desc AS [同步狀態],dbr.synchronization_health_d…

力扣熱題100刷題day63|49.字母異位詞分組

目錄 一、哈希表相關理論 二、思路 核心思路 三、相關題目 四、總結 一、哈希表相關理論 代碼隨想錄刷題day15|&#xff08;哈希表篇&#xff09;242.有效的字母異位詞、383.贖金信-CSDN博客 二、思路 首先&#xff0c;創建一個map集合&#xff0c;遍歷字符串數組&…

愛普生可編程晶振SG8201CJ和SG8200CJ在胃鏡機器人發揮重要作用

在醫療機器人技術高速發展的今天&#xff0c;胃鏡機器人作為胃腸道疾病診斷與治療的創新設備&#xff0c;正逐漸改變傳統診療模式。其復雜精密的系統需要精準的時間同步與穩定的信號輸出&#xff0c;胃鏡機器人是一種先進的醫療設備&#xff0c;用于無創性地檢查胃部疾病。與傳…

Ubuntu22環境下,Docker部署阿里FunASR的gpu版本

番外: 隨著deepseek的爆火,人工智能相關的開發變得異常火爆,相關的大模型開發很常見的agent智能體需要ASR語音識別的功能,阿里開源的FunASR幾乎是把一個商業的項目放給我們使用了。那么我們項目中的生產環境怎么部署gpu版本的語音識別服務呢?經過跟deepseek的一上午的極限…

圖解Java設計模式

1、設計模式面試題 2、設計模式的重要性 3、7大設計原則介紹 3.1、單一職責原則

transformers的 pipeline是什么:將模型加載、數據預處理、推理等步驟進行了封裝

transformers的 pipeline是什么:將模型加載、數據預處理、推理等步驟進行了封裝 pipe = pipeline("text-generation", model=model, tokenizer=tokenizer, max_new_tokens=50 )pipeline :這是 transformers 庫中一個非常實用的工具函數。它可以基于預訓練模型快速構…

jmeter插件安裝

1、下載 下載地址&#xff1a; Documentation :: JMeter-Plugins.org 然后復制到D:\apache-jmeter-5.6.3\lib\ext 復制后 2、重啟jmeter 在菜單【選項】找到“Plugins Manager” 在 Plugins Manager 界面上&#xff0c;點擊“Available Plugins”標簽頁&#xff0c;可以瀏覽所…

VSCode CMake調試CPP程序

文章目錄 1 安裝C與CMake插件2 配置CMakeLists.txt3 使用CMake編譯調試3.1 編譯3.2 調試 4 自定義構建調試參考 1 安裝C與CMake插件 C插件 CMake插件 2 配置CMakeLists.txt 編寫測試程序 #include<iostream>int main(int argc, char const *argv[]) {int a 1, b 2;i…

【前端】【css】flex布局詳解

Flex 布局&#xff08;Flexible Box Layout&#xff0c;彈性盒子布局&#xff09;是 CSS3 中的一種布局模式&#xff0c;用于在容器中更高效地分配空間并對齊內容&#xff0c;即使它們的大小是動態未知的。它非常適用于響應式設計。 一、Flex 布局的基本概念 1. 啟用 Flex 布局…

LEARNING DYNAMICS OF LLM FINETUNING【論文閱讀筆記】

LEARNING DYNAMICS OF LLM FINETUNING 一句話總結 作者將LLM的學習動力機制拆解成AKG三項&#xff0c;并分別觀察了SFT和DPO訓練過程中??正梯度信號??和??負梯度信號??的變化及其帶來的影響&#xff0c;并得到以下結論&#xff1a; ??SFT通過梯度相似性間接提升無關…

Mac 下載 PicGo 的踩坑指南

Mac 下載 PicGo 的踩坑指南 一、安裝問題 下載地址&#xff1a;https://github.com/Molunerfinn/PicGo/releases 下載之后直接安裝即可&#xff0c;此時打開會報錯&#xff1a;Picgo.app 文件已損壞&#xff0c;您應該將它移到廢紙簍。 這是因為 macOS 為了保護用戶不受惡意…

Element UI 設置 el-table-column 寬度 width 為百分比無效

問題描述&#xff1a; 想要每列寬度不同&#xff0c;不想使用 px 固定值&#xff0c;將 width 設置成百分比&#xff0c;但是每一列還是很窄 原因&#xff1a; el-table 組件會被 vue 解析成 html&#xff0c;vue 直接把百分號去掉把數值當做列寬來呈現&#xff0c;所以&#x…

第五篇:Python面向對象編程(OOP)深度教程

1. 類與對象 1.1 基本概念 ??類??是創建對象的藍圖,定義了對象的??屬性??(數據)和??方法??(行為)。??對象??是類的實例化實體,每個對象擁有獨立的屬性值和共享的類方法 ??示例??:定義Dog類 class Dog:species = "Canis familiaris" …