讓美團、京東、搜狐都說好的數據倉庫,牛在哪?

守着金山討飯吃,乍聽有些難以想象,但很多企業正遭遇這樣的窘況。html

數據被譽爲「新石油」,如何管理並洞悉數據的價值,是企業將來發展的核心競爭力。進入大數據時代,數據規模與日俱增,若是沒有一款性能強大的數據倉庫,企業不只難以抵擋海量數據帶來的各類挑戰,還會在瞬息萬變的市場環境中迷失方向。sql

而有些企業在面對海量數據時卻能從容應對,他們又有哪些制勝法寶?今天,就讓咱們一塊兒回顧下,美團、京東、搜狐等企業,如何應對大數據帶來的各類挑戰。數據庫

美團——節約計算資源,提高開發效率apache

做爲國內領先的生活服務電子商務平臺,美團每時每刻都須要處理大量的訂單及商品信息。而在2017年年末,美團已經維護了Kylin和Druid兩個開源系統,Kylin主要知足離線固化多維分析的需求,Druid主要知足實時多維分析的需求。架構

但因爲Kylin和Druid都是基於預計算的系統,沒有保留明細數據,沒法進行明細查詢。爲此,美團於2018年初,開始調研當時開源的ROLAP系統,並進行落地。併發

美團當初主要調研了SQL on Hadoop、TiDB、SnappyData、ClickHouse和Doris等系統,這些都是優秀的開源系統,且都有其實用場景,選型主要從功能、架構、性能、易用性、運維成本等幾個維度來分析。app

爲何沒有選擇這些系統的簡要說明運維

經過綜合對比,美團技術團隊最終選擇Apache Doris(Incubating)。對用戶而言,Apache Doris(Incubating)功能強大,易用性好;對於平臺側而言,Apache Doris(Incubating)易運維、易擴展和高可用:高併發

  1. 易運維指Apache Doris(Incubating)無外部系統依賴,部署和配置都很簡單;
  2. 易擴展指Apache Doris(Incubating)能夠一鍵加減節點,並自動均衡數據;
  3. 高可用指Apache Doris(Incubating)的FE 和BE 均可以容忍少數節點掛掉。

美團點評2018年Doris服務現狀工具

變化維表的Join是外賣業務很典型的一個應用,爲了知足個別歷史數據查詢的需求,就必須重刷幾百天的歷史。這帶來大量計算資源的浪費,且數據冗餘比較嚴重,開發效率低下。

在應用Apache Doris(Incubating)以後,只須要按天同步事實表和維表,查詢現場Join就能夠。不須要天天重刷歷史數據,開發效率提高明顯。在保持查詢性能不變的前提下,Apache Doris(Incubating)在導入速度和存儲效率上都有了很大的提高。

京東——圓滿完成618大促期間的報表業務

每一年的618大促,都是對京東技術團隊的一次「大閱兵」。京東廣告平臺有上百張報表,每日百億級別的聚合結果增量,須要保證查詢效率與實時性的統一。

過去主要的開源解決方案是SQL on Hadoop 生態,但Hadoop方案總體依賴模塊過多,對業務團隊來講,運維成本高;若是使用公司大數據平臺提供的Hadoop環境,不免與其餘團隊共用,查詢效率與穩定性難以保證,對查詢延遲要控制在毫秒級的報表需求更是沒法知足;若是自建Hadoop環境,本身維護,又會出現運維壓力太大的問題。

經過多方對比選型,京東最終選擇了Apache Doris(Incubating),主要有如下幾個關鍵優點:

  1. 谷歌Mesa理論支持,百度工程實踐。而且已經進入Apache基金會孵化,將來可期,而且後續開發維護有保障。
  2. 完善的功能支持,標準MySQL協議。由於Apache Doris支持MySQL協議,現存的不少外圍MySQL功能模塊均可以使用,總體使用都很方便。而且原有的MySQL數據庫的用戶遷移成本很低。
  3. 高併發、高QPS支持。由於核心代碼所有使用C++實現,性能方面要優於其餘語言。另外一方面良好設計也保證Apache Doris在應對高併發時性能要優於其餘開源產品。
  4. 方便運維,架構清晰。只有FE和BE兩個模塊,外部依賴少。能夠專心維護Doris系統,其餘ETL的工做能夠交給業務部門處理,解放了人力。

在618大促期間,Doris提供了很是穩定的線上服務。在線進行了穩定的schema change,全程無事故。在導入方面,支撐100億行/日的增量,導入峯值達到2000w/分鐘秒級導入延遲。

在查詢方面,支撐了4000w+的每日查詢,TP99僅爲150ms。大促期間QPS峯值3000+,壓測階段峯值達到1w+

搜狐——開發流程極大簡化,數據查詢很是方便

做爲四大門戶之一,搜狐在國內是家喻戶曉的名字。搜狐智能媒體,主要是對搜狐主站的文章進行管理、展現和推薦。其數據業務分爲兩部分:一是傳統的BI業務,包括數據報表、多維分析、數據挖掘等;另外一部分主要是和文章相關,包括文章搜索、DMP、打標籤等。

根據業務須要,數據處理計算範型主要分爲兩大部分:Batch層和實時處理層,實際上就是目前典型的Lambda架構。爲此,搜狐團隊但願找到一個開源工具能夠知足交互式查詢和實時數據統計。

搜狐對主流開源產品作了比較

經過綜合對比,Apache Doris(Incubating)最終走進了搜狐團隊的視野,顯著優點以下:

  1. 首先是元信息管理和存儲,部署簡單,自依賴;
  2. 對於存儲層,數據分區比較完善,支持Range分區和Hash分區,有強大的rollup功能,支持Stream load和Batch load,能夠針對實時和離線數據場景,可對接Mysql、HDFS;
  3. 對於查詢層,支持MySQL協議,能夠說是使用零成本,方便遷移,查詢功能也很完善。

根據搜狐現有業務須要,統計每5分鐘粒度的PV UV彙總數據;統計每一個5分鐘時間點的當日累計PV UV;查詢當日及歷史30天內數據,做爲對比;查詢須要秒級響應;數據延遲要求控制在5分鐘內;原始數據約2000萬/5分鐘;業務需求特色-統計分析維度固定:a/b/c/d ; a/b/c。

過去原始方案是經過Spark Streaming + Redis + MongoDB來實現的。但該方案存在諸多問題:如針對每一個查詢維度組合,生成一個Spark處理任務,對用戶後續的需求不能很好知足;Redis壓力很大,導入任務運行不穩定,常常延遲;流程複雜,依賴多個系統,調了很長時間都難以穩定下來;時間維度只能使用Processing Time,沒法使用實踐真實發生的時間Event Time,數據計算沒法保證準確性等等。

在將其遷移到Doris後,查詢時就簡單不少,只需導入一份數據,就能夠支持多種維度組合查詢。目前,根據業務狀況,批量導入約10萬行/秒,總共兩千萬行數據能夠快速導入,線上使用以來未遇到延遲問題;聚合後數據800萬行/天,單日查詢延遲約2秒。開發流程極大簡化,數據查詢獲得巨大提高。

以上就是美團、京東、搜狐等大廠在數據處理方面的實踐運用。

自2008年第一個版本發佈至今,從過去只爲解決百度鳳巢報表的專用系統,已經成長爲目前國內惟一的分析型數據庫孵化項目,Apache Doris (incubating) 已經陪伴全部用戶走過了12個年頭。一路走來,Apache Doris (incubating)初心未改。

Apache Doris (incubating)官網,點擊進入>>

相關文章
相關標籤/搜索