在近期的Apache Kylin Innovation Meetup 上,Kyligence的技術合夥人兼生態合做技術總監李棟,與你們分享了Kylin的最新數據源開發功能。從Apache Kylin v1.6版本開始,Apache Kylin增長了對Kafka數據源的支持,打開了流式OLAP分析的大門。同時,隨着愈來愈多的企業用戶指望把傳統數倉、數據庫的數據也接入Apache Kylin作分析,從Apache Kylin v2.1版本開始支持JDBC數據源,知足用戶對SQL on Hadoop、RDBMS等數據源中的數據進行OLAP分析探索的需求。html
點擊可播放完整視頻
數據庫
可是,JDBC數據源各不相同,想要深度實現某種數據源的對接,須要開發者投入大量精力對數據源作適配。所以Apache Kylin v2.6推出了Data Source SDK的功能,能夠幫助開發者快速開發JDBC數據源的適配,實現新數據源的對接。apache
這套SDK是用於幫助開發者提升開發效率而生的,開發者能夠使用這套Data Source SDK爲某種數據源開發一個Adaptor,從而實現Apache Kylin從數據源中同步表、構建Cube、查詢下壓的需求。下圖中黃色菱形塊所示即爲Data Source SDK提供的擴展接口。
架構
首先,拿元數據同步來說,標準的JDBC接口就實現了獲取數據庫、表、列的API。但不一樣數據庫的實現方式可能不一樣,以及某些開發者不但願把系統庫、系統表暴露給分析師,這些需求均可以在Adaptor中實現。
框架
JDBC數據源構建的過程以下圖所示,依賴sqoop在數據源中執行打平表的任務,而後把數據傳送到Hadoop集羣,而後經過一系列MapReduce或Spark任務執行後續構建任務。Adaptor在構建過程的主要做用是,將Apache Kylin產生的打平表SQL語句轉化爲數據源可支持的SQL方言。
函數
在查詢下壓也是相似。Apache Kylin支持將沒法命中Cube的查詢路由到數據源引擎中執行,而後把結果返回給用戶。Adaptor在查詢下壓中的過程也是實現SQL方言轉換,把用戶輸入的SQL語句從Apache Kylin的SQL方言轉換爲底層數據源引擎的SQL方言。
oop
以下圖所示,Data Source SDK實際爲一組函數接口的集合,開發者只需按照數據源的特性,開發響應接口的實現便可。
測試
默認的,Data Source SDK中自帶了一個默認實現,基於這套默認實現,開發者僅經過添加一個XML格式的配置轉換模板,便可完成某個數據源Adaptor的開發。
以下圖所示,就是一個數據源的配置轉換模板,模板中定義了對於特定SQL語法的配置、函數表達式和數據類型的表達方式。開發者只需按照這些配置項,根據數據源特性填寫相應的配置,便可快速開發出一個新的數據源。若是有沒有被該模板覆蓋的需求,開發者依然能夠重寫接口函數,對默認實現進行擴展。
大數據
有了Data Source SDK的功能以後,Apache Kylin能夠支持更加普遍的數據源,爲企業進行大數據平臺架構優化也帶來了更多可能。
之前,報表等數據分析應用須要按場景對接多種底層技術,如多維分析對接Apache Kylin,靈活分析對接SQL on Hadoop;
如今,企業能夠把Apache Kylin架構爲統一的大數據OLAP平臺,爲BI應用提供統一的數據出口,簡化系統架構和開發難度。
優化
如上圖右側所示,咱們使用Tableau報表作了測試:一樣的報表在查詢下壓和訪問Cube兩種模式下執行,均能正常渲染,且無需修改報表內容,同時得到14倍的效率提高,能夠有效幫助企業用戶實現數據分析從傳統技術向大數據平臺的遷移。
本文僅對Data Source SDK的功能、框架作了簡要介紹,若是您想了解更加深刻的技術細節,請參考如下連接:
kylin.apache.org/development…
kylin.apache.org/blog/2019/0…
聯繫咱們:
info@kyligence.io