Hbase在審計行業的應用
1、前言
在技術快速發展的今天,各行各業的資料量不斷增加。審計行業也發生了翻天覆地的變 化,身處其中的畢馬威,如何利用HBase提高對客戶的服務,讓客戶的滿意度有所提升。本 文將從以下三個方面(選擇HBase的原因,例項剖析,總結與展望)來分析。
2、選擇HBase的原因

優化方式多
對於一家大型企業來說,企業內部及全球網點的銷售資料都是我們審計的目標對 象,總體來說資料量較為龐大,而傳統的資料庫面對海量資料可能會嚴重影響使用的效 率,而HBase具有多方面的優化方式,可以提高我們的查詢等各方面效率;例如:1調 整RowKey的雜湊規則。2使資料量均勻的分佈在RegionServer上加速查詢。3調整客 戶端查詢快取,調整服務端快取大小等
應用場景契合
財務報表維度多樣化,不同的維度組合可以拼接成記錄的唯一標識,從而形成key- value形式。而審計人員只關係自己的需求,期望通過一定的方式快速的展示出資料,快 速的對資料進行比較,進行核對。因此,我們可以通過窮舉法將審計人員需要的查詢條 件枚舉出來,每一種列舉條件作為一類記錄的標識。而HBase完全契合此場景。
功能齊全,成本低
HBase作為開源的資料庫,相比較傳統的資料庫,具有其快速查詢的效率和儲存功 能,且在業內又有很多成熟的案例;最重要的開源、免費,可降低公司的成本。
3、例項剖析
(1)根據財務審計人員查詢條件快速返回結果

如上圖所示:一家創業公司要上市,需要將它的財務報表資訊,企業運營資訊全部籠絡 起來,交由審計財務人員對它的財務報表的健康狀況進行審計。我們從優化以及碰到的問題 兩方面進行分析:
優化
優化儲存的RowKey
一般審計人員會先看比較粗的資料,比如說公司、部門、會計科目的收入等,像這些單個維度的資料,審計人員會獨立的查詢出來。而且一家公司會有很多分公司,科目也會非常龐大,如果資料量大的資料放在Hbase一臺機器上,會產生熱點;其次查詢的 時候會嚴重影響效率。所以我們不可能將單列的資料放入一臺機器,因此我們需要將其 均勻的存入不同的機器上,為了達到這樣的效果,針對RowKey的排序規則(按照字典 排序),我們用倒序,就可以將其分佈到不同的機器上。
對於組合查詢的情況,我們可以將其放入一臺機器上進行查詢,那麼RowKey的設 計規則應該為正序。
總而言之:我們會根據審計人員具體的業務場景設計RowKey。
調整客戶端快取
財務人員一般查詢資料場景比較單一,基於這樣場景,將常見的,比較簡單的資料 做資料量的評估,從而設定客戶端快取大小,減輕到後臺與HBase的互動。
調整系統相關引數
調整RegionServer、JVM的HeapSize大小、MetaStore大小,調高RegionServer的 處理執行緒等。這些引數的調整需要根據不同的客戶,不同的業務場景,不同的階段實時調整。
出現的問題以及解決辦法
在使用過程中,發現HRegionServer的負載較高
給叢集新增機器。因為審計人員會對某些覺得可能出現問題的地方進行多頻次的查 詢,而針對審計行業 要求在規定的時間內必須出結果的特殊業務場景,不適合調幾個參 數用來解決查詢效率,我們就需要優先在叢集上新增一些機器,通過把這些熱點,負載比較高的資料做一個遷移,往新的機器做一些負載的均衡,從而達到整個叢集查詢比較平衡的狀態。
當然新加的機器不一定單獨的為某個場景使用,如果其他客戶的資料出現問題,我們也可以借用這臺新的機器。這樣就做到了資源的均衡使用,不會出現資源的線性增長 的情況。
Hbase出現查詢緩慢甚至假死的現象
在使用的過程中,Zookeeper和RegionServer出現了斷開的情況,針對這個問題, 除了調整引數,網路方面也可能帶來影響。
(2)企業內部自動化對賬

如上圖所示:假如一個集團公司下面有100家子公司,子公司間會有財務往來,有時候不會報到總公司。這種情況下,集團的帳可能會出現壞賬,為了避免這樣的現象,審計人員對 賬單進行對賬:有一對一金額相同,一對多金額相同,一對多金額抵小的業務場景,針對這種情況,我們採用如下的架構:

1.歷史方案
方案:採用Oracle資料庫,啟動定時器將Oracle的資料放到中間的記憶體的資料庫裡,將實時的資料進行對比,對比的結果放入到Redis中,WEB頁面從Redis中取出資料。
分析:首先oracle帶來成本問題,帶來效率問題,且運維的成本也會增加,需要兩種資料 庫運維人員。對比HBase,查詢效率高,儲存量大,減少運維成本等多方面優勢,開始 了採用HBase方案的架構。
2.新方案
在對賬的時候,有公司編碼、科目編碼、科目型別等,可以通過他們的組合找到唯 一 一條期末餘額(基於簡單的kv對的儲存,kv對的查詢,同時對kv查詢結果的比對), 因此我們採用HBase支撐這樣的業務場景。我們會把資料定時的插入到HBase裡,通過 spark對資料進行功能的對賬,對完帳的結果寫入到HBase裡,等待前端頁面的查詢。
4、總結與展望
擴充套件性
在整個的審計過程中,一家公司可能有400家子公司,400家子公司分佈在全國各 地,可以在內部進行分組,組和組之間要進行資料的交叉性驗證,互動的話,後期可能 用HBase做為類似於訊息中介軟體的方式來作中間的資料的互動。
資源的可用性
會根據審計人員特殊的業務場景進行RegionServer的預估,合理設計RowKey,合理利用機器資源。
研發資源
基於HBase做查詢,可以降低運維成本,研發人員可以專注於對HBase的研究。
監控
任何一個穩定的系統,都缺失不了一個很好的監控系統,監控系統對我們來說無論是從資料方面,還是從整個系統運維的可持續方面都起到了不可替代的作用,所以說實現智慧化監控至關重要。