1. 程式人生 > >如何使用預定義語義快速實現資料的多維分析

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

《給一句 SQL 就能做多維分析》中我們介紹了潤乾報表可以基於一句 SQL 來做資料庫資料分析,今天我們來繼續說道說道,看看下面這個例子:

這個分析資料集來自回款單,由回款單 ID,回款日期,金額,銷售 ID 四個欄位組成。

對應的 sql 為:select 回款單 ID, 回款日期, 金額, 銷售 ID from 回款單

下圖左邊的報表就是按照銷售 ID 這個維度分組,對回款金額進行彙總分析的結果:

undefined

多維分析就是這麼簡單,寫一條 sql 語句,拖拖拽拽就出爐了。像上面這個例子,如果列名是英文的,需要顯示中文名,可以修改 sql 語句,通過 as 給每個欄位取別名;如果分析結果顯示的是銷售 ID,希望顯示銷售名字,可以修改一下 sql,回款表 left join 僱員表就能解決!相信看過了

《給一句 SQL 就能做多維分析》,對這些小技巧一定都記憶猶新。

但是,這樣就完美了嗎?你的多維分析就止步這裡了嗎?當然不能,我來幫你分析一下:

1,as 確實能解決列名親民顯示的目的,但如果資料庫裡的欄位全是英文的呢?這是有可能的,而且是大大可能的,那每個 sql,就需要你吭哧吭哧挨個寫 as,是不是不太爽?而且同一個列名,在不同的 sql 裡可能會取不同的別名,感覺是不是亂糟糟的?

2,通過 left join 跟程式碼表關聯,就可以不通過 ID,直接通過名稱分組彙總,但試想一下,如果名字有同名的,如何分開統計呢?再想想,和程式碼表關聯,總要知道兩表之間的親戚關係吧,這對前端分析人員要求是不是過分了點?

所以啊,如果只是簡單的,個別的資料庫資料分析,寫個 sql 能搞定也就作罷了,但現實往往給我們提出了更高的要求,那如何迎戰呢?這就是我們今天要給大家隆重介紹的多維分析中的元資料和字典,簡單來說,就是基於預先定義好的語義層來進行多維分析,前端分析人員不需要了解,只管拖就行。我們先來體驗一把:

還是從回款單裡取數:

undefined

undefined

分析資料集直接顯示別名“銷售”,而不是“銷售 ID”,查詢語句並未因此而變複雜!

繼續往下看,如何將分析結果中的銷售 ID 顯示為銷售名稱?

銷售列點【顯示值】選單,選擇銷售的程式碼表

undefined    undefined

銷售 ID 秒變成大名:

undefined

如果只想看部分銷售的回款情況呢?銷售列點【資料過濾】選單,設定過濾條件:

undefined         undefined

下拉選單直接顯示銷售名字,而不是 ID, 過濾結果如下:

undefined

大家是不是發現,整個過程,都沒有修改查詢語句,而且我們分析的資料集裡也沒有出現銷售姓名列,這就是預定義語義層的功勞,這樣是不是讓前端分析人員輕便了不少?下面我們就來介紹一下如何讓前端分析人員用上多維分析的語義層:

第一步:開啟元資料層設計器,系統選單下選擇【資料來源】,配置好資料來源並連線,連線之前,當然要保證所連線資料來源已啟動哦。

undefined

演示資料用的是潤乾自帶的 dqldemo 資料庫,所以該資料庫不用配置,通過【服務 - 啟動示例資料庫】選單啟動資料庫後,在上圖所示對話方塊中直接連線就 OK 了。

第二步:建立元資料檔案

檔案選單欄下選擇【新建】,選擇元資料:

undefined

系統選單下選擇【匯入資料庫表】,選中需要的物理表,匯入表結構:

undefined   

給匯入的表設定主鍵,給欄位設定別名,這樣就可以直接用別名寫查詢語句,而不用重複用 as 了:

undefined

undefined

給維欄位設定更直觀的維名,這樣頁面顯示值下拉列表顯示會更友好:

undefined

製作好的元資料檔案儲存為字尾為 lmd 的檔案。

第三步,定義字典檔案

開啟前一步做好的元資料檔案,系統選單下選擇【生成字典】,一個字典檔案就自動生成了。

在字典檔案裡設定僱員的顯示列欄位,銷售名字就可以用於分析結果和過濾條件的下拉顯示:

undefined

製作好的字典檔案儲存為字尾為 dct 的檔案。

到此,語義層定義就做完了,下面就是如何把語義檔案部署到我們的應用中,能在頁面上玩轉起來!如果你還沒有自己的應用,那可以直接在潤乾報表內建的 demo 應用裡直接釋出,過程很簡單,一起了解一下:

第一步,啟動 DQL 服務

因為有了元資料檔案,所以需要有 DQLServer 伺服器來進行語義的解析,點選【** 服務 - 啟動 DQL 服務】** 選單,在隨後彈出的 DQL 伺服器控制檯中啟動 DQL 服務即可:

undefined

當然,如果你用的是你自己的資料庫,此刻資料庫保持啟動狀態是必須的哈!

細心的讀者可能已經發現,DQL 這個詞在介面中出現過多次,它到底是什麼東西嗎?嗯,現在先不去管它,用起來再說,以後我們還會有專門文章來講到底什麼是 DQL,以及為什麼會出現它。

第二步,釋出

通過【服務 - 釋出並瀏覽 DQL 分組分析】選單打開發布對話方塊,選擇前面製作好的元資料檔案和字典檔案:

undefined

點選【釋出】按鈕,後臺程式會自動啟動內建的 tomcat 服務,並開啟分組分析頁面:

undefined

點選資料集,編輯一條最簡單的查詢語句,正如我們開篇所演示的,就可以開始語義多維分析的美妙之旅啦!

是不是感覺內建環境的釋出相當簡單?但如果有了自己的應用,元資料檔案和字典檔案的部署還是需要進一步深入學習,並根據需求靈活處理的,有興趣深挖的,可以按以下路線去探探——

元資料檔案需要部署到 DQLServer 伺服器,如果您希望部署獨立的 DQLServer,可以到《分析教程》中檢視關於 DQL 伺服器部署整合的專題;

字典檔案是部署到 web 應用目錄下,並在釋出分析控制元件的頁面裡通過 JS API 去靈活設定,關於這部分的介紹,可以到《分析教程》JS API 相關主題中檢視。

    關於有語義的多維分析,今天我們就先嘮五毛錢的,有木有覺得,雖然語義層需要預先定義,還需要部署服務,但卻是一勞永逸的,管理井然有序,前端分析靈活方便。其實語義還能幫您做更多,要不要這麼誇張?不信就趕緊下載親自用用囉!

作者:yangcl 連結:http://c.raqsoft.com.cn/article/1535687623119?r=xiaohuihui 來源:乾學院 著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。