E-MapReduce结合DataV进行数据展现
背景
大部分我們的數據處理作業在完成計算以后,都希望能夠把結果可視化的展示出來,形成類似每日報表這樣的東西,供大家直觀的查看。
或者能有類似阿里雙11那種實時的數據大屏效果就更好了
如果自己去做一個類似的數據可視化的系統會非常復雜,我這里要介紹的就是E-MapRediuce的處理結果,如何通過阿里云已有的DataV工具來進行展示。
它有如下的一些特點:
可視化數據圖表是實時的。
只要數據一發生變化,圖表就會立刻變化。權限控制
可以限制只有主子賬號可以查看,同時也能指定報表公開給所有人。1. 計算數據
我這里會列舉2個場景作為示范,一個是離線的場景,報表數據每天計算一次,另一個是在線的流式場景,報表數據每10分鐘更新一次,介紹他們大致的處理方式
a) 離線場景
示例場景介紹:
用戶通過日志服務(SLS)將服務器的訪問日志收集上來,然后投遞到OSS,并起一個E-MapReduce集群來進行處理。分析出當天的pv,uv或其他的業務指標。
這個處理過程請參考這里使用Hive處理服務器日志
最終能得到需要的結果hive表。
b) 流式場景
示例場景介紹:
用戶通過日志服務(SLS)將服務器日志收集上來,然后在E-MapReduce集群中,運行一個Spark Streaming作業,對數據進行業務分析。
這個處理過程的詳細說明將在下一篇中詳細介紹。
2. 報表數據導入數據庫
目前DataV還不能直接支持使用HDFS數據,但是可以支持API接口和RDS(Mysql)的數據源。我們這里選用RDS作為我們的數據源,當然如果你有自己的Mysql數據也可以直接使用
創建表
我們需要在數據庫中創建一張表,我們示范創建一張簡單的pv表,如下
CREATE TABLE `pv` (`page` varchar(32) NOT NULL,`amount` int(11) DEFAULT NULL,PRIMARY KEY (`page`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8其中page是用戶訪問的頁面的id標號,amount是該頁面被訪問的次數。
主鍵是page。
a)離線場景
經過上面的離線計算我們得到了一張Hive表,我們使用Sqoop將他導入到RDS中去。
sqoop export --connect jdbc:mysql://{ip}:3306/{dbname} --username {user} --password {pwd} --table {tablename} --export-dir {hdfs_dir} --input-fields-terminated-by '\001'這里其他的參數都好理解,有2個需要說明下:
hdfs_dir
這個是Hive對應的hdfs路徑,我們如何從Hive表中得到呢?
我們在hive中使用如下命令即可查詢到表對應的HDFS路徑
結果如下,其中的location后面的值就是我們需要的路徑了:
--input-fields-terminated-by '001'
這個是默認的Hive都會使用 001 來做分割符,所以我們需要把每行用這個分割成多個字段,然后保存到RDS中。分割出來的每一個字段對應RDS中表的每一列
b)流式場景
流式場景就是直接在Spark Streaming中直接寫數據庫,后續我們會寫一個文章來詳細介紹這個過程。
3. 創建并配置DataV
完成了上面的數據庫準備和數據導入,現在我們就可以開始展示這些數據了。
登錄DataV
i 創建數據源
在首頁先創建一個數據源,點擊數據源新增
這里我選擇rds,其實mysql和rds是一樣的,你如果是自己的mysql也是一樣配置
創建完成以后會看到一個數據源
ii 創建項目
然后我們新建一個項目,由于默認的幾個都是很復雜的圖,我們只需要一個簡單的,所以你需要手動的刪除掉這些用不上的組件。這會花費一些時間。
iii 設置頁面
完成以后,我們先設置屏幕的大小,點擊右側的“頁面設置”,設置屏幕大小
考慮有各種不同的頁面,我們先設置小一點,設置為寬度:800,高度:600
然后“縮放方式”選擇:全屏鋪滿, 不過會導致比例有點失真,你可以根據你的實際情況進行調整。
iv 添加圖標并設置
我們從常規圖表中選中“梯形柱狀圖”,并進行拉伸,擴大到適合的大小。
接著,設置我們的數據綁定到這個圖上,點擊右側的數據
選擇“數據源類型”:數據庫
選擇“選擇數據庫”:一開始我們創建的那個數據源
在“SQL”中寫語句,以我們的示例為例,我們的數據庫中的pv表有2個字段一個是page,代表用戶的訪問頁面id,一個是amount,代表頁面被訪問的次數。
我們看到梯形柱狀圖需要x,y兩個坐標軸的數據,x對應類目也就是我們的頁面id,y對應值,也就是訪問量,我們使用如下的sql來
這樣就把所有訪問頁面的前十給展示出來了
類似如下的效果:
然后,如果你的數據是動態更新的,那么你可以設置下面的
“自動更新”,設置一個合適的頻率來更新圖標,每當數據變化就可以立刻看到。
v 權限設置
默認情況下,這個圖表只可以被主子賬號訪問。
如果要被所有人訪問,在屏幕的右上,有一個分享按鈕,點擊打開后會產生一個公開的訪問地址,所有人都可以訪問
總結
以上是生活随笔為你收集整理的E-MapReduce结合DataV进行数据展现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于C10K、异步回调、协程、同步阻塞
- 下一篇: 拼音u的教案一等奖