[轉] Apache Kylin在百度地圖的實踐

前言

百度地圖開放平臺業務部數據智能組主要負責百度地圖內部相關業務的大數據計算分析,處理平常百億級規模數據,爲不一樣業務提供單條SQL毫秒級響應的OLAP多維分析查詢服務。算法

對於Apache Kylin在實際生產環境中的應用,在國內,百度地圖數據智能組是最先的一批實踐者之一。Apache Kylin在2014年11月開源,當時,咱們團隊正須要搭建一套完整的大數據OLAP分析計算平臺,用來提供百億行級數據單條SQL毫秒到秒級的多維分析查詢服務,在技術選型過程當中,咱們參考了Apache Drill、Presto、Impala、Spark SQL、Apache Kylin等。對於Apache Drill和Presto因生產環境案例較少,考慮到後期遇到問題難以交互討論,且Apache Drill總體發展不夠成熟。對於Impala和Spark SQL,主要基於內存計算,對機器資源要求較高,單條SQL可以知足秒級動態查詢響應,但交互頁面一般含有多條SQL查詢請求,在超大規模數據規模下,動態計算亦難以知足要求。後來,咱們關注到了基於MapReduce預計算生成Cube並提供低延遲查詢的Apache Kylin解決方案,並於2015年2月左右在生產環境完成了Apache Kylin的首次完整部署。架構

Apache Kylin是一個開源的分佈式分析引擎,提供Hadoop之上的SQL查詢接口及多維分析(OLAP)能力以支持超大規模數據,最初由eBay Inc. 開發並貢獻至開源社區,並於2015年11月正式畢業成爲Apache頂級項目。分佈式

  1. 大數據多維分析的挑戰oop

咱們在Apache Kylin集羣上跑了多個Cube測試,結果代表它可以有效解決大數據計算分析的3大痛點問題。性能

痛點一:百億級海量數據多維指標動態計算耗時問題,Apache Kylin經過預計算生成Cube結果數據集並存儲到HBase的方式解決。測試

痛點二:複雜條件篩選問題,用戶查詢時,Apache Kylin利用router查找算法及優化的HBase Coprocessor解決;大數據

痛點三:跨月、季度、年等大時間區間查詢問題,對於預計算結果的存儲,Apache Kylin利用Cube的Data Segment分區存儲管理解決。優化

這3個痛點的解決,使咱們可以在百億級大數據規模下,且數據模型肯定的具體多維分析產品中,達到單條SQL毫秒級響應。所以,咱們對Apache Kylin產生了較高的興趣,大數據計算查詢分析的應用中,一個頁面一般須要多條SQL查詢,假設單條SQL查詢須要2秒響應,頁面共有5個SQL請求,總共就須要10秒左右,這是不可接受的。而此時,Apache Kylin對於一個頁面多條SQL查詢響應的優點就尤其突出。rest

在實踐過程當中,根據公司不一樣業務的需求,咱們數據智能團隊的大數據OLAP平臺後臺存儲與查詢引擎採用了由Apache Kylin、Impala及Spark SQL組成,在中小數據規模且分析維度指標較爲隨機的狀況下,平臺可提供Impala或Spark SQL服務;在超大規模百億級行數據的具體產品案例上,因查詢性能需求較高,同時具體產品對其須要分析的維度和指標較爲明確,咱們使用Apache Kylin解決方案。下文將主要介紹Apache Kylin在百度地圖內部的實踐使用。router

  1. 大數據OLAP平臺系統架構

相關文章
相關標籤/搜索