本次仍然評測這幾款主流的報表工具:潤乾報表、帆軟報表、Smartbi、永洪 BI、億信。之前在多源關(guān)聯(lián)分片報表中驗證了各個報表工具的多數(shù)據(jù)源關(guān)聯(lián)功能,這些產(chǎn)品都能支持多數(shù)據(jù)源,但對不同類型數(shù)據(jù)源的支持程度并不一樣。目前常用的關(guān)系型數(shù)據(jù)庫基本上都提供 jdbc 接口,所有報表工具都支持,這里就不做詳細(xì)說明,下面主要看下幾種數(shù)據(jù)源的支持情況:
1、 文件數(shù)據(jù)源,如 Excel、txt、csv 等。
2、 webservices 接口數(shù)據(jù)源,如服務(wù)返回的 json 或 XML 格式數(shù)據(jù)
3、 非關(guān)系型數(shù)據(jù)庫,如 mongodb、ElasticSearch、多維數(shù)據(jù)庫等
潤乾報表
1、 文件數(shù)據(jù)源,潤乾報表提供文件數(shù)據(jù)集,可以直接讀取 Excel、csv、txt 等格式的文件,讀取時還可以設(shè)置數(shù)據(jù)過濾條件、分組聚合字段等。潤乾報表內(nèi)置的計算引擎,不僅可用于報表中的過程計算,還可用于數(shù)據(jù)文件的讀取。比如除了上邊介紹的幾種類型之外,使用計算引擎還能讀取 xml 及 json 格式數(shù)據(jù)。更重要的是,在計算引擎中提供了分段并行讀取、返回游標(biāo)等功能,當(dāng)數(shù)據(jù)量大時,有更高的讀取效率,并且能支持遠(yuǎn)程服務(wù)器上的文件。
2、 潤乾報表在計算層中提供了讀取 http 服務(wù)返回的文件,這樣 webservices 返回的 json 格式數(shù)據(jù)可以通過內(nèi)置的函數(shù)直接讀取并解析,特別還能支持多層 json 和 XML 格式數(shù)據(jù),在實際應(yīng)用中,http 返回的可能是 excel、txt 等其他格式數(shù)據(jù),同樣也能夠解析并返回給報表使用。
3、 針對非關(guān)系型數(shù)據(jù)庫,潤乾報表提供了外部庫功能,只需要加載匹配的外部庫 jar 包以及使用對應(yīng)的函數(shù),就能實現(xiàn)非關(guān)系型數(shù)據(jù)庫的讀取,目前支持外部庫包括:阿里云、Elasticsearch、hive、spark、hbase、redis、cassandra、informix 數(shù)據(jù)庫、連接 hdfs 文件系統(tǒng)、多維數(shù)據(jù)庫、webservice、sap、kafka 系統(tǒng)、mongodb 數(shù)據(jù)庫、抓取網(wǎng)頁數(shù)據(jù)等。
帆軟報表
1、 文件數(shù)據(jù)集,帆軟報表提供文件數(shù)據(jù)集,支持 Excel、txt、xml 三種文件格式,可以直接讀取對應(yīng)格式文件的數(shù)據(jù), 但不能設(shè)置過濾規(guī)則以及分組匯總等,數(shù)據(jù)要全部加載到報表內(nèi)在單元格中處理。帆軟報表也支持遠(yuǎn)程文件數(shù)據(jù)集,可以將文件放到遠(yuǎn)程服務(wù)上,數(shù)據(jù)集中可以直接設(shè)置文件的 url,也可以自己寫個 jsp 的文件下載頁面做靈活控制(帆軟提供了例子),新建文本數(shù)據(jù)集時設(shè)置這個 jsp 的 url。文件讀取解析是比較常用的逐行讀取并且不支持過濾等,數(shù)據(jù)量大時,性能難以保證。
2、 帆軟報表解析 webservices 返回的 json 數(shù)據(jù),需要下載 json 數(shù)據(jù)集插件,按照向?qū)螺d安裝就行,這樣就可以使用 JSON 數(shù)據(jù)集,使用時輸入 URL 等參數(shù)信息,就可以直接解析 json 數(shù)據(jù),不過這樣只能解析簡單的單層 json 數(shù)據(jù),如果 JSON 格式復(fù)雜,那么需要使用 JSON 程序數(shù)據(jù)集,要寫 javascript 語句去解析數(shù)據(jù)返回,這里技術(shù)難度較高。相比于文件數(shù)據(jù)集,json 數(shù)據(jù)集是支持讀取時數(shù)據(jù)過濾的。而 webservices 返回 xml 數(shù)據(jù)時,就需要用文件數(shù)據(jù)集中的遠(yuǎn)程文件方式,如果需要 post 方式傳遞參數(shù),就無法使用了。
3、 針對不同的非關(guān)系型數(shù)據(jù)庫,提供了對應(yīng)的插件,需要在設(shè)計器中下載安裝對應(yīng)數(shù)據(jù)集插件,按照向?qū)螺d安裝就行,然后按照對應(yīng)數(shù)據(jù)集的向?qū)гO(shè)置數(shù)據(jù)集就行,目前支持的非關(guān)系型數(shù)據(jù)庫包括:Redis、Elasticsearch、InfluxDB、MongoDB、Spider、SAP、多維數(shù)據(jù)庫。
Smartbi
1、 Smartbi 支持的文件數(shù)據(jù)類型為 Excel、csv、txt,使用時需要將數(shù)據(jù)文件導(dǎo)入到高速緩存庫或關(guān)系數(shù)據(jù)源中,目前關(guān)系數(shù)據(jù)源支持:MySQL、Oracle、DB2_V9、MSSQL,實際上是工具里提供了將文件數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫的功能,適合一些固定文本數(shù)據(jù)的使用,如果文本更新較為頻繁,限制性就太大了。
2、 webservices 返回的 json 數(shù)據(jù)或者其他格式數(shù)據(jù)沒法直接解析,需要編寫 java 程序自己實現(xiàn),工具中提供了 JAVA 數(shù)據(jù)源,解析起來難度較大,需要專業(yè)開發(fā)人員才能處理了。
3、 非關(guān)系型數(shù)據(jù)庫,目前只支持 mongodb 和 Tinysoft,支持類型比較少。
永洪 BI
1、 支持 Excel、txt、csv、log 類型文件,使用時按照向?qū)Х绞竭x擇相應(yīng)文件就行,選擇文件后,可以對數(shù)據(jù)進(jìn)行過濾,分組字段、匯總字段、數(shù)據(jù)類型轉(zhuǎn)換等設(shè)置。
2、 不支持 json 格式的數(shù)據(jù),也無法接收 webservices 接口數(shù)據(jù)。
3、 支持多維數(shù)據(jù)庫、mongodb、Elasticsearch 等非關(guān)系型數(shù)據(jù)庫,其余數(shù)據(jù)庫更多借助 jdbc 接口的提供。
億信
1、 支持 Excel、txt、csv 數(shù)據(jù)源,和 Smartbi 一樣,需要將文件上傳導(dǎo)入到自帶的數(shù)據(jù)庫中才能夠使用,局限性較大。
2、 提供接口數(shù)據(jù)源,可以配置接口地址,讀取 webservices 返回的 json 格式數(shù)據(jù),不過這里只能解析單層 json 數(shù)據(jù),多層 json 格式數(shù)據(jù)無法解析。
3、 目前只支持 jdbc 方式連接數(shù)據(jù)庫,沒有 jdbc 接口的非關(guān)系型數(shù)據(jù)庫暫時還不支持。
總結(jié)
從結(jié)果來看,對于比較常見的文件數(shù)據(jù)源,各家工具基本上都支持,不過 Smartbi 和億信是需要將文件數(shù)據(jù)導(dǎo)入到相應(yīng)的數(shù)據(jù)庫中,本質(zhì)上并不是自行處理的,如果數(shù)據(jù)變化的話,那么還需要更新數(shù)據(jù)庫中的數(shù)據(jù),否則造成數(shù)據(jù)的不準(zhǔn)確,實用性較差。而其余三家都是直接讀取文件方式,能夠?qū)崟r讀取數(shù)據(jù)。潤乾讀取文件還支持有流式和并行讀取,數(shù)據(jù)量大時,效率更高。潤乾報表和永洪使用文件數(shù)據(jù)源時,可以直接基于文件進(jìn)行數(shù)據(jù)過濾和匯總等操作,執(zhí)行效率更高,易用性也更好;帆軟只能讀入文件,剩下的要在報表中進(jìn)行設(shè)置,易用性和性能上都會差一點。
潤乾報表借助于獨立的計算引擎,在處理 webservices 返回的接口數(shù)據(jù)時處理單層和多層 json 格式數(shù)據(jù)時,只需要通過幾個函數(shù)就能夠?qū)崿F(xiàn),而帆軟和億信默認(rèn)方式只能處理單層的 json 數(shù)據(jù),如果要處理多層數(shù)據(jù),帆軟需要在 javascript 代碼中處理,這個有一定技術(shù)難度。Smartbi 提供接口方式,要通過 java 程序解析數(shù)據(jù),難度更大。永洪更偏向于數(shù)據(jù)分析,暫時不支持 json 格式數(shù)據(jù)源。
非關(guān)系型數(shù)據(jù)庫目前使用比較廣泛,所以也要求報表工具能夠連接非關(guān)系型數(shù)據(jù)庫,這里潤乾和帆軟支持最好,實現(xiàn)理念也類似,潤乾提供了外部庫功能,需要什么庫拿相應(yīng)的更新文件和對應(yīng)的函數(shù)使用就行,帆軟是提供了對應(yīng)的數(shù)據(jù)集擴(kuò)展插件,選擇對應(yīng)的庫安裝使用就行,而其他三家工具更多的是借助 jdbc 方式,雖說現(xiàn)在一些非關(guān)系型數(shù)據(jù)庫也封裝了 jdbc 接口,但是從實用性和穩(wěn)定性上來說目前還有待考驗。
總體來講,這方面的能力還是潤乾最強(qiáng),明顯勝過其它產(chǎn)品;帆軟其次;其它三家都相對較弱,這和之前對復(fù)雜報表的評測結(jié)果也是類似的。