1. 程式人生 > >Saiku + Kylin 多維分析平臺探索

Saiku + Kylin 多維分析平臺探索

背景

為了應對各種資料需求,通常,我們的做法是這樣的:

  1. 對於臨時性的資料需求:寫HQL到Hive裡去查一遍,然後將結果轉為excel傳送給需求人員。
  2. 對於週期性的、長期性的資料需求:編寫指令碼,結合Hive跑出結果,將結果寫入對應DB庫,然後開發前端頁面對結果進行展現。

這樣做簡潔明瞭,但是,有很明顯的問題:

  1. 開發成本太高。每來一個需求,不管是臨時需求還是長期需求,都需要進行定製開發,這種情況下,我們的人力深陷其中。
  2. 使用不靈活。一個報表,只能進行展示,沒有分析功能,如果要進行分析,需要將資料複製到excel裡,利用excel進行處理分析,而我們的資料使用人員不一定具備這種能力。
  3. 維護成本高。太多人開發報表,沒有統一口徑,沒有詳細文件,沒有人能接手。
  4. 資源浪費。不同人員開發的報表,很多情況下存在很多重複計算。

在這種情況下,開始考慮構建一個多維分析平臺,提供平臺和基礎資料,資料需求方通過托拉拽的形式獲取需要的資料。本文主要記錄這方面的一些探索。

Saiku

首先,選擇使用 Saiku 作為我們的資料分析平臺,下面是 Saiku 官網對 Saiku 的介紹:

Saiku allows business users to explore complex data sources, using a familiar drag and drop interface and easy to understand business terminology, all within a browser. Select the data you are interested in, look at it from different perspectives, drill into the detail. Once you have your answer, save your results, share them, export them to Excel or PDF, all straight from the browser.

Saiku 是基於 Mondrian 開發的,Mondrian 是一款開源的 OLAP 引擎,能提供對大量資料的處理分析,但是,Mondrian 並沒有提供友好的介面,而Saiku作為另一個開源產品,很好的充當了這個角色。

Saiku 提供JDBC 和 ODBC 介面,可以連線很多的資料來源,既可以連線 MySQL、SQL Server、Oracle DB 等傳統關係型資料庫,也可以連線 Hive、Spark、Impala等 Big Data 平臺。

Saiku + MySQL

首先,我們用 Saiku+MySQL很快搭建了測試平臺,可以實現基本的多維分析,但是,僅適用於小資料量的分析,否則會有很嚴重的效能問題。

Saiku + Spark

由於 Saiku+MySQL 的效能問題,又嘗試了 Saiku+Spark 的方案,資料儲存於 Hive,分析引擎使用 Spark,在這種情況下,可以處理大資料量的查詢分析,大部分查詢都會在幾十秒到幾分鐘內返回結果,如果資料量太大,也會存在執行失敗的情況。所以,開始探索其他方案。

Kylin

Apache Kylin™ is an open source Distributed Analytics Engine designed to provide SQL interface and multi-dimensional analysis (OLAP) on Hadoop supporting extremely large datasets, original contributed from eBay Inc.

Kylin 相對於其他OLAP分析引擎,一個重要特點是採用空間換時間,根據定義的cube進行預計算,並將計算結果儲存到Hbase中,在進行查詢時,直接查詢Hbase,所以,Kylin 的查詢可以到毫秒級,效能完全不是問題。

Kylin 提供 ANSI SQL 介面來對資料進行查詢,沒有視覺化操作,所以,有一定的使用門檻。同時,由於Kylin 提供的 ANSI SQL介面,Kylin 也就可以和BI平臺進行對接,比如,Kylin 已經支援 Tableau 等BI工具,奈何 Tableau 是商業軟體,so…

Saiku + Kylin 實現多維分析  https://github.com/mustangore/kylin-mondrian-interaction

Saiku 根據使用者在頁面的操作,生成 MDX,然後,Mondrian根據MDX生成查詢語句SQL,而 Kylin 可以根據SQL 查詢 cube,快速得到結果,所以,如果 Saiku 和 Kylin 中定義了相同的 cube,那麼,就可以通過Saiku 來查詢 Kylin了,從而將 Saiku 的操作頁面和 Kylin 的高效能查詢能力結合起來。

Google 一下,Github 已經有人這麼做了,按照該專案說明就可以輕鬆搭建 Saiku+Kylin 多維分析平臺。

Saiku+Kylin 的分析平臺能實現的分析能力,很大程度取決於 Kylin 支援的 SQL 和 Mondrian 生成的 SQL的共通點,經過測試,Kylin 能對絕大多數 SQL 提供友好支援,可以和 Saiku 進行完美結合。

總結

Saiku 作為分析平臺,提供視覺化的操作,能方便的對資料進行查詢、分析,並提供圖形化顯示,但是,Saiku 有一定的使用門檻,特別是對國內的使用者來說,所以,可能需要一些定製開發。

Kylin 作為分析引擎,根據空間換時間的思想,對資料進行預計算,從而提供極高的查詢效能,並且提供 ANSI SQL 介面,可以極大程度滿足日常查詢需求。但是,Kylin 對 Hadoop 生態版本有較高的要求,所以,儘量按照官方推薦版本安裝配置。

PS:本文采用 Saiku 3.7.4 和 Kylin 1.2。

相關推薦

Saiku + Kylin 分析平臺探索

背景 為了應對各種資料需求,通常,我們的做法是這樣的: 對於臨時性的資料需求:寫HQL到Hive裡去查一遍,然後將結果轉為excel傳送給需求人員。對於週期性的、長期性的資料需求:編寫指令碼,結合Hive跑出結果,將結果寫入對應DB庫,然後開發前端頁面對結果進行展現。這樣做簡潔明瞭,但是,有很明顯的問題

開源BI報表及OLAP分析平臺OPENI(二)—搭建Eclipse下的Openi開發環境

接著上節的demo來看如何在Eclipse下搭建Openi的開發及除錯環境. 一.下載openi-1.3.0-RELEASE-src 二.新建web project 在MyEclipse下新建web project:openi 1.openi-1.3.0-RELE

使用Saiku+Kylin構建分析OLAP平臺

http://lxw1234.com/archives/2016/05/647.htm 關於Kylin的介紹和使用請參考之前的文章 《分散式大資料多維分析(OLAP)引擎Apache Kylin安裝配置及使用示例》 Kylin對外提供的是SQL查詢介面,基於Kylin構

大數據量分析項目Kylin調研二期

not creat aps trac 找到 概念 cati lee shell命令 一、 cube構建步驟 登錄頁面 創建Project      同步數據      1) 加載Hive表 2) 從同步的目錄中導入,即將上張圖中左側

分散式大資料分析(OLAP)引擎Apache Kylin安裝配置及使用示例

Apache Kylin是一個開源的分散式分析引擎,提供Hadoop之上的SQL查詢介面及多維分析(OLAP)能力以支援超大規模資料,最初由eBay 開發並貢獻至開源社群。它能在亞秒內查詢巨大的Hive表。 Kylin OLAP引擎基礎框架,包括元資料(Metada

如何給 8000 人開一張報表的權限?蘇寧報表平臺應用實踐!

數據 維度 多維分析平臺 蘇寧 伴隨“大數據”浪潮的來臨,數據決定成敗的觀念已波及社會的各行各業,深刻影響和改變著人們的思維。在工業界,數據已成為企業核心競爭力之一,越來越多的企業已經開始不滿足於單純的收集存儲數據,都開始嘗試通過不同的途徑發掘數據寶藏。假設數據有 10 個維度,每個維度有 1

給一句 SQL 就能做分析

就是 nbsp 分析 學習 127.0.0.1 多維 返回 應用程序 web 應用 上一篇我們以 Excel 文件數據集為例,介紹了如何把 Excel 的數據透視表嵌入到俺的應用程序中。愛學習的同學會問了,Excel 數據透視表可以使用 Excel 裏取到的任何數據,比如數

巧用模板變換分析表格樣式

自定義表格樣式 多維分析展現報表時,潤乾報表提供了一套預設的表格樣式,統一的表格樣式可以使業務人員減少報表美化的工作量。然而預設的樣式不可能迎合所有使用者的審美,為此潤乾提供了自定義表格樣式的功能,供使用者實現個性化的需求,下面小編就來教你如何改變預設表格的樣式。 先來看下預設的表格樣式,下

如何使用自定義模板實現個性化分析

自定義表格樣式 多維分析展現報表時,潤乾報表提供了一套預設的表格樣式,統一的表格樣式可以使業務人員減少報表美化的工作量。然而預設的樣式不可能迎合所有使用者的審美,為此潤乾提供了自定義表格樣式的功能,供使用者實現個性化的需求,下面小編就來教你如何改變預設表格的樣式。 先來看下預設的表格樣式,下

如何使用Java資料集進行web端的分析操作

看到文章標題,顧名思義應該也曉得本篇文章的重點內容是要說啥了吧?   沒錯,就是想針對程式資料集上的多維分析嘮幾毛錢的!所謂程式資料集,是指資料來源不是來自檔案和SQL,而是由程式現計算出來的。這種情況在許多BI系統中都會出現,BI系統自己管理資料模型,把資料庫擋在後面,不會直接開

輕量級可嵌入分析後臺

問題的提出 多維分析(BI)系統後臺資料來源通常有三種選擇。一、普通資料庫;二、專業資料倉庫;三、BI 系統自帶的資料來源。 但是,這三種選擇都有各自的問題。普通資料庫一般都是行式儲存,很難獲得多維分析希望的高效能,只適用較小資料量。專業資料倉庫有不少是列式儲存的,效能問題不大,但是價格都比較昂貴,建設、

跨庫分析後臺的實現

問題的提出         多維分析(BI)系統後臺資料常常可能來自多個數據庫,這時就會出現跨庫取數計算的問題。 例如:從效能和成本考慮,往往會限制生產庫的容量,同時將歷史資料分庫存放,由ETL定期把生產庫中新產生的資料同步到歷史庫

在Java Web專案中引入Mondrian分析框架

本文完全轉載自:http://www.linuxidc.com/Linux/2014-09/107008.htm 我也是初學,為了方便以後檢視,所以轉到自己部落格上了。 -------------------------------------------------------------

如何使用預定義語義快速實現資料的分析

在《給一句 SQL 就能做多維分析》中我們介紹了潤乾報表可以基於一句 SQL 來做資料庫資料分析,今天我們來繼續說道說道,看看下面這個例子: 這個分析資料集來自回款單,由回款單 ID,回款日期,金額,銷售 ID 四個欄位組成。 對應的 sql 為:select 回款單 I

如何在WEB端進行Excel 透視表式的分析

提起 Excel 一定都不陌生,尤其是裡面的資料透視表,對於需要進行聚合分析的情況,根據原始資料勾勾選選就能完成,用起來是倍兒爽吧。 那麼,操作起來這麼省心的功能要是能移到 WEB 上,嵌入俺的應用程式裡,是不是就完美了?so easy! 雷鋒同志馬上來教你做這事兒。

潤乾報表分析功能

可直接閱讀原文:http://c.raqsoft.com.cn/article/1535678317741?r=alice   分析控制元件功能 拖拽欄位 首先從分析控制元件本身的功能入手——開啟分析頁面第一件事是做什麼呢?對啦,當然是要展示報表了~脫離敲打複雜的查詢語句,

Quick BI 支援多種資料來源進行分析

一、摘要 隨著網際網路的高速發展,資料量爆發式增長的同時,資料的儲存形式也開始呈現出多樣性,有結構化儲存,如 Mysql, Oracle, SQLServer 等,半結構化甚至非結構化儲存,如HBase,OSS 等。那麼從事資料分析的人員就面臨著從多種多樣的資料儲存形式中提取資

Quick BI 支持種數據源進行分析

規則 不同 最終 包含 外部 標識 阿裏雲數據庫 大型 p s Quick BI 支持多種數據源進行多維分析 一、摘要 隨著互聯網的高速發展,數據量爆發式增長的同時,數據的存儲形式也開始呈現出多樣性,有結構化存儲,如 Mysql, Oracle, SQLServer 等,半

深度乾貨 | 分析中的 UV 與 PV

1. 概念1.1 UV 與 PV對於網際網路產品來說,UV 與 PV 是兩個非常常見的指標,並且通常都是分析的最基礎指標。UV 一般來講,是指使用產品(或產品某個功能)的獨立使用者數。PV 則來源於網站時代,一般指網站(或網站某個頁面)的頁面瀏覽量,在移動網際網路時代,則一般

鏈家大資料分析引擎實踐

前言大資料背景下,傳統關係型多維分析 ROLAP 引擎遇到極大挑戰,因而鏈家轉向基於 Hadoo