資金對(duì)賬系統(tǒng)的設(shè)計(jì)思考

資金對(duì)賬系統(tǒng)的設(shè)計(jì)思考

參考文章:

資金安全是公司業(yè)務(wù)穩(wěn)定運(yùn)行的核心方面之一,風(fēng)險(xiǎn)容忍度極低,實(shí)施上任何公司都希望全年資金運(yùn)營(yíng)風(fēng)險(xiǎn)事件為零。一個(gè)穩(wěn)定可靠的清結(jié)算系統(tǒng)是資金安全的前提,一個(gè)嚴(yán)謹(jǐn)、健全、靈活的對(duì)賬系統(tǒng)是保障。本文主要對(duì)資金對(duì)賬系統(tǒng)進(jìn)行總結(jié)探討。

對(duì)賬系統(tǒng)處理步驟:數(shù)據(jù)準(zhǔn)備 => 數(shù)據(jù)核對(duì) => 差錯(cuò)處理

數(shù)據(jù)準(zhǔn)備

該模塊主要實(shí)現(xiàn)兩個(gè)目標(biāo):

  • 第一是為不同的外部系統(tǒng)提供多元化的接入機(jī)制
  • 第二是通過(guò)數(shù)據(jù)適配的手段把外部數(shù)據(jù)以統(tǒng)一的格式進(jìn)行轉(zhuǎn)換和存儲(chǔ)

數(shù)據(jù)核對(duì)

資金流數(shù)據(jù)對(duì)賬邏輯

問(wèn)題梳理:

  • 漏結(jié):發(fā)起方有數(shù)據(jù),接收方無(wú)數(shù)據(jù)。
  • 重復(fù)結(jié):發(fā)起方有一筆數(shù)據(jù),接收方有兩筆數(shù)據(jù)。
  • 錯(cuò)結(jié):發(fā)起方和接收方數(shù)據(jù)不一致,一般發(fā)生在金額和狀態(tài)兩個(gè)字段。

對(duì)賬方式:

  • 單向?qū)~:以一方數(shù)據(jù)為準(zhǔn),進(jìn)行對(duì)賬。

    -- SQL實(shí)現(xiàn):TABLE_A和TABLE_B對(duì)賬,以TABLE_A為準(zhǔn)
    SELECT A.KEY, A.VALUE AS VALUE_A, B.VALUE AS VALUE_B, A.VALUE-COALESCE(B.VALUE,0) AS DIFF
    FROM TABLE_A A
    LEFT JOIN TABLE_B B ON A.KEY =B.KEY  -- LEFT JION
    
  • 雙向?qū)~:雙方數(shù)據(jù)互為基準(zhǔn)對(duì)賬。 發(fā)現(xiàn)問(wèn)題更為全面,優(yōu)先選擇。

    -- SQL實(shí)現(xiàn):TABLE_A和TABLE_B對(duì)賬,TABLE_A和TABLE_B互為基準(zhǔn)
    -- 方式1:FULL JOIN 
    SELECT COALESCE(A.KEY, B.KEY) KEY
      , COALESCE(A.VALUE,0) AS VALUE_A
      , COALESCE(B.VALUE,0) AS VALUE_B
      , COALESCE(A.VALUE,0)-COALESCE(B.VALUE,0)  AS DIFF
    FROM TABLE_A A
    FULL JOIN TABLE_B B ON A.KEY=B.KEY
    
    -- 方式2:UNION ALL + GROUP BY  -- 推薦,因?yàn)榇a更精簡(jiǎn)
    SELECT T.KEY
      , SUM(VALUE_A) VALUE_A
      , SUM(VALUE_B) VALUE_B
      , SUM(VALUE_A)-SUM(VALUE_B) AS DIFF
    FROM (
        SELECT A.KEY, A.VALUE AS VALUE_A, 0 AS VALUE_B
        FROM TABLE_A A 
        UNION ALL
        SELECT B.KEY, 0 AS VALUE_A, B.VALUE AS VALUE_B
        FROM TABLE_B B
    ) T
    GROUP BY T.KEY
    

對(duì)賬粒度:

  • 明細(xì)對(duì)賬:明細(xì)數(shù)據(jù)比對(duì)
    • 優(yōu)點(diǎn):可以準(zhǔn)確定位問(wèn)題數(shù)據(jù)。
    • 缺點(diǎn):
      • 對(duì)賬口徑設(shè)計(jì)比較復(fù)雜,因?yàn)槲覀冃枰瑫r(shí)針對(duì)漏、重、錯(cuò)三種錯(cuò)誤類別設(shè)計(jì)不同的對(duì)賬口徑,同時(shí)還要考慮到業(yè)務(wù)的邊緣場(chǎng)景。稍有不慎,就會(huì)影響對(duì)賬的準(zhǔn)確性。
      • 處理的數(shù)據(jù)量大,對(duì)賬處理過(guò)程長(zhǎng)。
  • 匯總對(duì)賬:按一個(gè)維度匯總后比對(duì)
    • 優(yōu)點(diǎn):對(duì)賬口徑設(shè)計(jì)簡(jiǎn)單,可快速實(shí)現(xiàn),不易出錯(cuò)。處理數(shù)據(jù)量較小,對(duì)賬過(guò)程快。
    • 缺點(diǎn):無(wú)法定位數(shù)據(jù)底層問(wèn)題,一旦發(fā)現(xiàn)問(wèn)題,還需進(jìn)一步尋找問(wèn)題數(shù)據(jù)。
  • 因此,推薦的做法應(yīng)該是以明細(xì)對(duì)賬為主,定位具體問(wèn)題。以總數(shù)對(duì)賬為輔,對(duì)明細(xì)對(duì)賬的結(jié)果進(jìn)行復(fù)核兜底。

對(duì)賬口徑:

image-20210619231920769

對(duì)賬時(shí)機(jī)

image-20210619232048387

差錯(cuò)處理

image-20210619232113281

會(huì)計(jì)科目對(duì)賬邏輯

在資金流數(shù)據(jù)對(duì)賬的基礎(chǔ)上,對(duì)每個(gè)資金業(yè)務(wù)配置記賬模板(例如:借 科目1 + 貸 科目2),將單一資金流數(shù)據(jù)轉(zhuǎn)換為會(huì)計(jì)復(fù)式記賬分錄數(shù)據(jù),進(jìn)一步體現(xiàn)為會(huì)計(jì)科目的流水,并計(jì)算科目余額,然后與外部渠道實(shí)際余額進(jìn)行賬實(shí)核對(duì);同時(shí)還可以利用內(nèi)部會(huì)計(jì)科目之間勾稽關(guān)系,進(jìn)行賬賬核對(duì)(不同科目發(fā)生額/余額之間的核對(duì))

TODO: 實(shí)現(xiàn)思路舉例

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1 hive表關(guān)聯(lián)查詢,如何解決數(shù)據(jù)傾斜的問(wèn)題? 傾斜原因: map輸出數(shù)據(jù)按key Hash的分配到reduce...
    Alukar閱讀 3,373評(píng)論 0 15
  • 一、單例模式 二、數(shù)組操作 三、字符串操作 四、集合操作 List Set Mep 四、IO操作 四、SQL題 1...
    joshul閱讀 480評(píng)論 0 2
  • Hive 是基于Hadoop 構(gòu)建的一套數(shù)據(jù)倉(cāng)庫(kù)分析系統(tǒng),它提供了豐富的SQL查詢方式來(lái)分析存儲(chǔ)在Hadoop 分...
    三萬(wàn)_chenbing閱讀 12,310評(píng)論 0 10
  • Hive優(yōu)化 今天的主要內(nèi)容——Hive優(yōu)化 Fetch抓取Hive 中對(duì)某些情況的查詢可以不必使用 MapRed...
    須臾之北閱讀 1,288評(píng)論 0 3
  • 測(cè)試數(shù)據(jù) course.txt1,數(shù)據(jù)庫(kù)2,數(shù)學(xué)3,信息系統(tǒng)4,操作系統(tǒng)5,數(shù)據(jù)結(jié)構(gòu)6,數(shù)據(jù)處理 sc.txt95...
    大數(shù)據(jù)技術(shù)進(jìn)階閱讀 4,295評(píng)論 0 1

友情鏈接更多精彩內(nèi)容