如何为Apache Kylin快速开发新数据源?
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
在近期的Apache Kylin Innovation Meetup 上,Kyligence的技術合伙人兼生態(tài)合作技術總監(jiān)李棟,與大家分享了Kylin的最新數據源開發(fā)功能。從Apache Kylin v1.6版本開始,Apache Kylin增加了對Kafka數據源的支持,打開了流式OLAP分析的大門。同時,隨著越來越多的企業(yè)用戶期望把傳統(tǒng)數倉、數據庫的數據也接入Apache Kylin做分析,從Apache Kylin v2.1版本開始支持JDBC數據源,滿足用戶對SQL on Hadoop、RDBMS等數據源中的數據進行OLAP分析探索的需求。
點擊可播放完整視頻
?
但是,JDBC數據源各不相同,想要深度實現(xiàn)某種數據源的對接,需要開發(fā)者投入大量精力對數據源做適配。因此Apache Kylin v2.6推出了Data Source SDK的功能,可以幫助開發(fā)者快速開發(fā)JDBC數據源的適配,實現(xiàn)新數據源的對接。
什么是Data Source SDK?
這套SDK是用于幫助開發(fā)者提高開發(fā)效率而生的,開發(fā)者可以使用這套Data Source SDK為某種數據源開發(fā)一個Adaptor,從而實現(xiàn)Apache Kylin從數據源中同步表、構建Cube、查詢下壓的需求。下圖中黃色菱形塊所示即為Data Source SDK提供的擴展接口。
首先,拿元數據同步來講,標準的JDBC接口就實現(xiàn)了獲取數據庫、表、列的API。但不同數據庫的實現(xiàn)方式可能不同,以及某些開發(fā)者不希望把系統(tǒng)庫、系統(tǒng)表暴露給分析師,這些需求都可以在Adaptor中實現(xiàn)。
JDBC數據源構建的過程如下圖所示,依賴sqoop在數據源中執(zhí)行打平表的任務,然后把數據傳送到Hadoop集群,然后通過一系列MapReduce或Spark任務執(zhí)行后續(xù)構建任務。Adaptor在構建過程的主要作用是,將Apache Kylin產生的打平表SQL語句轉化為數據源可支持的SQL方言。
在查詢下壓也是類似。Apache Kylin支持將無法命中Cube的查詢路由到數據源引擎中執(zhí)行,然后把結果返回給用戶。Adaptor在查詢下壓中的過程也是實現(xiàn)SQL方言轉換,把用戶輸入的SQL語句從Apache Kylin的SQL方言轉換為底層數據源引擎的SQL方言。
如何開發(fā)一個Adaptor?
如下圖所示,Data Source SDK實際為一組函數接口的集合,開發(fā)者只需按照數據源的特性,開發(fā)響應接口的實現(xiàn)即可。
默認的,Data Source SDK中自帶了一個默認實現(xiàn),基于這套默認實現(xiàn),開發(fā)者僅通過添加一個XML格式的配置轉換模板,即可完成某個數據源Adaptor的開發(fā)。
如下圖所示,就是一個數據源的配置轉換模板,模板中定義了對于特定SQL語法的配置、函數表達式和數據類型的表達方式。開發(fā)者只需按照這些配置項,根據數據源特性填寫相應的配置,即可快速開發(fā)出一個新的數據源。如果有沒有被該模板覆蓋的需求,開發(fā)者依然可以重寫接口函數,對默認實現(xiàn)進行擴展。
Apache Kylin解決方案
有了Data Source SDK的功能之后,Apache Kylin可以支持更加廣泛的數據源,為企業(yè)進行大數據平臺架構優(yōu)化也帶來了更多可能。
以前,報表等數據分析應用需要按場景對接多種底層技術,如多維分析對接Apache Kylin,靈活分析對接SQL on Hadoop;
現(xiàn)在,企業(yè)可以把Apache Kylin架構為統(tǒng)一的大數據OLAP平臺,為BI應用提供統(tǒng)一的數據出口,簡化系統(tǒng)架構和開發(fā)難度。
如上圖右側所示,我們使用Tableau報表做了測試:同樣的報表在查詢下壓和訪問Cube兩種模式下執(zhí)行,均能正常渲染,且無需修改報表內容,同時獲得14倍的效率提升,可以有效幫助企業(yè)用戶實現(xiàn)數據分析從傳統(tǒng)技術向大數據平臺的遷移。
參考材料
本文僅對Data Source SDK的功能、框架做了簡要介紹,如果您想了解更加深入的技術細節(jié),請參考以下鏈接:
kylin.apache.org/development…
kylin.apache.org/blog/2019/0…
講師PPT分享
聯(lián)系我們:
info@kyligence.io
Kyligence 官網
?
轉載于:https://my.oschina.net/cicixing/blog/3019572
總結
以上是生活随笔為你收集整理的如何为Apache Kylin快速开发新数据源?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue 自己写组件。
- 下一篇: P2045 方格取数加强版