本發(fā)明涉及一種基于sqlserver(關(guān)系型數(shù)據(jù)庫管理系統(tǒng))和hive(數(shù)據(jù)倉庫工具)的報表處理方法。
背景技術(shù):
當(dāng)前財務(wù)報表使用sqlserver處理,采用的是順序模式處理數(shù)據(jù),后續(xù)處理必須等前面處理完成才執(zhí)行,串行生成最終報表所需的數(shù)據(jù)。目前億以上級別的數(shù)據(jù)處理使用現(xiàn)有的串行處理的方式已無法滿足快速處理的性能需求。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是為了克服現(xiàn)有技術(shù)中sqlserver處理財務(wù)報表數(shù)據(jù)采用順序模式,串行生成最終報表結(jié)果數(shù)據(jù),導(dǎo)致結(jié)果生成時間過長的缺陷,提供了一種基于sqlserver和hive的報表處理方法。
本發(fā)明是通過下述技術(shù)方案來解決上述技術(shù)問題:
一種基于sqlserver和hive的報表處理方法,包括:
s1、sqlserver獲取財務(wù)報表的訂單數(shù)據(jù),并將所述訂單數(shù)據(jù)同步到hive中,每個訂單數(shù)據(jù)均包括第一類數(shù)據(jù)和第二類數(shù)據(jù);
s2、sqlserver處理每個訂單的第一類數(shù)據(jù)生成第一處理結(jié)果,同時,hive處理每個訂單的第二類數(shù)據(jù)生成第二處理結(jié)果,再將所述第二處理結(jié)果同步到sqlserver中;
s3、sqlserver根據(jù)所述第一處理結(jié)果和所述第二處理結(jié)果生成結(jié)果列表。
本方案中,財務(wù)報表中的訂單數(shù)據(jù)按照數(shù)據(jù)的特性分別用sqlserver和hive同時處理,充分發(fā)揮hive處理大數(shù)據(jù)與sqlserver索引查詢數(shù)據(jù)快的優(yōu)點,從而達(dá)到縮短財務(wù)報表結(jié)果生成的總時長。
較佳地,步驟s1之前還包括:
將歷史訂單數(shù)據(jù)更新到數(shù)據(jù)庫中,所述歷史訂單數(shù)據(jù)更新完成后生成一信號量;
sqlserver根據(jù)所述信號量從所述數(shù)據(jù)庫中獲取所述歷史訂單數(shù)據(jù)生成財務(wù)報表。
較佳地,所述訂單為機(jī)票訂單。
較佳地,所述第一類數(shù)據(jù)包括已出票應(yīng)收款數(shù)據(jù)、已退票應(yīng)收款數(shù)據(jù)、已出票實收款數(shù)據(jù)、已退票實收款數(shù)據(jù)、已出票應(yīng)退款數(shù)據(jù)、已出票實退款數(shù)據(jù)、已退票實退款數(shù)據(jù)和應(yīng)收款調(diào)整數(shù)據(jù),所述第一處理結(jié)果包括第一應(yīng)收金額數(shù)據(jù)、實收金額數(shù)據(jù)、第一應(yīng)退金額數(shù)據(jù)和實退金額數(shù)據(jù)。
較佳地,sqlserver還用于將所述第一應(yīng)收金額數(shù)據(jù)同步到hive中。
較佳地,所述第二類數(shù)據(jù)包括已出票未收款數(shù)據(jù)、已退票未收款數(shù)據(jù)、未退票已退款數(shù)據(jù)、已退票應(yīng)退款數(shù)據(jù)、應(yīng)退保險數(shù)據(jù)和應(yīng)收保險數(shù)據(jù),所述第二處理結(jié)果包括第二應(yīng)收金額數(shù)據(jù)和第二應(yīng)退金額數(shù)據(jù)。
較佳地,步驟s2中sqlserver并行處理相互獨立的所述第一類數(shù)據(jù)。
本方案中,處理對象為機(jī)票訂單,每天會將今天之前的機(jī)票訂單的收款退款流水記錄更新到數(shù)據(jù)庫中,更新完成后生成一信號量,這里的信號量用于確保更新到數(shù)據(jù)庫中的訂單數(shù)據(jù)的完整性,防止某個訂單出現(xiàn)數(shù)據(jù)缺失的情況,再按照數(shù)據(jù)的特性將機(jī)票訂單數(shù)據(jù)分類分別給sqlserver和hive處理,其中,sqlserver中相互獨立的第一類數(shù)據(jù)并行處理,進(jìn)一步提升處理速度,另外,sqlserver處理生成的第一應(yīng)收金額數(shù)據(jù)需同步到hive中進(jìn)一步處理。
本發(fā)明的積極進(jìn)步效果在于:利用hive與sqlserver的特性,充分發(fā)揮hive處理大數(shù)據(jù)與sqlserver索引查詢數(shù)據(jù)快的優(yōu)點,將原有的串行處理根據(jù)數(shù)據(jù)的特性分給hive和sqlserver共同處理,且sqlserver中將相互獨立的數(shù)據(jù)并行處理,不需相互等待運(yùn)行,此種處理方式大幅度縮短財務(wù)報表結(jié)果生成的總時長。
附圖說明
圖1為本發(fā)明實施例1基于sqlserver和hive的報表處理方法的流程圖。
圖2為本發(fā)明實施例2基于sqlserver和hive的報表處理方法的流程圖。
具體實施方式
下面通過實施例的方式進(jìn)一步說明本發(fā)明,但并不因此將本發(fā)明限制在所述的實施例范圍之中。
實施例1
一種基于sqlserver和hive的報表處理方法,具體如圖1所示,包括:
步驟101、sqlserver獲取財務(wù)報表的訂單數(shù)據(jù),并將所述訂單數(shù)據(jù)同步到hive中,每個訂單數(shù)據(jù)均包括第一類數(shù)據(jù)和第二類數(shù)據(jù);
步驟102、sqlserver處理每個訂單的第一類數(shù)據(jù)生成第一處理結(jié)果,同時,hive處理每個訂單的第二類數(shù)據(jù)生成第二處理結(jié)果,再將所述第二處理結(jié)果同步到sqlserver中;
步驟103、sqlserver根據(jù)所述第一處理結(jié)果和所述第二處理結(jié)果生成結(jié)果列表。
本實施例中,財務(wù)報表中的訂單數(shù)據(jù)按照數(shù)據(jù)的特性分別用sqlserver和hive同時處理,充分發(fā)揮hive處理大數(shù)據(jù)與sqlserver索引查詢數(shù)據(jù)快的優(yōu)點,從而達(dá)到縮短財務(wù)報表結(jié)果生成的總時長。
實施例2
本實施例的報表處理方法是在實施例1的基礎(chǔ)上進(jìn)一步改進(jìn),具體如圖2所示,所述訂單為機(jī)票訂單,步驟101之前還包括:
步驟100、將歷史訂單數(shù)據(jù)更新到數(shù)據(jù)庫中,所述歷史訂單數(shù)據(jù)更新完成后生成一信號量;sqlserver根據(jù)所述信號量從所述數(shù)據(jù)庫中獲取所述歷史訂單數(shù)據(jù)生成財務(wù)報表。
其中,第一類數(shù)據(jù)包括已出票應(yīng)收款數(shù)據(jù)、已退票應(yīng)收款數(shù)據(jù)、已出票實收款數(shù)據(jù)、已退票實收款數(shù)據(jù)、已出票應(yīng)退款數(shù)據(jù)、已出票實退款數(shù)據(jù)、已退票實退款數(shù)據(jù)和應(yīng)收款調(diào)整數(shù)據(jù),第二類數(shù)據(jù)包括已出票未收款數(shù)據(jù)、已退票未收款數(shù)據(jù)、未退票已退款數(shù)據(jù)、已退票應(yīng)退款數(shù)據(jù)、應(yīng)退保險數(shù)據(jù)和應(yīng)收保險數(shù)據(jù);其中,sqlserver并行處理相互獨立的所述第一類數(shù)據(jù)。
所述第一處理結(jié)果包括第一應(yīng)收金額數(shù)據(jù)、實收金額數(shù)據(jù)、第一應(yīng)退金額數(shù)據(jù)和實退金額數(shù)據(jù),第二處理結(jié)果包括第二應(yīng)收金額數(shù)據(jù)和第二應(yīng)退金額數(shù)據(jù),sqlserver還用于將所屬第一處理結(jié)果中的所述第一應(yīng)收金額數(shù)據(jù)同步到hive中,以進(jìn)一步計算得出hive中處理得到的所述第二應(yīng)收金額數(shù)據(jù)。
本實施例中,以機(jī)票訂單為處理對象,每天會將今天之前的機(jī)票訂單的收款退款流水記錄更新到數(shù)據(jù)庫中,再按照訂單數(shù)據(jù)的特性將機(jī)票訂單數(shù)據(jù)分類分給sqlserver和hive處理,其中,sqlserver中相互獨立的第一類數(shù)據(jù)并行處理,進(jìn)一步提升處理速度。
雖然以上描述了本發(fā)明的具體實施方式,但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,這些僅是舉例說明,本發(fā)明的保護(hù)范圍是由所附權(quán)利要求書限定的。本領(lǐng)域的技術(shù)人員在不背離本發(fā)明的原理和實質(zhì)的前提下,可以對這些實施方式做出多種變更或修改,但這些變更和修改均落入本發(fā)明的保護(hù)范圍。