天天看點

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

點選免費下載下傳

《實時數倉技術入門一本通》>>>

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

也可在PC端打開

https://developer.aliyun.com/topic/download?id=961

下載下傳

一、背景介紹

從技術影響力的角度來說,Github Star排名前5的系統也是目前市面上比較流行的開源OLAP系統,它們的開源時間以及産品的定位各不相同,我們将會選取排名前3的系統來與Hologres做深度的對比。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

另外再從業務的視角來看一下大資料架構中OLAP系統的一個定位和功能,以及它在業務系統中的作用,可以看到,在整個大資料架構中,為了解決不同的問題,需要用到不同的系統,在大資料架構中,OLAP系統百家争鳴、萬花齊放。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

二、開源系統對比

将會從以下幾個方面來深度對比Hologres和開源OLAP系統。

1)存儲計算角度

在存儲方面,Hologres支援毫秒級的寫入可見性,Druid和ClickHouse支援的是秒級。同時Hologres支援寫入更新。

在計算方面,Hologres同Druid和ClickHouse都采用了向量化/SIMD執行器,值得一體的是,因Hologres底層技術原理可以支援聯邦查詢和高QPS的點查,這些都是Druid和ClickHouse無法做到的。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

2)SQL、進階功能和生态 

在SQL方面,Hologres是相容Postgres文法,開箱即可用,學習成本低,而Druid和ClickHouse的文法都是較複雜,難以上手。并且對于update、delete、join等,Druid和ClickHouse的支援都是比較有限。

在進階功能上,Hologres支援向量檢索、空間資料等,支援更加豐富的業務場景,并且對于安全管控方面,Hologres也有着非常嚴苛的權限管理,例如RAM、IP白名單等。

在生态上Hologres支援會更加豐富,Hologres提供JDBC接口,且能通過Flink或者DataX、StreamX寫入,實作多種異構資料源輕松導入Hologres。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

三、遷移指南

對比完主流的開源OLAP引擎之後,肯定就會有人問,要是想把OLAP引擎遷移到Hologres,應該怎麼做呢?它們的不同點在哪裡呢?下面将會一一講述。

1)Presto遷移

  • Presto簡介及應用場景

Presto是Facebook推出的一個分布式的SQL查詢引擎,基于記憶體的并行計算,它可以提供比較快速的一個互動式查詢能力。應用場景有離線加速,聯邦查詢,資料湖,以及實時數倉。

從Presto遷移到Hologres後,基本上功能可以無縫的得到支援,而且Presto不支援實時數倉,而Hologres支援實時數倉,提供寫入和更新能力,并支援高QPS的查詢能力。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 
  • 遷移方案

可以分别從資料模型,資料類型,SQL,資料接入,BI生态來看。資料模型上2者概念類似,隻不過Presto的Catalog需要變成Hologres的Database。資料類似方面Hologres同Presto一緻都支援基本以及複雜類型,無需做修改。SQL層面,2者都是支援ANSI SQL,學習成本也比較低。對于資料接入和生态而言,Hologres同Presto都提供JDBC接口,無需更換工具,隻需要更換對應的連接配接資訊就能立即使用

總結來看,遷移的成本是非常低的,基本上可以做到無縫的遷移。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

 2)Druid遷移

  • Druid簡介及應用場景

Druid自帶存儲引擎,支援實時資料,并提供亞秒級查詢的OLAP引擎。

Druid的适用場景有:

  • 時序組織資料(點選,曝光,監控)
  • 資料品質要求不高(有可能重複/丢失)
  • 海量append only資料 (不支援更新)
  • 單表聚合類查詢

Druid不适用的場景有:

  • 高QPS明細場景
  • 有一緻性要求的場景
  • 需要更新的場景
  • 需要join的場景

 從Druid遷移到Hologres後,可以支援一些原來Druid不适用的場景

下面來看實踐,首先是資料模型的遷移。Druid所有資料都存儲在dataSource中,dataSource類似于Hologres的表。Druid通過json的方式來描述一個dataSource的schema,dataSource schema與Hologres的概念映射,如下圖所示。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 
  •  遷移示例

下圖是一個具體的從Druid遷移Hologres的示例。

就DDL而言,如上面所訴,Datasorce修改為table,其餘的參數都配置為Hologres的字段資訊即可。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

 再來看Query相關的Query遷移,Druid目前版本支援兩種查詢方式:SQL查詢和Native查詢,SQL查詢和Hologres的SQL查詢方式類似,在此主要介紹Native query到Hologres的遷移方式。

Scan查詢修改為Hologres中的Select 字段即可。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

TOPN查詢修改為Sum和Group by查詢即可。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

Timeseries查詢修改where條件的sum查詢。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

GroupBy查詢在Hologres中也是Group by,無需做大幅度的修改。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

3) ClickHouse遷移

  • ClickHouse簡介及應用場景

ClickHouse自帶存儲引擎,支援實時資料,并提供亞秒級查詢,C++實作的OLAP分布式列式資料庫。

适用場景有:

  • 海量明細資料存儲
  • 寫入可見性/一緻性要求不高

不适用的場景有:

  • 高QPS查詢
  • 高QPS更新
  • 遷移方案 

常見實時數倉寫傳入連結路如下圖所示,通過Flink将實時日志資料寫入到ClickHouse中。這裡将會設計到兩種資料遷移。

首先是增量資料遷移,Hologres緊密結合Flink生态,如果客戶之前是通過Flink來向ClickHouse寫入實時資料,那麼通過Hologres Connector就能可以友善地将資料導入Hologres,将增量資料遷移過來。

然後是存量資料遷移,由于DataX等插件,暫不支援ClickHouse Reader。 如果已經在ClickHouse中存儲了存量資料,需要搬遷至Hologres,目前可以用ClickHouse -> COPY OUT -> Data File -> COPY IN -> Hologres的鍊路,需要确定好字元集、分隔符和NULL标記等規範就能遷移。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

遷移過程中,資料模型的對應關系,如下圖所示。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 
  • 遷移示例 

遷移的DDL示例如下圖所示,建表語句可以保持一緻,但是索引的建立需要改成call set語句。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

 對于一些典型查詢Query,隻需要修改部分的文法即可達到更好的效果。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

四、典型案例分享

從Hologres誕生到賦能阿裡巴巴集團内大多數核心業務再到雲上商業化,已經沉澱無數開源OLAP成功遷移Hologres的案例。下面将會介紹典型的成功遷移案例。

1)搜尋業務

在最開始的時候,阿裡巴巴的搜尋推薦的業務,用到的是一個非常複雜的架構,如下圖所示。我們把這個業務架構仔細拆開來看,它具有需要系統具備多種能力:第一,KVStore:Redis/Mysql/Hbase/Cassandra 存儲能力。第二,互動式計算能力: Presto/Drill 計算能力。第三, 實時數倉:Clickhouse/Druid存儲+計算。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

正是因為這樣一些複雜的業務架構,我們做了一個HSAP的系統,進行了業務的架構更新,把多種能力有機統一于一個引擎。這樣,使用者隻需要通過Hologres就可以解決問題,讓使用者的學習成本降低非常多,不需要再去學習多個系統。 更新後的架構:

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

下圖是具體的遷移表現。遷移到Hologres後,資源節省60%。平均查詢性能大幅提升,開發周期顯著加快。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

2)某社交網站替換ClickHouse

在阿裡雲上也有成功的遷移案例,例如某個社交網站的客戶成功從ClickHouse遷移到Hologres,資源也節省了幾百core,原來隻能存儲7天的資料,現在能無限制存儲并支援7-15天的明細資料複雜查詢,相比之前的實時寫入QPS也有大幅提升。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

3)某遊戲客戶替換Redis

下面是公共雲上某個遊戲客戶替換Redis後的收益,首先是成本下降了50%,也支援了複雜查詢,學習成本也降低了,無需特别維護,就能開箱即用。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

五、總結 

Hologres作為HSAP服務分析一體化的最佳落地實踐,。支援聯邦查詢,通過Hologres完全無縫的加速離線場景。同時也能解決AP常見的能力,同時比AP系統的性能更好。并且還能解決HBASE這種點查系統的能力,可以解決實時推薦的一些場景的能力。

在整個大資料架構中,通過Hologres完成了非常好的業務架構的整合,讓業務能力得到非常大的擴張,使用者可以非常友善的使用一套系統來完成各種各樣的業務。

開源OLAP遷移至Hologres一、背景介紹二、開源系統對比三、遷移指南四、典型案例分享五、總結 

關鍵詞:Hologres實時數倉,開源OLAP系統,HSAP更新實踐,大資料