1. 性能功能特點
B站視頻:DorisDB VS ClickHouse OLAP PK
1.1 DorisDB
場量:線上數(shù)據(jù)應(yīng)用
訪問官方網(wǎng)站
DorisDB企業(yè)版文檔
DorisDB是鼎石科技由Apache Doris核心研發(fā)團隊打造的新一代企業(yè)級MPP數(shù)據(jù)庫。它繼承了Apache Doris項目十多年研發(fā)成果,累積了線上數(shù)千臺服務(wù)器穩(wěn)定運行經(jīng)驗,并在此基礎(chǔ)上,對傳統(tǒng)MPP數(shù)據(jù)庫進行了開創(chuàng)性的革新。DorisDB重新定義了MPP分布式架構(gòu),集群可擴展至數(shù)百節(jié)點,支持PB級數(shù)據(jù)規(guī)模,是當(dāng)前唯一可以在大數(shù)據(jù)規(guī)模下進行在線彈性擴展的企業(yè)級分析型數(shù)據(jù)庫。DorisDB還打造了全新的向量化執(zhí)行引擎,單節(jié)點每秒可處理多達100億行數(shù)據(jù),查詢速度比其他產(chǎn)品快10—100倍!
- 單表/多表查詢,DorisDB總體時間最短
- 單表查詢:DorisDB最快次數(shù)最多,ClickHouse次之
- 多表查詢:DorisDB所有執(zhí)行均最快
- DorisDB多表關(guān)聯(lián)效率好
- 支持各種主流分布式Join,不僅支持大寬表模型,還支持星型模型和雪花模型
- 數(shù)據(jù)按列存儲,第一列單獨存放,查詢時,只訪問查詢涉及的列,降低I/O
- Mysql協(xié)議兼容,支持標準的SQL語言,可直接對接主流的BI系統(tǒng)
- 與 R 語言可以實現(xiàn)無縫對接,用 R 語言可直接操作 Doris 數(shù)據(jù)庫,進行數(shù)據(jù)分析、數(shù)據(jù)挖掘等工作
- 分片方式保存數(shù)據(jù),小查詢只需要用到部分機器資源,能極大提高并發(fā)查詢量
- 可以實現(xiàn)多層聚合,能執(zhí)行復(fù)雜的SQL查詢,大表Join,高基數(shù)聚合查詢
- 能有效利用多機資源保證查詢性能,總體持有成本低,集群資源利用率高
- 數(shù)據(jù)導(dǎo)入有事務(wù)保證,可以很容易地實現(xiàn)不丟不重
- 支持實時數(shù)據(jù)的增量聚合計算
- 擴容時只需遷移部分數(shù)據(jù)分片,可線性擴展,副本自動均衡,系統(tǒng)自動完成,不影響線上服務(wù)
- 開箱即用,自適應(yīng),無須額外優(yōu)化
- 高可用:無單點瓶頸(類Paxos一致性算法)
- 高度自治:無外部依賴,副本自修復(fù),數(shù)據(jù)自均衡,一鍵擴容、縮容
- 極簡運維:無外部依賴,整個系統(tǒng)只有兩種進程,自動故障恢復(fù)(可視化運維管理平臺需要企業(yè)版)
- 可視化管理 工具,生態(tài)完善,使用 Prometheus、Grafana 將監(jiān)控項指標列出
- 支持云化部署
- 支持在線更改表模式(加減列,創(chuàng)建 Rollup),不影響當(dāng)前服務(wù),不阻塞讀、寫操作,異步執(zhí)行不需要用戶一直盯著
- 穩(wěn)定可靠:完成SSB等測試集功能完備,每天千萬條隨機SQL驗證,引入SQLite/Spark等外部DB 200萬標準測試集通過
- 內(nèi)部支持訂閱 Kafka 數(shù)據(jù)流,實現(xiàn)直接對接 Kafka(可自動感知 Kafka 中 partition 變化,合理調(diào)度并發(fā)導(dǎo)入),支持對 Kafka 原始數(shù)據(jù)做二次處理(如轉(zhuǎn)換,過濾等)
- 三層微批驅(qū)動(MPP+調(diào)度)
- DWD 明細層: 明細事實、維度表、明細寬表
- DWS 匯總層:公共匯總、通用視圖、聚合寬度
- ADS 應(yīng)用層:業(yè)務(wù)指標、匯總結(jié)果、物化視圖
- 美團 VIPKID 等大廠用作數(shù)據(jù)分析平臺,可服務(wù)高并發(fā)固定報表,
OLAP
高維分析和Adhoc
即席查詢(可通過Mysql Binlog
->Kafka
->DorisDB
同步數(shù)據(jù)) - 極速向量化引擎
【主要缺點】
- DorisDB 主要解決 PB 級別的數(shù)據(jù)量(如果高于 10 PB 級別,不推薦使用,可以考慮用
Hive
等工具) - 不適合做大規(guī)模的批處理,當(dāng)前版本由于是全內(nèi)存計算,所以面對大規(guī)模數(shù)據(jù)的復(fù)雜ETL容易內(nèi)存不足(短期內(nèi)可能不能得到解決,官方稱這是之后研發(fā)的一個方向)
- 目前不支持insert overwrite,可以用truncate+insert into代替
- 周邊生態(tài)比較不完善
- 部分SQL語法不支持
【商業(yè)特性】
- 暫未開源,承諾可以免費永久使用
- 社區(qū)核心研發(fā)人員都是中國人,國內(nèi)有商業(yè)化支持,服務(wù)更加本地化,支術(shù)支持無障礙
- 百度將 Doris 貢獻給 Apache 社區(qū)之后,許多外部用戶也成為了 Doris 的使用者,例如新浪微博,美團,小米等著名企業(yè)
- Apache Doris開源版可直接下載使用,DorisDB分標準版和企業(yè)版,需要申請使用
【部署環(huán)境】
- 準備
3
臺物理機: Linux(Centos 7+)、Java 1.8+ - CPU需要支持
AVX2指令集
。cat /proc/cpuinfo |grep avx2
有結(jié)果輸出表明CPU支持,如果不支持建議找合適的機器進行部署測試,DorisDB使用向量化技術(shù)需要一定的指令集支持才能發(fā)揮效果。 - 將DorisDB的二進制產(chǎn)品包分發(fā)到目標主機的部署路徑并解壓,可以考慮使用新建的DorisDB用戶來管理。
- BE推薦16核64GB以上(DorisDB的元數(shù)據(jù)都在內(nèi)存中保存),F(xiàn)E推薦8核16GB以上
- 磁盤可以使用HDD或者SSD
- 網(wǎng)絡(luò)需要萬兆網(wǎng)卡和萬兆交換機
- FE節(jié)點之間的時鐘相差不能超過
5s
,使用NTP協(xié)議校準時間。一臺機器上只可以部署單個FE節(jié)點。所有FE節(jié)點的http_port需要相同。 - 一般至少部署3個BE實例,每個實例的添加步驟相同
【基本概念】
- FE:FrontEnd DorisDB的前端節(jié)點,負責(zé)管理元數(shù)據(jù),管理客戶端連接,進行查詢規(guī)劃,查詢調(diào)度等工作。
- BE:BackEnd DorisDB的后端節(jié)點,負責(zé)數(shù)據(jù)存儲,計算執(zhí)行,以及compaction,副本管理等工作。
- Broker:DorisDB中和外部HDFS/對象存儲等外部數(shù)據(jù)對接的中轉(zhuǎn)服務(wù),輔助提供導(dǎo)入導(dǎo)出功能。
- DorisManager:DorisDB 管理工具,提供DorisDB集群管理、在線查詢、故障查詢、監(jiān)控報警的可視化工具。
- Tablet:DorisDB 表的邏輯分片,也是DorisDB中副本管理的基本單位,每個表根據(jù)分區(qū)和分桶機制被劃分成多個Tablet存儲在不同BE節(jié)點上。
【資源下載】
Release Notes:
https://forum.dorisdb.com/t/topic/301
文檔地址:
http://doc.dorisdb.com/
測試FAQ:
http://doc.dorisdb.com/2228586
1.2 ClickHouse
場景:日志分析、寬表分析
ClickHouse全稱是Click Stream,Data Warehouse,簡稱ClickHouse就是基于頁面的點擊事件流,面向數(shù)據(jù)倉庫進行OLAP分析。ClickHouse是一款開源的數(shù)據(jù)分析數(shù)據(jù)庫,由戰(zhàn)斗民族俄羅斯Yandex公司研發(fā)的,Yandex是做搜索引擎的,就類似與Google,百度等。
- 毫秒級響應(yīng),為了高效的使用CPU,數(shù)據(jù)不僅僅 按列存儲,同時還按向量進行處理(區(qū)別與HBase,ClickHouse的是完全列式存儲,HBase具體說是列族式存儲)
- 數(shù)據(jù)壓縮空間大,減少IO;處理單查詢高吞吐量每臺服務(wù)器每秒最多數(shù)十億行
- 寫入速度非???/strong>,50-200M/s,對于大量的數(shù)據(jù)更新非常適用
- ClickHouse多表 查詢需要更改SQL ,使類型一致才可以,且字段名、表名區(qū)分大小寫
- ClickHouse單機性能強悍,性價比較高
- 不需要任何數(shù)據(jù)預(yù)處理
- 支持批量更新
- 支持高可用(多主結(jié)構(gòu),在后面的結(jié)構(gòu)設(shè)計中會講到)
- 不依賴Hadoop復(fù)雜生態(tài)(像ES一樣,開箱即用)
【主要缺點】
- 不支持事務(wù),不支持真正的刪除/更新,ClickHouse的定位是 分析性數(shù)據(jù)庫,而不是嚴格的關(guān)系型數(shù)據(jù)庫
- 不支持標準的SQL語言,無法直接對接主流的BI系統(tǒng)(最新版已支持類似SQL的join,但性能不好)
- 幾乎不支持分布式Join,在分析模型上僅支持大寬表模式
- 不支持高并發(fā),Clickhouse快是因為采用了并行處理機制,即使一個查詢,也會用服務(wù)器一半的CPU去執(zhí)行,所以ClickHouse不能支持高并發(fā)的使用場景,默認單查詢使用CPU核數(shù)為服務(wù)器核數(shù)的一半,安裝時會自動識別服務(wù)器核數(shù),可以通過配置文件修改該參數(shù)
- 難以實現(xiàn)高并發(fā)查詢,且無法通過擴容提高并發(fā)能力
- MergeTree合并不完全
- 聚合操作依賴單點完成,操作數(shù)據(jù)量大時存在明顯性能瓶頸
- 對高基數(shù)列進行精確去重操作(如計算APP的DAU)時,受限于單點聚合的處理方式,性能瓶頸明顯
- 受限于單機的物理內(nèi)存,一旦query的mem消耗過大,將被kill
- 不擅長根據(jù)主鍵按行粒度查詢(但是支持這種操作)
- 不擅長按行刪除數(shù)據(jù)(但是支持這種操作)
- 沒有強類型校驗,數(shù)據(jù)可能被內(nèi)部機制進行截取,造成數(shù)據(jù)不一致
【商業(yè)特性】
- 不盈利
- 俄羅斯的‘百度’叫做
Yandex
,戰(zhàn)斗民族開源神器
【部署環(huán)境】
- ClickHouse 可以在任何具有 x86_64、AArch64 或 PowerPC64LE CPU 架構(gòu)的 Linux、FreeBSD 或 Mac OS X 上運行
- 官方預(yù)構(gòu)建二進制文件通常針對 x86_64 進行編譯并利用 SSE 4.2 指令集
【其他】
- MySQL單條SQL是單線程的,只能跑滿一個core,ClickHouse相反,有多少CPU,吃多少資源,所以飛快
1.3 TiDB
場景:OLTP 同時兼顧OLAP
- 支持更新/刪除
- 兼顧了OLTP的需求
- 支持Flink ExactlyOnce語意,支持冪等
【主要缺點】
- 無列式存儲 (新版本有了)
- 無預(yù)計算手段
- 無向量化執(zhí)行
- 無預(yù)聚合功能
- OLAP 性能相對 ClickHouse 或 DorisDB 較弱
2. 名詞簡介
MPP
MPP ( Massively Parallel Processing ),即大規(guī)模并行處理,海量數(shù)據(jù)并發(fā)查詢。
在數(shù)據(jù)庫非共享集群中,每個節(jié)點都有獨立的磁盤存儲系統(tǒng)和內(nèi)存系統(tǒng),業(yè)務(wù)數(shù)據(jù)根據(jù)數(shù)據(jù)庫模型和應(yīng)用特點劃分到各個節(jié)點上,每臺數(shù)據(jù)節(jié)點通過專用網(wǎng)絡(luò)或者商業(yè)通用網(wǎng)絡(luò)互相連接,彼此協(xié)同計算,作為整體提供數(shù)據(jù)庫服務(wù)。非共享數(shù)據(jù)庫集群有完全的可伸縮性、高可用、高性能、優(yōu)秀的性價比、資源共享等優(yōu)勢。簡單來說,MPP 是將任務(wù)并行的分散到多個服務(wù)器和節(jié)點上,在每個節(jié)點上計算完成后,將各自部分的結(jié)果匯總在一起得到最終的結(jié)果 ( 與 Hadoop 相似 )。
OLAP
數(shù)據(jù)分析的目標則是探索并挖掘數(shù)據(jù)價值,作為企業(yè)高層進行決策的參考,通常被稱為OLAP(On-Line Analytical Processing,聯(lián)機分析處理)。
業(yè)務(wù)數(shù)據(jù)積累時所產(chǎn)生的價值信息則被OLAP不斷呈現(xiàn),企業(yè)高層通過參考這些信息會不斷調(diào)整經(jīng)營方針,也會促進基礎(chǔ)業(yè)務(wù)的不斷優(yōu)化。
OLAP不應(yīng)該對OLTP產(chǎn)生任何影響,(理想情況下)OLTP應(yīng)該完全感覺不到OLAP的存在。
OLTP
業(yè)務(wù)類系統(tǒng)主要供基層人員使用,進行一線業(yè)務(wù)操作,通常被稱為OLTP(On-Line Transaction Processing,聯(lián)機事務(wù)處理)。從功能角度來看,OLTP負責(zé)基本業(yè)務(wù)的正常運轉(zhuǎn)。
物化視圖
物化視圖是提取某些維度的組合建立對用戶透明的卻有真實數(shù)據(jù)的視圖表格。類似于MSSQL Server中的snapshot,靜態(tài)快照。
?文章來源:http://www.zghlxwxcb.cn/news/detail-458926.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-458926.html
到了這里,關(guān)于分布式數(shù)據(jù)庫(DorisDB、Clickhouse、TiDB)調(diào)研的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!