天天看點

Hbase在審計行業的應用

1、前言

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

2、選擇HBase的原因

Hbase在審計行業的應用

優化方式多

對于一家大型企業來說,企業内部及全球網點的銷售資料都是我們審計的目标對 象,總體來說資料量較為龐大,而傳統的資料庫面對海量資料可能會嚴重影響使用的效 率,而HBase具有多方面的優化方式,可以提高我們的查詢等各方面效率;例如:1調整RowKey的散列規則。2使資料量均勻的分布在RegionServer上加速查詢。3調整用戶端查詢緩存,調整服務端緩存大小等

應用場景契合

财務報表次元多樣化,不同的次元組合可以拼接成記錄的唯一辨別,進而形成key- value形式。而審計人員隻關系自己的需求,期望通過一定的方式快速的展示出資料,快速的對資料進行比較,進行核對。是以,我們可以通過窮舉法将審計人員需要的查詢條 件枚舉出來,每一種枚舉條件作為一類記錄的辨別。而HBase完全契合此場景。

功能齊全,成本低

HBase作為開源的資料庫,相比較傳統的資料庫,具有其快速查詢的效率和存儲功能,且在業内又有很多成熟的案例;最重要的開源、免費,可降低公司的成本。

3、執行個體剖析

(1)根據财務審計人員查詢條件快速傳回結果

Hbase在審計行業的應用

如上圖所示:一家創業公司要上市,需要将它的财務報表資訊,企業營運資訊全部籠絡起來,交由審計财務人員對它的财務報表的健康狀況進行審計。我們從優化以及碰到的問題 兩方面進行分析:

優化

優化存儲的RowKey

一般審計人員會先看比較粗的資料,比如說公司、部門、會計科目的收入等,像這些單個次元的資料,審計人員會獨立的查詢出來。而且一家公司會有很多分公司,科目也會非常龐大,如果資料量大的資料放在Hbase一台機器上,會産生熱點;其次查詢的 時候會嚴重影響效率。是以我們不可能将單列的資料放入一台機器,是以我們需要将其 均勻的存入不同的機器上,為了達到這樣的效果,針對RowKey的排序規則(按照字典 排序),我們用倒序,就可以将其分布到不同的機器上。

對于組合查詢的情況,我們可以将其放入一台機器上進行查詢,那麼RowKey的設計規則應該為正序。

總而言之:我們會根據審計人員具體的業務場景設計RowKey。

調整用戶端緩存

财務人員一般查詢資料場景比較單一,基于這樣場景,将常見的,比較簡單的資料做資料量的評估,進而設定用戶端緩存大小,減輕到背景與HBase的互動。

調整系統相關參數

調整RegionServer、JVM的HeapSize大小、MetaStore大小,調高RegionServer的處理線程等。這些參數的調整需要根據不同的客戶,不同的業務場景,不同的階段實時調整。

出現的問題以及解決辦法

在使用過程中,發現HRegionServer的負載較高

給叢集添加機器。因為審計人員會對某些覺得可能出現問題的地方進行多頻次的查詢,而針對審計行業 要求在規定的時間内必須出結果的特殊業務場景,不适合調幾個參數用來解決查詢效率,我們就需要優先在叢集上添加一些機器,通過把這些熱點,負載比較高的資料做一個遷移,往新的機器做一些負載的均衡,進而達到整個叢集查詢比較平衡的狀态。

當然新加的機器不一定單獨的為某個場景使用,如果其他客戶的資料出現問題,我們也可以借用這台新的機器。這樣就做到了資源的均衡使用,不會出現資源的線性增長 的情況。

Hbase出現查詢緩慢甚至假死的現象

在使用的過程中,Zookeeper和RegionServer出現了斷開的情況,針對這個問題, 除了調整參數,網絡方面也可能帶來影響。

(2)企業内部自動化對賬

Hbase在審計行業的應用

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

Hbase在審計行業的應用

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的研究。

監控

任何一個穩定的系統,都缺失不了一個很好的監控系統,監控系統對我們來說無論是從資料方面,還是從整個系統運維的可持續方面都起到了不可替代的作用,是以說實作智能化監控至關重要。

**文章來自:楊瑞鑫—HBase生态+Spark社群大群

**