前言
報表工具是一個接近20年的產(chǎn)物了
但是锯梁,直到現(xiàn)在,在各種數(shù)據(jù)信息化的系統(tǒng)中焰情,報表工具的作用陌凳,不僅沒有褪色,反而是因?yàn)樾畔⒒枨蟮脑龃竽谥邸?shù)據(jù)的增多合敦,以及報表工具本身迭代后越來越方便好用,使得它的使用范圍越發(fā)的廣泛了
報表選型也是一個老生常談的話題了
但是验游,直到現(xiàn)在充岛,依然有很多項(xiàng)目組,很多技術(shù)人員并不知道該怎樣正確的選一個合適的報表耕蝉,一個不會讓自己在項(xiàng)目后期掉坑里的報表
本文全文9990字崔梗,大概需要10-20分鐘閱讀,旨在把這么多年總結(jié)下來的一些選型重點(diǎn)注意事項(xiàng)和驗(yàn)證技巧分享給需要做報表選型的技術(shù)同仁們赔硫,讓我們選型變的更有重點(diǎn)炒俱,輕松又有保障
如果有想偷懶同學(xué),也可以直接跳到文章尾部去看結(jié)論爪膊,也有完整的選型指標(biāo)权悟,和對應(yīng)的重點(diǎn)注意事項(xiàng)表格供大家下載使用
常規(guī)選型的誤區(qū)
常規(guī)的選型基本都是做一個功能需求列表(也可能從網(wǎng)上搜來),然后去找廠商應(yīng)答推盛,形式?jīng)]問題峦阁,但很多需求列表卻會有很多誤區(qū):
- 陳年老列表,體現(xiàn)不出當(dāng)前的新技術(shù)耘成,有些指標(biāo)還可能是錯的
- 沒有錯但也沒有用的廢話列表榔昔,任何廠商都可以應(yīng)答全部支持
- 沒有想到重點(diǎn)要驗(yàn)證什么的列表,也都會被應(yīng)答成全部支持瘪菌,沒有區(qū)分度
-
廠家散布在網(wǎng)絡(luò)中的釣魚列表撒会,有些廠商的還算中肯,但也有些廠商會把把一些看似有用實(shí)則無用的所謂獨(dú)有功能說成重點(diǎn)去誤導(dǎo)選型
常見報表工具選型指標(biāo)
這是一個常規(guī)選型表開頭的小部分师妙,在這么短短幾行中就能出現(xiàn)兩個典型的誤區(qū)(圖中標(biāo)出的1和2 )
1.指標(biāo)寫的不夠細(xì)致诵肛,不知道該驗(yàn)證啥
比如中國式復(fù)雜報表這項(xiàng),哪些是復(fù)雜的默穴,哪些需要重點(diǎn)驗(yàn)證怔檩,這里就沒寫清楚褪秀,反而寫了一些卡片式,分組式這類簡單報表薛训,這樣就會誤導(dǎo)選型的人了媒吗,選出來的產(chǎn)品可能根本做不了真正的復(fù)雜報表
多數(shù)據(jù)源支持也是一樣的問題,也是說了等于沒說乙埃,要支持哪些闸英,以及如何支持法,都必須說清楚膊爪,否則這樣的指標(biāo)自阱,所有的廠商都會答復(fù)支持,那這樣的選型還有啥意義米酬?
這類不細(xì)致的指標(biāo)沛豌,會導(dǎo)致選型沒有區(qū)分度,得到的結(jié)果都是支持赃额,但如何支持的卻會導(dǎo)致完全不一樣的后果加派,這是傳統(tǒng)選型表的最關(guān)鍵問題
后面我們會具體說到這兩項(xiàng)指標(biāo)的驗(yàn)證重點(diǎn)
2.錯誤無效的指標(biāo)
像WEB設(shè)計器和APP之類,就屬于錯誤的指標(biāo)了跳芳,為什么呢芍锦?
因?yàn)閣eb設(shè)計器出發(fā)點(diǎn)是美的,想讓做表的人員飞盆,不管是技術(shù)娄琉,還是業(yè)務(wù),都可以方便的打開一個網(wǎng)頁就可以做表吓歇,然而事實(shí)上卻是沒有一個工程師愿意用(不好用)孽水,也沒有任何業(yè)務(wù)人員去用(不會用+不好用+懶)
提供的移動端APP,看起來似乎是個必要的功能城看,但其實(shí)不然女气。報表自帶的APP,不能和整體項(xiàng)目的app集成测柠,本身又缺少用戶組織功能或不合適盆耽,沒法拿來直接用蔫缸,也不好二次開發(fā)補(bǔ)充功能,結(jié)果就是基本上還是沒法用
所以這些指標(biāo)如果列出來店量,就會誤導(dǎo)一些對報表還不太了解的選型人員把它們加到自己的列表中泽篮,不僅把好產(chǎn)品給篩掉了丐膝,還選了不好用的產(chǎn)品
這里了就只舉這兩個誤區(qū)的例子丑瞧,其他的怔接,會在后面系統(tǒng)詳細(xì)的給大家展開分析
我們會從報表功能,BI、填報這幾大方面姿现,分類分項(xiàng)的去列出這些坑,列出每一項(xiàng)指標(biāo)中的重點(diǎn)
讓我們在以后的選型中肖抱,即使隨便拿著一個列表备典,也能有目的,有針對的去驗(yàn)證意述,帶著尖銳的問題去讓廠商應(yīng)答提佣,做到心中了然,手中井然
開發(fā)工具
關(guān)注本地設(shè)計器
BI頁面分析概念逐漸流行后荤崇,有些客戶就提出了一些新想法拌屏,比如是否所有報表都可以在頁面上制作,廠商是否可以提供web端的復(fù)雜報表設(shè)計器术荤?這樣業(yè)務(wù)人員就可以擺脫技術(shù)人員自己制作復(fù)雜報表了
但事實(shí)上卻是倚喂,業(yè)務(wù)人員根本都搞不定中國式復(fù)雜報表,不管是在桌面設(shè)計器還是web設(shè)計器瓣戚,而且他們也根本不想搞端圈,最終做表的任務(wù)還得是要靠技術(shù)人員來做,而技術(shù)人員則沒人愿意用這些web端制表的功能的
原因有2:
1)web端設(shè)計器因?yàn)榧夹g(shù)局限性子库,很難做到像桌面設(shè)計器一樣功能全面舱权,很多復(fù)雜功能做不了,而且開發(fā)效率低下仑嗅,對于有很多報表的項(xiàng)目宴倍,效率就是成本
WEB編輯界面,看上去很美
2)web端設(shè)計器會讓應(yīng)用變的臃腫龐雜仓技,原本報表的應(yīng)用基本只有100多M大小鸵贬,帶上web設(shè)計器后,就可能到了600M以上浑彰,而且web端功能很不穩(wěn)定恭理,會影響服務(wù)器的穩(wěn)定
所以報表工具必須提供桌面設(shè)計器,所有國內(nèi)的優(yōu)秀廠商也基本都是通過桌面設(shè)計器來的做報表的郭变。其實(shí)你想一下颜价,有沒有什么面向程序員的成熟開發(fā)工具是基于WEB的,復(fù)雜報表開發(fā)本質(zhì)上是一種開發(fā)工具
清爽快捷的桌面設(shè)計器诉濒,實(shí)際上也很美
布局方式是Excel式的還是控件式的周伦?
Excel式的更直觀,易上手未荒,易操作专挪,可以看上面的圖,用過Excel的人天生就會對這個界面有一種親近感
國產(chǎn)貨大都是Excel風(fēng)格的,基本都能過關(guān)
其他方式的寨腔,控件式 條帶拖拽式等速侈,都不易擺放,不易對齊迫卢,設(shè)計不便
國外產(chǎn)品和開源產(chǎn)品很多都這樣倚搬,可以批量放棄
可以看看下面這倆,看著就有點(diǎn)蒙圈乾蛤,不知道該怎么弄了每界,完全和我們平時看到的表格不一樣,增加學(xué)習(xí)成本不說家卖,即使學(xué)會了也不好設(shè)計
另外還有一點(diǎn)非常重要眨层,大部分的報表都是有原始Excel表樣,只有類Excel的設(shè)計器上荡,才可以把歷史Excel直接轉(zhuǎn)換成報表趴樱,而其他形式的,那就得全部重新畫榛臼,成本太高
控件式操作方式是國外20年之前第一代報表工具的制作方式伊佃,從來就沒有好用過,直到現(xiàn)在一些國外的開源報表仍然延用這一落伍的方式沛善,這也是他們逐漸沒落的原因了航揉,現(xiàn)在開源報表論壇基本都沉寂了,無人問津了
數(shù)據(jù)源
關(guān)系數(shù)據(jù)庫怎么驗(yàn)證
Oracle金刁、DB2帅涂、SQL Server、MYSQL尤蛮、INFORMIX 達(dá)夢 金倉 Gbase
媳友。。产捞。醇锚。。坯临。焊唬。。看靠。赶促。。挟炬。鸥滨。嗦哆。等等 一大堆我都支持
是不是寫得越多越牛?
其實(shí)這項(xiàng)不用考察婿滓,只要是關(guān)系數(shù)據(jù)庫老速,寫上的沒寫上的統(tǒng)統(tǒng)都會支持,因?yàn)檫@是世界標(biāo)準(zhǔn)凸主!列更多并不更值錢烁峭! 如果有某個奇怪的數(shù)據(jù)庫不能被支持,那大概率是數(shù)據(jù)庫的問題而不是報表工具的事情秕铛,應(yīng)該去找數(shù)據(jù)庫廠商的麻煩。
非關(guān)系數(shù)據(jù)源怎么訪問
1)不能簡單相信“支持xx等”的說法缩挑,咱們需要什么但两,必須自己想清楚,然后去驗(yàn)證
2)所謂的支持供置,是直接做好讀取功能谨湘,還是只給個二次開發(fā)的接口,這二者是完全不同的
比如下面這些常見的非關(guān)系數(shù)據(jù)源芥丧,提供直接能連才方便紧阔。
如果只是給個二次開發(fā)接口也算,那理論上就沒什么不能支持的數(shù)據(jù)源了续担。然則擅耽,如果一切都要自己再二次開發(fā),那買報表工具何用物遇?
txt乖仇,xls,xlsx询兴,csv文件做為數(shù)據(jù)源支持情況
txt乃沙,xls,xlsx诗舰,csv文件做為數(shù)據(jù)源警儒,大部分國產(chǎn)的都允許,有些開源和免費(fèi)的不行
但是你的讀取方式是啥的眶根,提供流式讀取了嗎蜀铲?
如果不是,那大數(shù)據(jù)量極有可能卡死汛闸,怎么解決蝙茶?
報表模型
分組交叉列表簡單報表怎么驗(yàn)證
什么?诸老?隆夯?钳恕?這么簡單的功能也是坑?蹄衷?忧额??
對愧口,是
坑是啥睦番,是不要被列表誤導(dǎo)去驗(yàn)證這些大家都支持的,在簡單報表身上都不用浪費(fèi)時間耍属,都支持M邢!:衿J酒簟!
如果哪個報表工具做不了這個领舰,就沒資格出來混了夫嗓,敢拿出來溜的,這種事都不必再問了冲秽。就象你沒必要去確認(rèn)一輛車是不是有輪子
是不是支持復(fù)雜報表
然而舍咖,復(fù)雜的報表卻不是任何報表工具都支持,或者能支持得比較好的锉桑。復(fù)雜報表的總數(shù)也許不多排霉,但占用的開發(fā)工作量會是大頭中的大頭,一兩個報表就可能把整個項(xiàng)目組給憋死民轴。
那么郑诺,什么報表才算復(fù)雜的呢?
我們來挑幾個中國報表中常見的復(fù)雜表樣杉武,拋磚引玉辙诞,只是為了喚醒大家這個意識,帶著這些復(fù)雜的轻抱,再想想自己有哪些復(fù)雜的飞涂,讓廠商去看是否能做出來,以及如何做出來祈搜。后一條非常重要较店,畢竟硬編碼時什么都能做出來,但這是不是您想要的結(jié)果呢容燕?
多源分片關(guān)聯(lián):
特殊分組梁呈、其他分組:
跨行組計算蘸秘、同期比官卡、排名
特殊分頁毛秘,補(bǔ)空行:
每頁得有表頭表位饭寺,中間固定7行明細(xì),不足的補(bǔ)空行
特殊分欄:
以上挑選的幾個只是作為示例,中國式復(fù)雜報表也完全不至于這些抹恳,選型的時候記得先找出自己項(xiàng)目中最難的報表去找廠商看就是了
如果還想了解更多復(fù)雜報表還有哪些以及到底復(fù)雜在哪里旬薯,可以看這個帖子
中國式復(fù)雜報表復(fù)雜在哪里
呈現(xiàn)輸出
圖形種類是否全
不用考查
很多人喜歡把這個列一大堆,純屬多余适秩。常見圖形對任何成熟報表工具全都支持
而且還有很多開源圖形包,要啥有啥硕舆;太特殊的那是真沒有秽荞,也是到處都沒有,只能自己做
是否支持第三方的統(tǒng)計圖抚官,以及是否可以自定義的統(tǒng)計圖扬跋,才應(yīng)該是考察重點(diǎn)
集成第三方統(tǒng)計圖組件,如echarts凌节,D3等钦听,并可導(dǎo)出打印
這個是必須有的功能
為什么必須有?因?yàn)榈谌降母?全面 簡單倍奢,而且還不要錢F由稀!比如echarts卒煞,使用范圍非常的廣痪宰,很多工程師都喜歡也都用的很熟練
這個功能有兩個要點(diǎn)要驗(yàn)證:
1)是否內(nèi)置支持,而不是開放接口
2)是否可以導(dǎo)出打印畔裕,圖表不是光看就可以的(這點(diǎn)可以就卡掉一部分廠商)
三種打印方式:applet衣撬、flash、pdf
3種方式必須都支持才可以具练,因?yàn)楹芏酁g覽器已經(jīng)不支持applet打印了,用戶也需要根據(jù)項(xiàng)目瀏覽器要求來實(shí)際驗(yàn)證才可以甜无,比如想用chrome瀏覽器扛点,又想用applet打印哥遮,那就不行了
導(dǎo)出功能
普通的Excel、Word占键、PDF導(dǎo)出
對于網(wǎng)格式工具其實(shí)不需要考察昔善,都支持,而且支持的都挺好畔乙,真正的做到了所見即所得
控件式的稍微差一些君仆,遇到格式復(fù)雜的報表,導(dǎo)出可能會有格式紊亂牲距,失真的情況
特殊一些的導(dǎo)出需求返咱,才是驗(yàn)證的重點(diǎn)
比如近年來比較常見的Word報告式報表,這樣的報表有幾個特點(diǎn)
1 篇幅比較長
2 格式要求嚴(yán)格牍鞠,各種縮進(jìn)咖摹,對齊,間隔难述,分頁萤晴,特殊字體都一點(diǎn)不能差
3 文字基本是固定的,但是表格的數(shù)據(jù)是實(shí)時的
就像上面這個胁后,整個報告會有幾十頁店读,如果按照之前傳統(tǒng)的辦法,在設(shè)計器中硬排版攀芯,然后導(dǎo)出成Word屯断,那會非常的費(fèi)勁,而且導(dǎo)出后的Word基本上格式都會有問題侣诺,即使后面再怎么微調(diào)殖演,也做不到完美
這個其實(shí)和在Excel中排版一個Word文檔是一樣的道理,Excel和設(shè)計器都不擅長大段文本的排版年鸳,它們擅長的是圖表
那怎么解決趴久?
如果能同時把Word的排版優(yōu)勢和設(shè)計器實(shí)時圖表的優(yōu)勢利用起來,才是好的解決辦法搔确,可以在Word中先做好文字的排版朋鞍,然后空出需要實(shí)時數(shù)據(jù)圖和表的地方,由報表工具動態(tài)的生成實(shí)時圖表然后插入到Word中
所以必須有這種能把圖表動態(tài)插入到Word模板中的能力才能更好的解決word報告式報表的需求妥箕,這點(diǎn)是必須拿來專門去問問各廠商的
對這個技術(shù)感興趣的滥酥,可以看下這個帖子
怎樣自動把報表插入到 Word 文檔中
大屏 DashBaord
大屏現(xiàn)在很火,很多項(xiàng)目都需要做大屏畦幢,那到底報表工具和是個什么關(guān)系呢坎吻,有沒有一些廠商說的那么神奇,買個工具就能輕松做大屏呢宇葱?
確實(shí)瘦真,如果是簡單的大屏刊头,在PC上顯示的,基本上是所有國內(nèi)報表產(chǎn)品都直接支持的诸尽,工程師用報表就可以直接做出來原杂,比如上面這個,就是工程師自己用報表自帶的echarts統(tǒng)計圖做出來的
因?yàn)橛脩舻男枨髲?qiáng)勁您机,有些廠商會把做大屏專門弄成一個單獨(dú)收費(fèi)的模塊穿肄,但其實(shí)這玩意兒并沒有增加多少專門的內(nèi)容,就是常規(guī)報表工具再加點(diǎn)布局功能际看,值不了多少錢
復(fù)雜的大屏咸产,在專業(yè)LED大屏幕上顯示的,有的超長仲闽,有的很高脑溢,因?yàn)槠聊环直媛侍厥猓枨筇厥饫敌溃旧隙际堑枚ㄖ崎_發(fā)的屑彻,相當(dāng)于一個小型的項(xiàng)目實(shí)施交付了,這時候顶吮,任何所謂大屏模塊都沒多少用武之地的社牲,那些號稱萬能的模板適應(yīng)不了不同的分辨率,全部都得美工手動設(shè)計云矫,然后工程師協(xié)助完成
所以,不要相信有專門做大屏的工具汗菜,沒必有專門花錢買让禀,這東西,簡單情況報表工具直接就能做陨界,復(fù)雜的巡揍,也全部是手工定制來對付
移動端該如何支持?
這也是近年的一個熱點(diǎn)菌瘪,報表紛紛上了移動端腮敌,似乎對報表工具也提出了新要求
其實(shí),這是個偽需求俏扩。因?yàn)楝F(xiàn)在移動端的呈現(xiàn)都是用HTML5糜工,只要支持H5的報表工具都自然適應(yīng)移動端,而近20年來的報表工具都是在WEB機(jī)制的录淡,也天生就支持HTML捌木,根本就不存在所謂專門的移動報表功能
一定要考查,也就是一點(diǎn)點(diǎn)分辨率自適應(yīng)的能力(手機(jī)分辨率種類多嫉戚,還會橫屏豎屏)刨裆,少得可憐澈圈,和大屏工具類似,都值不了啥錢
還有一個常常被提出來的指標(biāo)是有沒有成型的APP帆啃,這還是個偽需求瞬女。
從兩方面來看:
一:項(xiàng)目需要APP,如果自己已經(jīng)做了努潘,那你還要另外一個APP干嘛诽偷?
二:項(xiàng)目需要APP,自己還沒做慈俯,那報表廠商給我們的的APP能滿足需求嗎渤刃?
滿足不了,廠商自帶APP中的用戶管理和功能組織和我們的期望幾乎不可能適應(yīng)贴膘。那么卖子,能提供源碼給我們改造嗎?或者報表廠商能給我們定制開發(fā)嗎刑峡?
答案基本上都是不能滿足需求洋闽,不能提供源碼,不提供定制開發(fā)突梦,那你要這個APP又有什么用诫舅,到時候還是得自己動手
所以,是否提供app宫患,不應(yīng)該成為一個評測項(xiàng)刊懈,只要是報表能發(fā)布成H5的就可以
集成部署
集成還是獨(dú)立?
這個是容易被忽視的一點(diǎn)娃闲,許多使用了國外大牌產(chǎn)品的用戶虚汛,最后經(jīng)常被集成問題折磨得死去活來,甚至有的Linux都不支持皇帮,還得專門擺個Windows配合工作卷哩。
所以選型的時候就得問清楚自己
- 我們有沒有系統(tǒng)?
- 是要買個能集成到系統(tǒng)中的報表属拾,還是要弄兩套系統(tǒng)将谊?
- 我們的系統(tǒng)什么架構(gòu),語言渐白,能集成什么樣的報表
想清楚了尊浓,再帶著結(jié)論去選
至于集成還是獨(dú)立,這里也簡單說一下各自的優(yōu)缺點(diǎn)
無縫嵌入式集成
方便項(xiàng)目管理眠砾,報表作為整個系統(tǒng)的一部分,統(tǒng)一使用用戶系統(tǒng)的權(quán)限,流程等
大部分java項(xiàng)目褒颈,都愿意報表工具可以無縫集成
不能無縫集成,那就只能獨(dú)立部署谷丸,然后一般是通過遠(yuǎn)程web訪問來調(diào)用
獨(dú)立部署也有一定的好處堡掏,可以把報表和應(yīng)用分離,互不干擾
但更多的是不便之處
要管理兩個應(yīng)用 兩個服務(wù)器
要考慮調(diào)用的安全性刨疼,或者單點(diǎn)登錄
報表支持熱加載
大部分廠商都可以做到報表熱加載了
如果做不到泉唁,那就會有大問題,誰的生產(chǎn)機(jī)也不可能會讓頻繁重啟
但是如果報表中用到了程序數(shù)據(jù)源揩慕,這個就多半做不到熱加載了
現(xiàn)在有一些廠商有數(shù)據(jù)中間層亭畜,把數(shù)據(jù)源計算做成解釋執(zhí)行的腳本,可以做到熱加載迎卤。 20%困難的報表都會用到程序數(shù)據(jù)源
帶有計算層的報表架構(gòu)拴鸵,其實(shí)和現(xiàn)在的數(shù)據(jù)中臺的概念差不多
對集群的支持
在WebServer的幫助下,幾乎所有應(yīng)用都可以部署到集群上的蜗搔,報表也不例外劲藐。但這只是初級階段
對于報表來講,真地要支持集群樟凄,還得有集群緩存同步的本事才行
訪問A節(jié)點(diǎn)計算完的報表聘芜,再通過B節(jié)點(diǎn)查看就不用再算了,緩存已經(jīng)同步缝龄,直接用就可以了
如果沒有緩存同步汰现,那跳轉(zhuǎn)了節(jié)點(diǎn)就得重新算,性能會損失很多叔壤;這個所謂的集群就不是個整體瞎饲,只是一堆獨(dú)立機(jī)器的集合而已
安全問題
安全很重要,然而大部分情況卻不用考查
因?yàn)榘傩拢瑘蟊碜鳛橹虚g件產(chǎn)品企软,要嵌入到用戶系統(tǒng)中庐扫,將被用戶應(yīng)用藏在里面或擋在后面
大部分安全問題饭望,就該由主應(yīng)用系統(tǒng)來負(fù)責(zé)了,報表工具不用管形庭,也管不了
但是铅辞,注意但是,有一個很重要的安全問題萨醒,卻必須是在報表工具層面解決斟珊,那就是SQL植入。
報表需要提供參數(shù)富纸,而普通的參數(shù)查詢囤踩,SQL是固定的旨椒,基本無風(fēng)險
但報表會提供通用查詢功能,一般是使用SQL語句替換來實(shí)現(xiàn)的堵漱,這樣帶來了靈活性综慎,但同時就有可能出現(xiàn)SQL植入的風(fēng)險,泄露數(shù)據(jù)庫信息勤庐。有個別廠商還甚至總是使用SQL替換的方式來處理普通參數(shù)查詢示惊。而報表開發(fā)人員的數(shù)據(jù)安全意識和技能一般都不會很高,很可能造成惡劣的后果愉镰,所以必須提前做好防范
至于什么是SQL植入風(fēng)險及如何防范的詳細(xì)信息米罚,可以參考這篇文章
報表的 SQL 植入風(fēng)險及規(guī)避方法
性能與容量
分析性能和容量應(yīng)該如何驗(yàn)證之前,我們先看兩種不專業(yè)的驗(yàn)證說法
兩種不專業(yè)的說法
- 我們可以支撐多大多大數(shù)據(jù)量
- 千萬數(shù)據(jù)幾秒可以響應(yīng)
不說場景丈探,只說性能是不負(fù)責(zé)任的录择。多大數(shù)據(jù)量是和內(nèi)存相關(guān)的,幾秒能響應(yīng)則相關(guān)的因素就更多类嗤,比如數(shù)據(jù)庫速度糊肠、CPU性能等。
所以千萬不要被這些話述蒙蔽遗锣,也不要問這樣的問題;豕!精偿!
對性能知識感興趣的可以看看下面的幾篇文章弧圆,看完以后會對數(shù)據(jù)的性能問題產(chǎn)生一個更科學(xué)的認(rèn)識
1T 數(shù)據(jù)到底有多大?
最簡單的大數(shù)據(jù)性能估算方法
問產(chǎn)品支持多大數(shù)據(jù)量為什么不專業(yè)
然后我們再來看報表工具的性能和容量笔咽,
在有報表參與的數(shù)據(jù)分析項(xiàng)目生命周期中搔预,對報表性能的理解誤區(qū),是容易強(qiáng)調(diào)報表工具的性能叶组,其實(shí)報表性能的主要問題在數(shù)據(jù)源拯田,報表工具本身的性能是次要的
數(shù)據(jù)源的性能
大部分的性能問題,都出在數(shù)據(jù)源上甩十,也就是數(shù)據(jù)準(zhǔn)備階段4印!B录唷鸭轮!但這時候考查報表工具的性能并沒有意義
為什么?
因?yàn)檫@個時候的性能問題多出現(xiàn)在下面的環(huán)節(jié)
- 數(shù)據(jù)量太大橄霉,不會異步加載
- jdbc讀取慢
- 計算太復(fù)雜窃爷,需要復(fù)雜sql或者長存儲過程
這些環(huán)節(jié)其實(shí)并沒有報表工具參與,不該歸罪于報表廠商,因?yàn)闆]有報表時候它們本身也慢
所以這點(diǎn)上按厘,要問問廠商是否有協(xié)助計算的工具和方法医吊,把數(shù)據(jù)準(zhǔn)備階段的性能提升上來,如果有逮京,那這點(diǎn)上可以給廠商加分遮咖,性能問題可不是小問題,也不是誰都能做好的
報表本身的性能
少部分情況下的性能問題造虏,才會體現(xiàn)報表本身的計算性能御吞,那怎樣才能測出純報表的性能?
那就要拋開數(shù)據(jù)準(zhǔn)備的時間漓藕,單獨(dú)統(tǒng)計報表運(yùn)算的時間了
可以用下面的兩個例子來測試對比看看哪家的工具計算能力更強(qiáng)了陶珠,這兩個更能體現(xiàn)出報表工具本身做計算和渲染的能力
-
多數(shù)據(jù)集關(guān)聯(lián)的復(fù)雜報表
中國式復(fù)雜報表 報表性能 - 多數(shù)據(jù)集關(guān)聯(lián)報表 -
帶部分明細(xì)的分組匯總表
中國式復(fù)雜報表 報表性能 - 帶部分明細(xì)的分組匯總表
這類報表需要由報表工具實(shí)現(xiàn)分組和關(guān)聯(lián)對齊的動作,就會考查出報表本身的計算性能享钞。
除了性能揍诽,還有容量
大數(shù)據(jù)量報表
報表中,最能代表容量問題的栗竖,就是大數(shù)據(jù)量的報表了暑脆,很多行業(yè),都會有展現(xiàn)明細(xì)數(shù)據(jù)的要求狐肢,比如電信行業(yè)月底要看本月的全部充值記錄添吗,銀行業(yè)要看當(dāng)月交易記錄清單,數(shù)據(jù)量會達(dá)到百萬甚至千萬級別份名。
千萬級別的數(shù)據(jù)碟联,如果等全部取出算完再呈現(xiàn),需要很長時間僵腺,沒有人可以接受這么惡劣的用戶體驗(yàn)鲤孵,而且還有另外一個限制因素,那就是服務(wù)器的內(nèi)存是有限的辰如,一次裝不下這么多數(shù)據(jù)普监,都得溢出,所以大部分的廠商都會想到用數(shù)據(jù)庫的分頁技術(shù)
但是數(shù)據(jù)庫分頁是有如下局限性的
也有廠商通過游標(biāo)取數(shù)方式解決琉兜,但是游標(biāo)是一個單向操作凯正,只能向后翻頁,不能向前翻頁呕童,也不是一個完美的方法
另外各種數(shù)據(jù)庫分頁的實(shí)現(xiàn)方式不同漆际,每種寫法和對應(yīng)的數(shù)據(jù)源都是強(qiáng)耦合的淆珊,萬一換了數(shù)據(jù)源夺饲,那還得重新來一遍
更先進(jìn)的方法應(yīng)該是能解決上面的這些問題才行的,具體怎么做,可以參考
海量清單與分組報表的實(shí)現(xiàn)
所以對于大數(shù)據(jù)量報表的驗(yàn)證重點(diǎn)就應(yīng)該是:問問廠商是怎么處理的往声,如果是數(shù)據(jù)庫分頁機(jī)制擂找,那上面的4個問題他們怎么解決?有沒有更先進(jìn)的方式浩销?
BI自助報表
自助報表不是萬能的9嵯选!慢洋!
首先就必須明確這一點(diǎn)塘雳,BI不是萬能的,不是上了一套BI信息系統(tǒng)普筹,就能覆蓋自己的數(shù)據(jù)分析需求了败明,完全不能!
目前市面上的BI太防,多維分析妻顶,自助報表犀斋,都做不了復(fù)雜的報表
比如上面提到的中國式復(fù)雜報表兔朦,就必須得用固定報表工具來做
所以完整的數(shù)據(jù)分析系統(tǒng),數(shù)據(jù)可視化項(xiàng)目虎敦,必然是BI+固定報表一起的
然后我們再繼續(xù)看BI選型的一些重點(diǎn)事項(xiàng)
常規(guī)的酿愧,經(jīng)典的分析動作 都不用考察沥潭,做不了的不配叫BI
重點(diǎn)要看的是這幾方面
支持排名、占比嬉挡、環(huán)比叛氨、同比等指標(biāo)計算
除了一些經(jīng)典分析動作外,排名棘伴,占比這些分析也是常見的分析寞埠,但是有些BI軟件是不具備這個能力的,去實(shí)際問問就可以了
環(huán)比與同比
如何解決多表關(guān)聯(lián)查詢
這個其實(shí)是BI的通病阱穗,CUBE是個單表饭冬,原始數(shù)據(jù)是多表,需要JOIN生成好
如果有漏項(xiàng)揪阶,就得重新JOIN
于是昌抠,很多BI產(chǎn)品只支持大寬表的后臺,這確實(shí)是大家常用來對付這件事的手段鲁僚。但靈活性很差炊苫,經(jīng)常需要技術(shù)人員重新JOIN建模裁厅。
也有些自助報表產(chǎn)品提供有讓業(yè)務(wù)用戶做JOIN的功能,那一定要試試侨艾,感受一下您的業(yè)務(wù)人員能不能理解得了执虹。如果不行,最后麻煩事還是回到IT部門唠梨,也還是大寬表
簡單幾個表關(guān)聯(lián)并不困難袋励,無法考查出效果。要重點(diǎn)針對有同維多關(guān)聯(lián)或自關(guān)聯(lián)的情況
拿下面這種數(shù)據(jù)結(jié)構(gòu)去試吧当叭,看看業(yè)務(wù)人員會不會暈茬故,能不能用界面把正確的JOIN給拼出來
其實(shí),有些廠商是真正動了腦筋去解決這個難題的
把數(shù)據(jù)結(jié)構(gòu)呈現(xiàn)成樹狀就能解決這個問題蚁鳖,讓業(yè)務(wù)人員可理解的方式拼出正確的JOIN
是否可被集成均牢,是否提供源碼供改造
選BI之前,要先想一想才睹,是需要一個單獨(dú)的BI徘跪,還是需要把自助報表功能嵌入到自己的頁面中?
如果要集成琅攘,那就要考查自助報表是不是可集成垮庐,能不能被改造了
很不幸,大部分廠商提供的產(chǎn)品都無法被集成坞琴,也不允許用戶自己改造
因?yàn)樽灾鷪蟊砉δ苄枰獢?shù)據(jù)支持哨查,是在一個完整應(yīng)用系統(tǒng)內(nèi)的東西,很難將這一個功能集成到別的應(yīng)用中了
不能被集成剧辐,又不給源碼寒亥,那就必須得讓廠商給定制了,直到做成自己想要的樣子才能放手荧关,否則廠商不給做溉奕,自己又開發(fā)不了,那就不是尷尬的事情了
有興趣可以去看看那些實(shí)施了國外BI的用戶忍啤,部門級使用問題不大加勤,業(yè)務(wù)用戶也常常會叫好。但是同波,如果想集成進(jìn)企業(yè)門戶體系的話鳄梅,那去問問當(dāng)初的實(shí)施商經(jīng)歷過的痛苦吧
報表平臺
大部分的軟件開發(fā)商不需要報表廠商提供平臺
為啥
因?yàn)檐浖_發(fā)商就是做系統(tǒng)的,做平臺的未檩,你又給我一個平臺干嗎戴尸?而且你給我的大概率也沒有我的行業(yè)色彩,不合我用
他們欠缺的是一個性價比高冤狡,能替他們節(jié)省報表開發(fā)工作量和軟件成本的中間件
但終端用戶孙蒙,或者有些想急著上馬來不及搞開發(fā)的軟件開發(fā)商项棠,是有可能需要一個現(xiàn)成平臺的,這倒沒毛病马篮,問題在于:能不能讓我進(jìn)一步定制開發(fā),甚至是不是開源
那些所謂的用戶組織怜奖、權(quán)限浑测、調(diào)度這些功能統(tǒng)統(tǒng)其實(shí)不用考察,因?yàn)橹灰皥蟊砥脚_歪玲,這些功能一定有
而且這些東西和應(yīng)用環(huán)境迁央,使用場景密切相關(guān),肯定不會全適合滥崩,到了現(xiàn)場反正還得改岖圈,得去完善,所以钙皮,還不如問問是不是開源蜂科,或者是不是提供定制修改的服務(wù)?要收多少錢短条?
填寫采集
輸入控件
控件可以協(xié)助用戶快速準(zhǔn)確的錄入數(shù)據(jù)导匣,比如說下拉日歷,下拉樹茸时,復(fù)選框這些
這些控件怎么考察贡定,種類要多要全?
其實(shí)不用考察可都,號稱支持填報的產(chǎn)品都會提供缓待,各種下拉控件,復(fù)選框等
但是渠牲,某些涉及較大數(shù)據(jù)量的輸入控件的性能旋炒,是需要考察的。
比如一些下拉框签杈,下拉樹国葬,會涉及非常多的選擇項(xiàng),一般要提供異步加載的能力芹壕,否則就把界面卡死了
Excel導(dǎo)入相關(guān)
導(dǎo)入Excel填報汇四,
1 是可以把歷史數(shù)據(jù)導(dǎo)入,免去手動輸入的工作量踢涌,2是可以很好的支持離線填報場景通孽,不方便在線填,那就生成一個Excel模板去填睁壁,填完后上傳就可以背苦。這里要考查的是能夠用填報模板生成帶有校驗(yàn)或自動計算的Excel互捌,也能把填后的Excel中的數(shù)據(jù)填進(jìn)填報模板,而不需要為每種Excel寫段代碼
但是很多廠商目前其實(shí)只能支持最簡單的一行一行的標(biāo)準(zhǔn)格式的Excel來填報行剂,稍微復(fù)雜一些的秕噪,就不支持了,比如下面這個表樣
能不能和填報模板對應(yīng)起來厚宰,不寫代碼就能正確采集數(shù)據(jù)入庫腌巾?
就拿著這個表樣去問廠家吧,看看能不能基本不寫代碼就搞定铲觉。支持的真沒幾個澈蝙,幾個老牌國產(chǎn)的還差不多
業(yè)務(wù)人員自定義填報
有些時候,業(yè)務(wù)人員希望能自己畫個表樣就安排下級機(jī)構(gòu)填寫撵幽,這功能做得到嗎灯荧?
數(shù)據(jù)填寫不是目的,填寫上來的數(shù)據(jù)還要再分析統(tǒng)計盐杂,而分析統(tǒng)計就需要把填寫的數(shù)據(jù)變成結(jié)構(gòu)化數(shù)據(jù)寫入數(shù)據(jù)庫逗载,否則誰也不會對著一團(tuán)Excel文件做統(tǒng)計。
那么链烈,業(yè)務(wù)人員有能力把表格轉(zhuǎn)換成合理的數(shù)據(jù)結(jié)構(gòu)嗎撕贞?
直接用一個表樣來說吧
同樣的,簡單的所有廠商都會测垛,表樣一難就做不了了捏膨,上面這個表樣,入庫時必然會對應(yīng)多個數(shù)據(jù)表食侮,還有主外鍵關(guān)聯(lián)号涯!你想業(yè)務(wù)人員能自己造出數(shù)據(jù)結(jié)構(gòu)嗎?
造不出來锯七,那就還得技術(shù)去搞链快,就不能叫業(yè)務(wù)填報了
但好的工具,只要能畫出表樣就可以眉尸,工具就能自動構(gòu)造好數(shù)據(jù)結(jié)構(gòu)
所以真正能把這樣有業(yè)務(wù)意義的復(fù)雜表樣讓業(yè)務(wù)人員自己畫出來就填的廠商域蜗,并且填完的東西能夠結(jié)構(gòu)化后再統(tǒng)計,才算是真的做到了業(yè)務(wù)填報
總結(jié)
以上就是我們列出的常見驗(yàn)證重點(diǎn)和坑了噪猾,大家可以根據(jù)自己的項(xiàng)目需求霉祸,去思考有哪些是自己會遇到的,有哪些自己沒想到袱蜡,然后重新弄一個重點(diǎn)驗(yàn)證列表丝蹭,去找廠商逐個驗(yàn)證了。
雖然說20多年的報表技術(shù)早已沒有什么壁壘坪蚁,但也并不是所有的報表都能經(jīng)的起這份重點(diǎn)列表的考驗(yàn)的奔穿。
在這里镜沽,我們也替大家做一個簡短的總結(jié),方便大家能從形形色色的工具中快速的篩掉那么一大批不合格的贱田,然后再從合格的中間缅茉,挑選真正適合自己的。
國外的基本都不行
功能嚴(yán)重欠缺男摧,復(fù)雜展現(xiàn)蔬墩、填報做不了,使用繁瑣彩倚,浪費(fèi)的工作量夠買好幾套國產(chǎn)工具了筹我。沖著開源免費(fèi)省錢去的扶平,基本上都被搞的焦頭爛額了帆离,去問問老項(xiàng)目經(jīng)理們就明白了
國產(chǎn)的幾家大的老的都行
報表工具,很可能是企業(yè)級軟件中僅有的结澄、國產(chǎn)貨品質(zhì)遠(yuǎn)遠(yuǎn)超過國外貨的領(lǐng)域了哥谷。國內(nèi)的幾家,大方面找不出什么你能做而他做不了的麻献,雖然外圍延伸方向有些注重性能们妥,有些注重美觀,但確實(shí)找不出什么大的功能和使用差異勉吻,市場推廣方面倒是差異很大监婶,有的看著轟轟烈烈,有的則比較低調(diào)傳統(tǒng)
國產(chǎn)的新的也大都不行
市場大了都想來分一杯羹齿桃,但是技術(shù)活還是技術(shù)活惑惶,1得有技術(shù),2得有沉淀
新產(chǎn)品大都功能不完善短纵,不穩(wěn)定带污,項(xiàng)目上天天改bug換包,是要人命的香到,哪個PM敢承擔(dān)這樣的風(fēng)險
怎么區(qū)分是不是新冒出的產(chǎn)品鱼冀,1問廠家什么時候開始做的,2去他們的技術(shù)群里或者論壇悠就,看看其他用戶都問些什么問題千绪,如果問的都是各種報錯,那就肯定是不穩(wěn)定梗脾,bug多了
BI重點(diǎn)是實(shí)施與服務(wù)
拖拽分析誰都行翘紊,切個片,往下鉆藐唠,往上返帆疟,再旋轉(zhuǎn)下鹉究,操作像極了炒土豆片,說自己做不了的踪宠,那不配叫BI軟件
BI分析這個行業(yè)自赔,和傳統(tǒng)的咨詢公司有些類似,并不是有了工具就能搞好分析的柳琢,是得有人給你服務(wù)绍妨,得有人告訴你這個行業(yè)應(yīng)該去分析些啥指標(biāo),有人給你分享經(jīng)驗(yàn)柬脸,做咨詢他去,做好實(shí)施才行的
買BI,千萬別想著買個工具就行倒堕,一定得拉著廠商或集成商給你做好后續(xù)服務(wù)才行灾测,否則舊服務(wù)器還能賣個二手價,舊BI軟件垦巴,可是沒人要的
價格是不用說的重點(diǎn)
篩選出功能差不多媳搪,資質(zhì)差不多的,剩下的當(dāng)然就是對比價格了骤宣,這經(jīng)濟(jì)下行的年代秦爆,能給公司省點(diǎn)錢,能給項(xiàng)目組擠點(diǎn)獎金出來憔披,是多么大的貢獻(xiàn)呢
報表工具10年之前等限,動輒都是上十萬幾十萬的,但現(xiàn)在還有一些廠商要這么高的價格就沒有道理了芬膝,不管是殺生還是殺熟望门,都說不過去,也不知道哪個牛X功能點(diǎn)能支撐這么高的價格體系呢
附錄
下面是整理的目前比較新的指標(biāo)列表蔗候,因?yàn)椴还茉鯓优剩蠹易罱K還是得拿一個列表去驗(yàn)證的,只不過這個列表和別的不太一樣锈遥,就是把本文中提到的驗(yàn)證重點(diǎn)纫事,都加到各驗(yàn)證項(xiàng)后面了,專門做了標(biāo)注和解讀所灸,拿著這個列表就可以有重點(diǎn)的去驗(yàn)證了
最新 BI 報表工具產(chǎn)品選型指標(biāo)和驗(yàn)證重點(diǎn)