大部分我們的資料處理作業在完成計算以後,都希望能夠把結果可視化的展示出來,形成類似每日報表這樣的東西,供大家直覺的檢視。
或者能有類似阿裡雙11那種實時的資料大屏效果就更好了

它有如下的一些特點:
可視化資料圖表是實時的。
權限控制
我這裡會列舉2個場景作為示範,一個是離線的場景,報表資料每天計算一次,另一個是線上的流式場景,報表資料每10分鐘更新一次,介紹他們大緻的處理方式
示例場景介紹:
使用者通過日志服務(sls)将伺服器的通路日志收集上來,然後投遞到oss,并起一個e-mapreduce叢集來進行處理。分析出當天的pv,uv或其他的業務名額。
最終能得到需要的結果hive表。
使用者通過日志服務(sls)将伺服器日志收集上來,然後在e-mapreduce叢集中,運作一個spark streaming作業,對資料進行業務分析。
這個處理過程的詳細說明将在下一篇中詳細介紹。
目前datav還不能直接支援使用hdfs資料,但是可以支援api接口和rds(mysql)的資料源。我們這裡選用rds作為我們的資料源,當然如果你有自己的mysql資料也可以直接使用
我們需要在資料庫中建立一張表,我們示範建立一張簡單的pv表,如下
其中page是使用者通路的頁面的id标号,amount是該頁面被通路的次數。
主鍵是page。
經過上面的離線計算我們得到了一張hive表,我們使用sqoop将他導入到rds中去。
這裡其他的參數都好了解,有2個需要說明下:
這個是hive對應的hdfs路徑,我們如何從hive表中得到呢?
我們在hive中使用如下指令即可查詢到表對應的hdfs路徑
結果如下,其中的location後面的值就是我們需要的路徑了:
這個是預設的hive都會使用 001 來做分割符,是以我們需要把每行用這個分割成多個字段,然後儲存到rds中。分割出來的每一個字段對應rds中表的每一列
流式場景就是直接在spark streaming中直接寫資料庫,後續我們會寫一個文章來詳細介紹這個過程。
完成了上面的資料庫準備和資料導入,現在我們就可以開始展示這些資料了。
在首頁先建立一個資料源,點選資料源新增
這裡我選擇rds,其實mysql和rds是一樣的,你如果是自己的mysql也是一樣配置
建立完成以後會看到一個資料源
然後我們建立一個項目,由于預設的幾個都是很複雜的圖,我們隻需要一個簡單的,是以你需要手動的删除掉這些用不上的元件。這會花費一些時間。
完成以後,我們先設定螢幕的大小,點選右側的“頁面設定”,設定螢幕大小
考慮有各種不同的頁面,我們先設定小一點,設定為寬度:800,高度:600
然後“縮放方式”選擇:全屏鋪滿, 不過會導緻比例有點失真,你可以根據你的實際情況進行調整。
我們從正常圖表中選中“梯形柱狀圖”,并進行拉伸,擴大到适合的大小。
接着,設定我們的資料綁定到這個圖上,點選右側的資料
選擇“資料源類型”:資料庫
選擇“選擇資料庫”:一開始我們建立的那個資料源
在“sql”中寫語句,以我們的示例為例,我們的資料庫中的pv表有2個字段一個是page,代表使用者的通路頁面id,一個是amount,代表頁面被通路的次數。
我們看到梯形柱狀圖需要x,y兩個坐标軸的資料,x對應類目也就是我們的頁面id,y對應值,也就是通路量,我們使用如下的sql來
這樣就把所有通路頁面的前十給展示出來了
類似如下的效果:
然後,如果你的資料是動态更新的,那麼你可以設定下面的
“自動更新”,設定一個合适的頻率來更新圖示,每當資料變化就可以立刻看到。
預設情況下,這個圖表隻可以被主子賬号通路。
如果要被所有人通路,在螢幕的右上,有一個分享按鈕,點選打開後會産生一個公開的通路位址,所有人都可以通路