報表系統的雄心

這周有朋自遠方來,聊了對報表工具的看法,因此專門寫篇文章來談談報表系統的未來。

筆者知道不可能有十全十美的報表系統,畢竟任何一個行業和企業受自身客觀環境的限制,但表哥嘛,總要有點理想和追求,就好比到一定年紀會自問,我的人生追求到底是啥?表哥到了一定階段也同樣,我的終極目標是什么?

首先合適的就是最好的。

脫離了業務驅動的任何IT系統,沒有價值,因此,從客戶需求出發,打造出適合某個細分市場的報表系統,就是最好的報表系統。

現在報表工具市場百花齊放,自有存在的道理,所謂的大數據報表引擎,在相當長的時間內,對于很多企業來講,是沒有必要的,大炮打蚊子,那也是極其浪費的事情。

同時,大數據讓客戶的數據意識漸起,因此,即使針對的是小數據的報表工具,也能趕上一波紅利。

但有一點是值得注意的,由于技術上沒有特別的差異性,大家互抄也很容易,因此,客戶服務能力就至關重要了,你賣的不僅是產品,更多賣的是服務。

接下來,我們切入正題。

任何代表趨勢性的發明和系統,都來自最前沿的應用領域,報表系統最核心的是對于數據的處理和展現,因此,以大數據應用為核心,或者擁有海量大數據的企業,其對于報表系統的訴求和應用,應能代表這個技術的發展方向,互聯網企業可以向BAT看齊,傳統企業可以向運營商看齊,比如中國移動曾經打造了世界最大規模的數據倉庫系統,在那個時候,引領了數據倉庫建設的潮流。

那么,如何打造極致的報表系統?

首先,極致報表系統的打造,不是一個工具或系統就能單方面解決的,客戶自身對于報表的認識和投入是至關重要的。

為什么?

因為報表系統能力不僅取決定于工具能力,也依賴企業的數據管理能力,而數據管理能力在各個企業的情況不同,同樣的工具在不同的企業應用那也是千差萬別,好馬也要配好鞍。

數據管理能力除了數據質量,最重要的是數據標準化能力。

一個企業的報表成千上萬,運維開發團隊疲于奔命,這是有問題的,說明它的數據管理能力還未到達一定的水平,當然,這也是大多企業的常態。

產生這個問題的一個根本原因是標準化能力不足,報表由指標組成,一個企業的基本指標非常有限,但指標的組合可以無窮無盡,因此,報表可以無窮無盡,這是禍根。

大多數企業做不了報表標準化的事情,有兩個根本原因:

一是IT報表團隊本身的問題,BI領域一直有一個挑戰,就是到底是以滿足業務人員需求為主還是致力于打造一個平臺,更致命的是,BI人員所謂的滿足需求并不是在完成一個功能,而是價值也許只有幾天的一段取數代碼,其是無法實現很好的傳承的。

但打造一個平臺是何其艱難,因為這里的平臺不僅僅指功能,不是搞個自助配置工具就算是了,還包括數據平臺,你可以叫作數據中臺,核心就是要打造一層標準化的數據層,對于報表來講,就是指標。

有種技術叫SOA,其對于IT系統是何其重要,但報表系統卻很少有類似的堅持的東西。

指標化當然很難,筆者這里不談具體的實現方式,只是提醒每個企業的BI團隊引領者應該思考這個問題,要相信企業大多數報表是可以指標化的,抓大放小搞定80%,就成功了,的確有部分報表難以指標化,比如有狀態的指標,但這個很少且無關大局。

二是IT報表團隊與業務人員的博弈,業務人員屁股決定腦袋很正常,但無論報表做的多急,要的多快,報表團隊還是要注意控制節奏,因為大多數企業,業務人員提報表需求沒有成本,決定了讓業務人員自發減少需求是無解的,到了一定階段,你做的再快,也無法帶來滿意度的提升。

報表團隊總要預留些余糧和人力,規劃一下自身的藍圖,研究下更高效的支撐方式,一個IT部門,大多時候,報表規劃建設一筆帶過,買個工具唄,更不會關注到標準化這種事情,你不提,誰都不會提。

報表標準化也不可能讓業務人員提出來,只有自力更生了,而且,即使你提出來了,業務人員還可能不理解。

報表團隊深陷事務型工作而難以抽身,很大程度反映了其視野的局限性,習慣用人力的投入解決一個無解的問題,報表管理者是需要反思的,我們總說表哥是老實人需要做老實事,但規劃上絕不能含糊,大數據時代,數據創新恰恰應該放到報表團隊的核心位置。

在說理想的報表工具前,筆者特意提了企業的環境,是為了說明,任何有牛逼報表產品的合作伙伴,在推廣的時候,需要找到好的客戶,有時產品營銷失敗不是你的錯,而任何一個企業,在買報表工具前,首先要知道,工具僅僅是手段,不是買了就萬事大吉了,你還需要在業務和技術上做些投入和努力,否則,可能也發揮不了工具的價值。

其次,速度是極致報表系統的一個基本要求。

筆者早幾年接觸到淘寶的數據魔方的時候,是非常驚訝的,它海量的數據、極致的速度,多維的展現,是多么的完美,后來到網上找了很多相關資料,才知道這個產品在數據處理上做了大量的定制改造,才使得它有這個表現。

那么能否有一個更加通用的報表后臺引擎,在降低對于數據定制化處理要求的同時,提供極速的前臺多維查詢展現?

雖然我們用HBASE實現了指標庫,后臺指標數據幾百億,但其對于數據的定制要求太高,在很多場景難以適用,而且,似乎沒有好的成熟前臺能夠適配,自己全套定制做也不大可能。

傳統的報表工具引擎側重展現,但對于后臺數據大多時候僅僅起到一個接入的作用,它的設計理念,可以認為是以重前臺,輕后臺的方式,盡可能覆蓋更多的后臺數據的形式去滿足市場需求,但帶來的問題是,后臺數據深度支撐能力太弱了,因此無法滿足海量多維度數據的快速查詢要求。

對于擁有海量數據的企業,需求已經在改變,有時,寧愿自己做報表,也不再愿意采購報表工具產品,這是有其原因的。

筆者已經知道當前市場上有不少新型的OLAP產品,諸如Kylin等產品的企業也在崛起,筆者沒用過,無法做出評價,但這個的確代表了方向。

所以說速度越來越重要,還因為當前有一種趨勢,分析型和清單級報表需要融合成一體,也就是說,從指標可以下鉆到清單,這可以幫助實現分析執行一體化,而以前清單往往靠取數臨時實現,造成了兩者的不一致,降低了異動核查的效率。

比如運營商其實有兩套報表,一套叫生產報表,一套叫經分報表,前者以滿足一線生產為主,后者以滿足管理者分析需要為主,以前很難有一種報表工具能同時支撐這兩種數據查看模式。

海量,快速,多維,這應是未來報表引擎的要求吧。

再次,開放性是極致報表系統的一個根本訴求。

其實,所謂開放和封閉是相對的,如果你的封閉體驗和性能做到了極致,客戶可以犧牲一定的靈活性來適應你的產品。

現在諸如數據庫一體機大行其道,因為好用嘛,暫時也沒有好的替代品。

但是,在報表產品上,封閉可能成為不了趨勢,筆者以前談過,越是面向前端的產品,用戶對于靈活性的訴求會劇烈增長,直到抵消產品封閉帶來的價值。

報表工具有前端展現和后臺數據引擎兩個基本模塊,假如你有強勁的后臺數據引擎,就需要考慮,前端的展現是否可以開放接口,能否提供一套API?要知道,再牛逼的前臺展現搞不過EXCEL,也搞不過PPT的組裝,更搞不過各個企業復雜的業務管理、機制和流程要求,比如,報表展現要打個水印怎么辦? 加入一段安全控制代碼行不行?

當然,不僅僅是前臺開放,后臺也需要,比如報表數據的刷新,觸發方式多種多樣,總要有些定制化能力,提供更多的可配置性和開放性。

再次,適配性是極致報表系統的一個現實要求。

各類報表產品顯然對于企業系統環境是有要求的,但不要為了極致性能而忽視現狀和通用性,比如SPARK2.0剛剛推出,就不要說產品只支持2.0,假如是基于hadoop的,則需要盡可能兼容大多數版本。

一般來說,假如只是為了打造一個更快的報表系統,企業不會去改變它現有的技術架構體系,畢竟報表始終是IT的下游系統。報表系統更應該考慮的是如何盡可能的適應當前大多數企業的現狀,與時俱進吧。

在大數據時代,產品的競爭力,很大程度是取決于你版本的更新速度,因為客戶的需求變化很快,技術更迭也很快,必須要適配的足夠快,已經有太多牛逼的公司由于緩慢的產品更迭速度而備受客戶詬病,一旦口碑做壞了,就一去不復返了,報表工具不是一種容易硬捆綁的產品,而且這個圈子并不大。

再次,談談報表前臺吧。

當前,很多報表產品都已經有拖拉鉆取的功能,但建議的一個設計原則是,能簡單就盡量簡單點吧,一個報表產品前臺,不要提供太多的選擇,最好還能分一下用戶層級。

大多企業一線人員,是報表的主要使用者,根本不會拖拉鉆取,它如一個嬰兒,報表是喂給它的,只要看得清楚,速度快就行了,不要奢望它會用到你哪怕30%的功能,給個搜素、收藏夾、導出功能就足夠了,以前OLAP產品所以用不好,就在于使用門檻太高,很多使用人員,甚至不知道啥叫維度,啥叫指標,你讓他拖什么?

高級的定制功能,設計步驟也要點到為止,配一張報表,最多是三步,選擇后臺表,選擇指標和維度,報表設計(比如多表頭啥的),生成報表,當然還有調度啥的,就不細談了。

滿足大多數人的需求,忽略部分高級用戶的訴求,這應是一個設計原則吧,我記得以前做報表總是強調多表頭啥的,但真實情況是有幾個人真會用,而且馬上審美疲勞,還不如拉到EXCEL里面搞搞更漂亮。

不過,話說回來,各個企業的情況不同,筆者這個判斷肯定是有失偏頗的,且自己離開報表制作很多年了,權當參考吧。

最后,還是要提提報表企業的雄心吧。

不少報表企業被大企業收購了,很大原因是它形成不了生態鏈,一旦產品同質化,就只能依附于大系統的巨無霸生存,這種結合顯然于雙方都有利,一個將自身產品的價值鏈進一步延伸,一個依附于某個數據庫或者某類系統,能夠獲得額外的性能提升,以此形成新的差異化競爭優勢。

但是,弊端也很明顯,跟著巨無霸往往意味著速度變慢,創新變慢,那么,報表企業到底如何才能施展自己更大的抱負呢?

單靠一款報表工具打天下其實風險很大,因為維度太單一,前段時間,吳伯凡在《日知錄》中提企業競爭力的時候,談到的降維打擊是很有啟發意義的。

筆者給一個建議,如果你的報表產品當前足夠好,可以考慮下生態的擴展,看看除了工具,客戶的報表真正的痛點是什么,比如前面提到的數據管理能力,從數據質量、數據管理、數據分析到數據挖掘,這是當下很多企業的短板,也是你進入的機會。

畢竟,大數據時代,工具誠可貴,數據價更高。


本文作者:傅一平

來源:51CTO

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394766.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394766.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394766.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

02----mockjs基本使用

一.mockjs基本使用 1.安裝mockjs cnpm install mockjs --save-dev2.新建mockjs文件夾/index.js // 引入 Mock var Mock require(mockjs)// 定義數據類型 var data Mock.mock({// 20條數據"data|20": [{// 商品種類"goodsClass": "女裝",// 商品…

vuefullcalendar怎么判斷切換上下月_房間太多、樓上樓下,終極解決家里wifi信號無縫切換問題...

相信不少人有我一樣的煩惱,房間太多,或者樓上樓下,家里的wifi信號總是不能無縫切換。路由器放在配電箱,除了客廳信號不錯外,一旦到了其他房間,掉線、網速慢等問題讓人很苦惱。特別是和小伙伴一起玩游戲一邊…

C語言程序順序結構1交換變量,如何將c語言中結構體內的所有類型變量的值輸出來...

教了多年《C程序設計》課程,大多學生覺的這門課程難學。其實,按照我們現在的教學大綱和教學要求,只要同學們掌握一些方法,克服心理上畏難、不輕言放棄,是完全可以學好的。《C 程序設計》的內容很豐富,按照我…

尼古拉斯 android_圣尼古拉斯和Alexa的訪問

尼古拉斯 android祝大家圣誕節快樂,并祝大家晚安! (Happy Christmas to all, and to all a good night!) Inspired by the holiday season, emerging voice-first technology, and too much eggnog — I’ve twisted the classic poem from Clement Clar…

github 進階說明

目錄 github 進階說明前言三個目錄樹重置 git reset增加路徑的reset檢出 checkout帶路徑的checkout倉庫數據對象其他資料github 進階說明 前言 我們可以什么都不管,照搬命令來完成我們大部分git工作,但是如果想要進一步,就要深入理解git的實現…

手把手教你 Spark 性能調優

0、背景 集群部分 spark 任務執行很慢,且經常出錯,參數改來改去怎么都無法優化其性能和解決頻繁隨機報錯的問題。 看了下任務的歷史運行情況,平均時間 3h 左右,而且極其不穩定,偶爾還會報錯: 1、優化思路 任…

pytorch線性回歸代碼_[PyTorch 學習筆記] 1.3 張量操作與線性回歸

本章代碼:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson1/linear_regression.py張量的操作拼接torch.cat()torch.cat(tensors, dim0, outNone)功能:將張量按照 dim 維度進行拼接tensors: 張量序列dim: 要拼接的維度代碼示例&#…

軟考考前沖刺第十三章UML建模

1.如果一個對象發送了一個同步消息,那么它要等待對方對消息的應答,收到應答后才能繼續自己的操作。而發送異步消息的對象不需要等待對方對消息的應答便可以繼續自己的操作。 2.部署圖描述了一個運行時的硬件結點,以及在這些結點上運行的軟件組…

sqlalchemy_SQLAlchemy使ETL變得異常簡單

sqlalchemyOne of the key aspects of any data science workflow is the sourcing, cleaning, and storing of raw data in a form that can be used upstream. This process is commonly referred to as “Extract-Transform-Load,” or ETL for short.任何數據科學工作流程的…

c語言枚舉代替雙switch,C語言 使用數組代替switch分支語句降低圈復雜度

#include typedef int(*CALCULATE_FUN)(int, int); //定義函數指針typedef struct tagStruct{CALCULATE_FUN fun_name; //結構體成員,存放函數char calc_flag; //結構體成員,存放符號}CALC_STRUCT;/* 加減乘除函數聲明 */int fun_add(int x, int y);int …

基礎DP(初級版)

本文主要內容為基礎DP,內容來源為《算法導論》,總結不易,轉載請注明出處。 后續會更新出kuanbin關于基礎DP的題目...... 動態規劃: 動態規劃用于子問題重疊的情況,即不同的子問題具有相同的公共子子問題,在…

《UNIXLinux程序設計教程》一2.1 UNIX 輸入輸出基本概念

2.1 UNIX 輸入輸出基本概念 在任何一種操作系統中,程序開始讀寫一個文件的內容之前,必須首先在程序與文件之間建立連接或通信通道,這一過程稱為打開文件。打開一個文件的目的可能是要讀其中的數據,也可能是要往其中寫入數據&…

python時間計算_日期天數差計算(Python)

描述 從json文件中讀取兩個時間數據(數據格式例如:2019.01.01,數據類型是字符串),并計算結果,打印出兩個時間間隔了多少天。 輸入/輸出描述 輸入描述 json文件名稱datetime.json,格式如下&#…

c語言編常見算法,5個常見C語言算法

5個常見C語言算法十進制轉換為二進制的遞歸程序字符串逆置的遞歸程序整數數位反序&#xff0c;例如12345->54321四舍五入程序(考慮正負數)二分法查找的遞歸函數#include#include#include//十進制轉換為二進制的遞歸程序voidDecimalToBinary(int n){if(n<0){printf("…

利用Kinect將投影變得可直接用手操控

Finally 總算是到了這一天了&#xff01;假期里算法想不出來&#xff0c;或者被BUG折磨得死去活來的時候&#xff0c;總是YY著什么時候能心情愉快地坐在電腦前寫一篇項目總結&#xff0c;今天總算是抽出時間來總結一下這神奇的幾個月。 現在回過頭來看&#xff0c;上學期退出AC…

my-medium.cnf_您的手機如何打開medium.com-我將讓門衛和圖書管理員解釋。

my-medium.cnfby Andrea Zanin由Andrea Zanin 您的手機如何打開medium.com-我將讓門衛和圖書管理員解釋。 (How your phone opens medium.com — I’ll let a doorman and a librarian explain.) Hey did you notice what just happened? You clicked a link, and now here y…

springboot自動配置的原理_SpringBoot自動配置原理

SpringBoot的啟動入口就是一個非常簡單的run方法&#xff0c;這個run方法會加載一個應用所需要的所有資源和配置&#xff0c;最后啟動應用。通過查看run方法的源碼&#xff0c;我們發現&#xff0c;run方法首先啟動了一個監聽器&#xff0c;然后創建了一個應用上下文Configurab…

Django first lesson 環境搭建

pycharm ide集成開發環境 &#xff08;提高開發效率&#xff09; 解釋器/編譯器編輯器調試環境虛擬機連接 設置VirtualBox端口 操作1 操作2 點擊號添加&#xff0c;名稱為SSH&#xff0c;其中主機端口為物理機的端口&#xff0c;這里設置為1234&#xff0c;子系統端口為虛擬機的…

《Drupal實戰》——3.3 使用Views創建列表

3.3 使用Views創建列表 我們接著講解Views的設置&#xff0c;首先做一個簡單的實例。 3.3.1 添加內容類型“站內公告” 添加一個內容類型“站內公告”&#xff0c;屬性配置如表3-1所示。 為該內容類型設置Pathauto的模式news/[node:nid]&#xff0c;并且我們在這里將節點類型…

c語言函數編正切余切運算,淺談正切函數與余切函數的應用

九年義務教育三年制初級中學“數學”課本中&#xff0c;對正切函數和余切函數的定義是這樣下的&#xff1a;在&#xff32;&#xff54;&#xff21;&#xff22;&#xff23;中&#xff0c;∠&#xff23;&#xff1d;&#xff19;&#xff10;&#xff0c;&#xff41;&#…