doris01-begin


doris01-開始

https://blog.bcmeng.com/post/meituan-doris.html

1. 對比其他的doris

doris是一個rolap, 可以滿足以下需求

  • 靈活多維分析
  • 明細+聚合
  • 主鍵更新

相比較kylin, druid而言, Kylin 主要滿足離線固化多維分析的需求,Druid 主要滿足實時多維分析的需求

對比其他的ROLAP系統,

  • SQL on Hadoop 系統:無法支持更新,性能也較差。
  • TiDB: TiDB 雖然當初號稱可以支撐 100%的 TP 和 80%的 AP,但是架構設計主要是面向 TP 場景,缺少針對 AP 場景專門的優化,所以 OLAP 查詢性能較差,TiDB 團隊目前正在研發專門的 OLAP 產品:TiFlash,TiFlash 具有以下特點:列存,向量化執行,MPP,而這些特點 Doris 也都有。
  • SnappyData:SnappyData 是基於 Spark + GemFire 實現的內存數據庫,機器成本較高,而我們機器資源很有限,此外 SnappyData 的計算是基於 JVM 的,會有 GC 問題,影響查詢穩定性。
  • ClickHouse:Clickhouse 是一款單機性能十分彪悍的 OLAP 系統,但是當集群加減節點后,系統不能自動感知集群拓撲變化,也不能自動 balance 數據,導致運維成本很高,此外 Clickhouse 也不支持標准 SQL,我們用戶接入的成本也很高。

2. 為什么選擇doris

Doris 的優點是功能強大,易用性好。 功能強大指可以滿足我們用戶的需求,易用性好主要指 兼容 Mysql 協議和語法,以及 Online Schema Change

Doris 的數據存儲在類似 SSTable(Sorted String Table)的數據結構中。該結構是一種有序的數據結構,可以按照指定的列進行排序存儲。在這種數據結構上,以排序列作為條件進行查找,會非常的高效。

對平台側來說,Doris 的優點是易運維,易擴展和高可用

  • 易運維指 Doris 無外部系統依賴,部署和配置都很簡單。
  • 易擴展指 Doris 可以一鍵加減節點,並自動均衡數據。
  • 高可用值 Dors 的 FE 和 BE 都可以容忍少數節點掛掉
  • 可以提供秒級join應用

3. 編譯

此處使用docker編譯

具體可見: http://doris.apache.org/documentation/cn/installing/compilation.html

編譯完成后,產出文件在 output/ 目錄中。

3.1) 什么是MMP

MPP ( Massively Parallel Processing ),即大規模並行處理,在數據庫非共享集群中,每個節點都有獨立的磁盤存儲系統和內存系統,業務數據根據數據庫模型和應用特點划分到各個節點上,每台數據節點通過專用網絡或者商業通用網絡互相連接,彼此協同計算,作為整體提供數據庫服務。非共享數據庫集群有完全的可伸縮性、高可用、高性能、優秀的性價比、資源共享等優勢。簡單來說,MPP 是將任務並行的分散到多個服務器和節點上,在每個節點上計算完成后,將各自部分的結果匯總在一起得到最終的結果 ( 與 Hadoop 相似 )。

3.2) 環境建議

centos8, 根目錄至少保證50G空間, 否則可能不夠用的

編譯最好采用掛載外部包的形式, 即使編譯中間出了問題, 也可以繼續從上次的位置編譯

3.3) 下載docker鏡像

docker pull apachedoris/doris-dev:build-env-1.2

在這兒因為自己的電腦和網不給力, 卡了許久, 最終用阿里雲的服務器30s下載下來了... 然而回傳速度極慢

3.4) 下載源碼

clone 最新的master分支代碼  https://github.com/apache/incubator-doris/

3.5) 開啟

docker run -it \
--name doris \
--net=host \
-v /root/doris/incubator-doris:/root/incubator-doris/ apachedoris/doris-dev:build-env-1.2

開啟之后, 就在容器內了

3.6) 編譯

在容器內, 進入掛載的源碼目錄執行

sh build.sh

在這兒最開始想本機編譯, 但無奈網絡不過關, 下載不下來

編譯時需要用到maven, 可以修改鏡像內為阿里雲的 nexus, 速度會大有提升

vim /usr/share/maven/conf/setting.xml

<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
</mirror>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM