原创 java 如何找出兩個文本文件中有相同字段的行

Java有什麼方便的類庫做文件對比嗎?比如:文件Old.txt和New.txt,第一行是列名,需要取出文件中Name字段相同的內容。部分數據如下: Old.txt New.txt Name   Dept Rachel Sales

原创 國內十大活躍報表 BI 產品深度點評

目前國內市場上的報表 BI 工具琳琅滿目,看起來也各有特點,這給選型工作帶來了一些困擾,本文就一些較活躍的報表 BI 產品進行點評,對於不太熟悉這些產品和技術的同學,可作爲參考資料。 這裏選了十個產品,分作四類:國內報表類,國內 BI 類

原创 MongoDB 怎麼計算子查詢

MongoDB在某些方面確實比關係型數據庫更強 (比如對追加型日誌數據的吞吐能力),但結構化計算能力方面較弱。比如:MongoDB不支持子查詢,碰到這些複雜的運算就只能先將數據讀出後再計算,而用Java等語言編寫這類計算也不是很簡單。 比

原创 數據庫分庫,原來 SQL 和存儲過程寫的報表咋辦?

分庫以後,存儲過程直接就被判死刑了,鐵定不能再用了;SQL 還要看情況(如多表 JOIN),總體來說方向有三個: 一、使用數據庫中間件 使用像 Mycat 之類的數據庫中間件,報表裏的簡單 SQL 基本都能延續使用(像 Mycat 支持

原创 幾百萬條的報表咋打印?

打印量這麼大的報表,打印機可能會喫不消。可以算算打印 100 萬行記錄是什麼情況。 假設一頁紙能打印 50 行記錄(這已經算多了),100 萬行記錄就意味着 2 萬頁紙。2 萬頁的連續打印,有多少打印機能做到這個指標?你的用戶真有這樣的設

原创 怎麼把報表模塊從應用裏拆出來單獨維護?

如果報表通過報表工具開發,且報表中只涉及 SQL/ 存儲過程,拆分相對容易些,只需要整理好報表模塊需要的數據庫資源即可,比如:會涉及到哪些數據源、數據庫連接數需要分配多少等,然後將報表模塊單獨作爲報表應用部署維護即可。 如果報表中涉及 J

原创 未來系統擴展,報表怎麼辦?

系統擴展會有幾種情況,不同的做法報表的應對策略也不同。 1、集羣 把單體應用部署到集羣環境,即每個節點都有一個完整的單體應用。通過負載均衡技術將用戶請求路由到不同節點上從而分擔併發壓力。 這種系統擴展方式很常見,目的是解決高併發下的請求響

原创 導出數據量大的報表內存溢出怎麼辦?

導出報表內存溢出很可能是因爲數據全內存導致的,得采用流式(分批)導出的方式。如果報表是自己寫代碼開發的,可以藉助諸如 POI 等開源包實現流式導出,代碼有點長,供參考:https://blog.csdn.net/gw5205566/art

原创 BIRT 怎麼調用 Webservice 作爲數據源

BIRT雖然提供了訪問基於SOAP的Web Services,可以使用SOAP響應作爲生成報表的數據。但總的來說,操作起來還是太麻煩了,靈活性也不夠: 1、配置過程步驟多,過於繁瑣。 2、引入的JAR很多,太重了。 3、API接口多,代碼

原创 如何選擇合適的 BI 工具?

如果只是需要常規的 BI 功能,比如拖拽、鑽取、切片、旋轉、彙總等,那基本所有的 BI 工具都可以,因爲這是基礎功能,誰都滿足,找一個便宜、穩定的就可以。 但是大部分 BI 的需求其實是需要考慮集成和定製的事情的。因爲 BI 一般只是作爲

原创 有了 BI 還要做報表嗎?

爲什麼? 廣義上的 BI 是包括數據倉庫、多維分析、報表和可視化技術的一整套解決方案,而我們常說的 BI 則專指多維分析,也就是自助查詢。建設 BI 往往是希望將簡單、臨時、多變的查詢需求開放給業務人員自助完成,從而提高用戶需求的響應速度

原创 Java 嵌入腳本快速解析多層 json

關於Json處理的開源包有很多,比如json-lib、jackson、Gson、Fastjson。Gson是谷歌做的,功能強大;Fastjson是阿里巴巴做的,性能較快。具體用哪個,你開心就好。 Json解析出來一般都是爲了再次計算,常見

原创 頁面表格怎麼實現隔行異色、隔行變色

舉例:採用 css+js 的方法,實現表格的隔行異色,需要如下幾步: 定義 css 表格樣式,如邊框、寬度、顏色 在 js 中,創建 func()函數,並通過 onload 設置頁面加載完成時,調用 func() 函數 通過

原创 一句話得到 SQL 難實現的去年同期比

按年、月分組,彙總得到每個月的合計值,沒什麼難的,就是個常規 group 操作。下一步是找到去年該月,數據整齊有序的話,向上第 12 條記錄,肯定就是去年該月。但 SQL 無法單獨的表述記錄對象,也沒有集合中相對位置的計算能力,得變通成自

原创 怎麼控制報表的數據權限

控制報表數據訪問權限,是讓不同的人訪問同一張報表的時候所看到的數據是不同的或者說只能看到權限範圍內的數據。 報表工具通用的做法是控制數據集(報表所呈現的數據基本都是來自數據集)。以 sql 數據集爲例,只要 sql 的條件不一樣,返回的數