
本發明實施例涉及數據處理
技術領域:
,尤其涉及一種流水數據的生成方法、裝置及系統。
背景技術:
:隨著互聯網技術的快速發展,目前,大多數業務通過互聯網完成。一些重要業務需要有詳盡的流水記錄以便對事件進行追蹤,即業務的所有變更,都需在流水表中記錄。現有技術中,業務流水表和業務表都在業務系統中生成,即當業務方在業務表中進行變更操作的同時,業務系統將這條變更記錄加入流水表中。業務系統同時處理流水表和業務表,使得系統延遲增加。技術實現要素:本發明提供了一種流水數據的生成方法、裝置及系統,以提高流水數據的生成效率。第一方面,本發明實施例提供了一種流水數據的生成方法,該方法包括:當接收到流水數據請求時,根據所述流水數據請求確定目標業務;從業務數據庫對應的日志文件中獲取所述目標業務對應的至少一個目標日志信息;根據所述至少一個目標日志信息生成所述目標業務的流水數據。進一步地,在從業務數據庫對應的日志文件中獲取所述目標業務對應的至少一個目標日志信息之后還包括:從所述業務數據庫中查找所述目標業務對應的目標業務信息;相應的,所述根據所述至少一個目標日志信息生成所述目標業務的流水數據,包括:所述根據所述至少一個目標日志信息和所述目標業務信息生成所述目標業務的流水數據。進一步地,所述根據所述至少一個目標日志信息和所述目標業務信息生成所述目標業務的流水數據,包括:根據記錄時間對所述至少一個目標日志信息進行排序,得到排序結果;根據下述迭代算法計算所述至少一個目標日志信息對應的流水數據:根據所述目標業務信息以及第二日志信息生成所述第二日志信息對應的流水數據,所述第二日志信息為與所述目標業務信息的時間差距最小的目標日志信息;根據所述第二日志信息對應的流水數據及第三日志信息,生成所述第三日志信息對應的流水數據,所述第三日志信息為按照所述排序結果選擇的所述第二日志信息的前一個日志信息;根據生成的至少一個目標日志信息對應的流水數據,確定所述目標業務的流水數據。進一步地,所述業務數據庫對應的日志文件為二進制文件,相應的,所述從業務數據庫對應的日志文件中獲取所述目標業務對應的至少一個目標日志信息,包括:將所述目標業務的記錄標識進行二進制轉換,得到目標二進制碼;在所述業務數據庫對應的日志文件中查找與所述目標二進制碼匹配的二進制日志信息;將查找到的所述二進制日志信息轉換為文本格式的目標日志信息。進一步地,所述根據所述至少一個目標日志信息生成所述目標業務的流水數據,包括:獲取所述目標日志信息的事件類型參數;獲取所述目標日志信息包含的業務信息參數;將所述事件類型參數和所述業務信息參數添加到預設格式的流水數據表格中,得到所述目標業務的流水數據。第二方面,本發明實施例還提供了一種流水數據的生成裝置,該裝置包括:目標業務確定模塊,用于當接收到流水數據請求時,根據所述流水數據請求確定目標業務;目標日志信息獲取模塊,用于從業務數據庫對應的日志文件中獲取所述目標業務對應的至少一個目標日志信息;流水數據生成模塊,用于根據所述至少一個目標日志信息生成所述目標業務的流水數據。進一步地,還包括:目標業務信息查找模塊,用于從所述業務數據庫中查找所述目標業務對應的目標業務信息;相應的,所述流水數據生成模塊,還用于根據所述至少一個目標日志信息和所述目標業務信息生成所述目標業務的流水數據。進一步地,所述流水數據生成模塊,還用于:根據記錄時間對所述至少一個目標日志信息進行排序,得到排序結果;根據下述迭代算法計算所述至少一個目標日志信息對應的流水數據:根據所述目標業務信息以及第二日志信息生成所述第二日志信息對應的流水數據,所述第二日志信息為與所述目標業務信息的時間差距最小的目標日志信息;根據所述第二日志信息對應的流水數據及第三日志信息,生成所述第三日志信息對應的流水數據,所述第三日志信息為按照所述排序結果選擇的所述第二日志信息的前一個日志信息;根據生成的至少一個目標日志信息對應的流水數據,確定所述目標業務的流水數據。進一步地,所述業務數據庫對應的日志文件為二進制文件,相應的,所述目標日志信息獲取模塊,包括:目標二進制碼獲取模塊,用于將所述目標業務的記錄標識進行二進制轉換,得到目標二進制碼;二進制日志信息查找模塊,用于在所述業務數據庫對應的日志文件中查找與所述目標二進制碼匹配的二進制日志信息;二進制日志信息轉換模塊,用于將查找到的所述二進制日志信息轉換為文本格式的目標日志信息。進一步地,所述流水數據生成模塊,還用于:獲取所述目標日志信息的事件類型參數;獲取所述目標日志信息包含的業務信息參數;將所述事件類型參數和所述業務信息參數添加到預設格式的流水數據表格中,得到所述目標業務的流水數據。第三方面,本發明實施例還提供了一種流水數據的生成系統,該系統包括至少一個終端及第二方面所述的流水數據的生成裝置。本發明實施例,當接收到流水數據請求時,首先根據流水數據請求確定目標業務,然后從業務數據庫對應的日志文件中獲取目標業務對應的至少一個目標日志信息,最后根據至少一個目標日志信息和所述目標業務信息生成所述目標業務的流水數據。現有技術中,由于業務表和流水數據表同時在業務系統中生成,使得流水數據對業務系統有侵入,即在生成流水數據出現異常時影響業務進程,而且業務系統同時處理業務數據和流水數據,使得系統延遲增加。本申請中,根據目標業務在數據庫中的目標日志信息和目標業務信息生成目標業務的流水數據,使得流水數據的生成對業務系統無侵入、零耦合,同時提高流水數據的生成效率。附圖說明圖1是本發明實施例一中的一種流水數據的生成方法的流程圖;圖2是本發明實施例二中的一種流水數據的生成方法的流程圖;圖3是本發明實施例三中的一種流水數據的生成方法的流程圖;圖4是本發明實施例四中的一種流水數據的生成裝置的結構示意圖;圖5是本發明實施例五中的一種流水數據的生成系統的結構示意圖。具體實施方式下面結合附圖和實施例對本發明作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋本發明,而非對本發明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發明相關的部分而非全部結構。實施例一圖1為本發明實施例一提供的一種流水數據的生成方法的流程圖,本實施例可適用于生成流水數據的情況,該方法可以由服務器來執行,如圖1所示,該流水數據的生成方法具體包括如下步驟:步驟110,當接收到流水數據請求時,根據流水數據請求確定目標業務。其中,目標業務可以是個人或企業在進行消費或通過互聯網系統辦理事務而產生的業務,例如:銀行業務、通信運營商消費業務或在購物軟件上進行購物產生的業務等。流水數據可以是對目標業務進行追蹤而形成的數據。本應用場景下,當個人或企業需要查看目標業務在預設時間段中的流水數據時,個人或企業將查看流水數據的請求輸入對應的流水系統中,流水系統在接收到流水數據請求時,根據流水數據確定目標業務。示例性的,顧客a需要查看在銀行a的借記卡在最近3個月內的賬戶流水數據,顧客a將查看借記卡在最近3個月內的賬戶流水數據的請求輸入銀行a的流水系統,流水系統在接收到該請求后,確定借記卡的賬戶業務。步驟120,從業務數據庫對應的日志文件中獲取目標業務對應的至少一個目標日志信息。其中,業務數據庫可以存儲多種目標業務信息,可以是mysql數據庫。日志信息可以是對數據庫中的目標業務信息進行操作而生成的日志,日志信息可以包括操作事件的時間、類型及操作事件的具體內容等。其中,操作事件的類型可以包括插入、更新和刪除等。本應用場景下,從業務數據庫對應的日志文件中獲取目標業務對應的至少一個目標日志信息的方法可以是,將目標業務的記錄標識進行二進制轉換,得到目標二進制碼,在業務數據庫對應的日志文件中查找與目標二進制碼匹配的二進制日志信息,將查找到的二進制日志信息轉換為文本格式的目標日志信息。步驟130,根據至少一個目標日志信息生成目標業務的流水數據。根據至少一個目標日志信息生成目標業務的流水數據的方式可以是,若日志文件采用行模式進行記錄,則獲取目標日志信息的事件類型參數,以及獲取目標日志信息包含的業務信息參數,最后將事件類型參數和業務信息參數添加到預設格式的流水數據表格中,得到目標業務的流水數據。若日志文件采用列模式,則根據至少一個目標日志信息和目標業務信息生成所述目標業務的流水數據。優選的,在步驟120之后,還包括:步驟140,從業務數據庫中查找目標業務對應的目標業務信息。其中,目標業務信息可以是目標業務當前所處的狀態信息,即目標業務被業務方在最近一次操作而更新后的業務信息。目標業務信息的形式可以是業務表。從業務數據庫中查找目標業務對應的目標業務信息的方式可以是,根據業務信息的記錄標識在業務數據庫中查找目標業務信息。示例性的,購物信息的訂單業務可以通過訂單號查找對應的訂單業務,或者借記卡賬戶業務可通過借記卡的賬號查找對應的賬號業務。相應的,步驟130包括:步驟210,根據所述至少一個目標日志信息和所述目標業務信息生成所述目標業務的流水數據。本應用場景下,日志文件采用列模式進行記錄,則根據所述至少一個目標日志信息和所述目標業務信息生成所述目標業務的流水數據的方式可以是,根據記錄時間對至少一個目標日志信息進行排序,得到排序結果,根據下述迭代算法計算至少一個目標日志信息對應的流水數據:根據目標業務信息以及第二日志信息生成第二日志信息對應的流水數據,第二日志信息為與目標業務信息的時間差距最小的目標日志信息,根據第二日志信息對應的流水數據及第三日志信息,生成第三日志信息對應的流水數據,第三日志信息為按照排序結果選擇的第二日志信息的前一個日志信息,根據生成的至少一個目標日志信息對應的流水數據,確定目標業務的流水數據。本實施例的技術方案,當接收到流水數據請求時,首先根據流水數據請求確定目標業務,然后從業務數據庫對應的日志文件中獲取目標業務對應的至少一個目標日志信息,最后根據至少一個目標日志信息和所述目標業務信息生成所述目標業務的流水數據。現有技術中,由于業務表和流水數據表同時在業務系統中生成,使得流水數據對業務系統有侵入,即在生成流水數據出現異常時影響業務進程,而且業務系統同時處理業務數據和流水數據,使得系統延遲增加。本申請中,根據目標業務在數據庫中的目標日志信息和目標業務信息生成目標業務的流水數據,使得流水數據的生成對業務系統無侵入、零耦合,同時提高流水數據的生成效率。優選的,步驟210包括:步驟211,根據記錄時間對至少一個目標日志信息進行排序,得到排序結果。其中,排序的方式可以是按照記錄時間的先后順序依次排序,即時間最早的排在最前,時間最晚的排在最后。根據下述迭代算法計算至少一個目標日志信息對應的流水數據:步驟212,根據目標業務信息以及第二日志信息生成第二日志信息對應的流水數據,第二日志信息為與目標業務信息的時間差距最小的目標日志信息。其中,第二日志信息可以是目標業務信息最近一次更新時產生的日志信息,目標業務信息的更新操作與對應的日志信息的生成可以同步,或者目標業務信息的更新操作早于對應的日志信息的生成。優選的,步驟212可以通過下述方式實施:步驟21211,根據第二日志信息確定變更信息。其中,變更信息可以是插入、刪除或更新。步驟2122,根據變更信息和目標業務信息生成第二日志信息對應的流水數據。根據變更信息和目標業務信息生成第二日志信息對應的流水數據的方法可以是,將變更信息與目標業務信息進行比較,確定變更信息屬于目標業務信息中哪一個項目或哪幾個項目的變更信息,然后根據目標業務信息中至少一個項目與變更信息進行回推,得到第二日志信息對應的流水數據。示例性的,表1為某一訂單業務的業務信息。表1主鍵商品名稱支付金額/元支付狀態訂單號a商品a、商品b300已支付表1為訂單號a對應的訂單業務信息,假設第二日志信息為對支付金額進行滿減,滿減規則是滿滿299減100,那么第二日志信息對應的流水數據如表2所示:表2步驟213,根據第二日志信息對應的流水數據及第三日志信息,生成第三日志信息對應的流水數據,第三日志信息為按照排序結果選擇的第二日志信息的前一個日志信息。根據第二日志信息對應的流水數據及第三日志信息,生成第三日志信息對應的流水數據的方法與根據目標業務信息以及第二日志信息生成第二日志信息對應的流水數據的方法類似,不再贅述。示例性的,以表2為例,假設第三日志信息為添加商品b,商品b的價格為150元,則生成的第三日志信息對應的流水數據如表3所示:表3按照這種迭代方算法,回推出目標業務信息對應的所有流水數據。步驟214,根據生成的至少一個目標日志信息對應的流水數據,確定目標業務的流水數據。將生成的各個日志信息對應的多個流水數據按照時間先后順序進行排序,得到目標業務的流水數據。示例性的,訂單a的業務信息對應的部分流水數據,將表2和表3結合得到表4:表4本實施例的技術方案,利用迭代算法,根據目標業務信息與日志信息回推每個日志信息對應的流水數據,根據生成的至少一個目標日志信息對應的流水數據,確定目標業務的流水數據。可以提高流水數據生成的準確率。實施例二圖2為本發明實施例二提供的一種流水數據的生成方法的流程圖,以上述實施例為基礎,如圖2所示,優選的,業務數據庫對應的日志文件為二進制文件,相應的,步驟120包括:步驟121,將目標業務的記錄標識進行二進制轉換,得到目標二進制碼。其中,記錄標識可以是目標業務的唯一標識符,例如目標業務數據表的表格名稱。將目標業務的記錄標識進行二進制轉換的方式可以是,利用二進制轉化工具或者采用業界轉化規范,將目標業務的主鍵轉化為二進制碼,得到目標二進制碼。步驟122,在業務數據庫對應的日志文件中查找與目標二進制碼匹配的二進制日志信息。其中,業務數據庫對應的日志文件可以是按照客戶實際需求在業務數據庫中對應的預設時間段中的日志。在業務數據庫對應的日志文件中查找與目標二進制碼匹配的二進制日志信息的方法可以是,遍歷業務數據庫對應的日志文件,將目標二進制碼與每個日志文件中的二進制碼進行比對,若日志文件中包含與目標二進制碼匹配的二進制碼,則該日志文件是所要查找的二進制日志信息。優選的,步驟122還可通過下述方式實施:步驟1221,獲取第一日志信息的預設字段的數據,第一日志信息為日志文件中任意一條日志信息,預設字段用于記錄業務主鍵。其中,預設字段可以是在數據庫中設置的,例如:在數據庫中設置為在每條日志的固定位置中記錄業務主鍵。示例性的,預設字段可以設置在每條日志的前100個字節,或者每條日志的后100個字節。步驟1222,如果預設字段的數據與目標二進制碼匹配,則將第一日志信息作為與目標二進制碼匹配的二進制日志信息。將預設字段的二進制數據域目標二進制碼進行比較,若兩者匹配,則第一日志信息作為與目標二進制碼匹配的二進制日志信息。本實施例的技術方案,通過將預設字段中的二進制數據與目標二進制碼比較,獲取與目標二進制碼匹配的二進制日志信息。目標二進制碼無需與第一日志信息包含的所有二進制信息比較即可獲得與目標二進制碼匹配的二進制日志信息,可節約時間,提高獲取與目標二進制碼匹配的二進制日志信息的效率。步驟123,將查找到的二進制日志信息轉換為文本格式的目標日志信息。將查找到的二進制日志信息轉換為文本格式的目標日志信息的方法可以是,可以采用二進制轉化文本工具或者利用業界轉化規范,將二進制信息轉化為文本格式。文本格式的目標日志信息可以直觀的看到對業務信息進行操作的操作事件的時間、操作事件的類型以及操作事件的具體內容。本實施例的技術方案,首先將目標業務的主鍵進行二進制轉換,得到目標二進制碼,然后在業務數據庫對應的日志文件中查找與目標二進制碼匹配的二進制日志信息,最后將查找到的二進制日志信息轉換為文本格式的目標日志信息。通過將查找到的二進制日志信息轉換為文本格式的目標日志信息,使得業務信息與流水數據的業務具有一致性,使流水數據具有事務保證。實施例三圖3為本發明實施例三提供的一種流水數據的生成方法的流程圖,以上述實施例為基礎,如圖3所示,步驟130包括:步驟131,獲取目標日志信息的事件類型參數。其中,事件類型可以是插入、更新和刪除等。獲取目標日志信息的事件類型參數的方式可以是,將目標日志信息的二進制文本中起始英文翻譯為中文,中文代表的意思即為事件類型。示例性的,英文為“insert”,則事件類型為“插入”,若英文為“update”,則事件類型為“更新”。步驟132,獲取目標日志信息包含的業務信息參數。業務信息參數可以是目標業務涉及的參數,示例性的,以網購業務為例,涉及的業務信息參數可以包括訂單號、商品名稱、訂單狀態、創建事件及最后修改事件等。日志信息包含的業務信息參數與目標業務的業務信息一一對應,根據他們之間的對應關系,獲取目標業務的業務信息參數。步驟133,將事件類型參數和業務信息參數添加到預設格式的流水數據表格中,得到目標業務的流水數據。其中,預設格式可以是在目標業務數據表的格式的基礎上增加自增主鍵和事件類型兩列形成的流水數據表格式。本應用場景下,獲取到的事件類型后,依照自增主鍵的先后順序,將事件類型參數添加至流水數據表格中,獲取到業務信息參數后,按照業務信息與表格中業務信息的對應關系依次添加至流水數據表格中。示例性的,以客戶在電商網站購買商品為例,具體表示生成業務流水數據的過程。假設購買商品分為以下幾步:a.下單:選好商品,點擊購買;b.付款:點擊付款,完成支付;c.發貨:商家確認已發貨;d.收貨:客戶已確認收到貨。在這四個過程中,對應的訂單狀態可以是:a.新增訂單,狀態碼為100;b.付款成功,狀態碼為200;c.已發貨,狀態碼為300;d.已收貨,狀態碼為400。針對這四個過程,業務系統會依次更新業務數據表。表5為業務數據表,當執行“下單”過程時,表5如下所示:表5當執行“付款”過程時,表5很更新為:同理,當執行“發貨”和“收貨”過程時,表5更依次更新其中的訂單狀態和最后修改事件。在數據庫中,訂單業務表只有表5一條記錄,且表5記錄的是業務的最終狀態。數據庫中沒執行一個過程,會生成對應的二進制日志,對二進制信息進行解析,得到文本日志。根據生成的文本日志,將訂單業務對應的四個過程的流水填入流水數據表中,生成的流水數據表如表6所示。表6由表6可以看出,訂單業務的四個過程分別體現在流水數據表中。實施例四圖4為本發明實施例四提供的一種流水數據的生成裝置的結構示意圖,如圖4所示,該裝置包括:目標業務確定模塊410,目標日志信息獲取模塊420和流水數據生成模塊430。目標業務確定模塊410,用于當接收到流水數據請求時,根據所述流水數據請求確定目標業務;目標日志信息獲取模塊420,用于從業務數據庫對應的日志文件中獲取所述目標業務對應的至少一個目標日志信息;流水數據生成模塊430,用于根據所述至少一個目標日志信息生成所述目標業務的流水數據。優選的,還包括:目標業務信息查找模塊,用于從業務數據庫中查找目標業務對應的目標業務信息;相應的,流水數據生成模塊430,還用于根據至少一個目標日志信息和目標業務信息生成目標業務的流水數據。優選的,流水數據生成模塊430,還用于:根據記錄時間對至少一個目標日志信息進行排序,得到排序結果;根據下述迭代算法計算至少一個目標日志信息對應的流水數據:根據目標業務信息以及第二日志信息生成第二日志信息對應的流水數據,第二日志信息為與目標業務信息的時間差距最小的目標日志信息;根據第二日志信息對應的流水數據及第三日志信息,生成第三日志信息對應的流水數據,第三日志信息為按照排序結果選擇的第二日志信息的前一個日志信息;根據生成的至少一個目標日志信息對應的流水數據,確定目標業務的流水數據。優選的,業務數據庫對應的日志文件為二進制文件,相應的,目標日志信息獲取模塊420,包括:目標二進制碼獲取模塊,用于將目標業務的記錄標識進行二進制轉換,得到目標二進制碼;二進制日志信息查找模塊,用于在業務數據庫對應的日志文件中查找與目標二進制碼匹配的二進制日志信息;二進制日志信息轉換模塊,用于將查找到的二進制日志信息轉換為文本格式的目標日志信息。優選的,流水數據生成模塊430,還用于:獲取目標日志信息的事件類型參數;獲取目標日志信息包含的業務信息參數;將事件類型參數和業務信息參數添加到預設格式的流水數據表格中,得到目標業務的流水數據。上述產品可執行本發明任意實施例所提供的方法,具備執行方法相應的功能模塊和有益效果。實施例五圖5為本發明實施例四提供的一種流水數據的生成系統的結構示意圖,如圖5所示,該系統包括至少一個終端510及服務器520。其中服務器520包括實施例四所述的流水數據的生成裝置。當用戶需要目標業務的流水數據時,將流水數據請求輸入終端510中,終端將接收到的流水數據請求發送給服務器520。服務器520當接收到流水數據請求時,根據流水數據請求確定目標業務,然后從業務數據庫對應的日志文件中獲取目標業務對應的至少一個目標日志信息,再然后從業務數據庫中查找目標業務對應的目標業務信息,最后根據至少一個目標日志信息和目標業務信息生成目標業務的流水數據。服務器520將生成的流水數據發送給終端510,終端510將流水數據打印出來或者顯示在界面上。注意,上述僅為本發明的較佳實施例及所運用技術原理。本領域技術人員會理解,本發明不限于這里所述的特定實施例,對本領域技術人員來說能夠進行各種明顯的變化、重新調整和替代而不會脫離本發明的保護范圍。因此,雖然通過以上實施例對本發明進行了較為詳細的說明,但是本發明不僅僅限于以上實施例,在不脫離本發明構思的情況下,還可以包括更多其他等效實施例,而本發明的范圍由所附的權利要求范圍決定。當前第1頁12