一種HBase數據庫的數據處理方法及裝置,用以在不影響HBase數據庫對外提供服務的性能的前提下,提升刪除或修復HBase數據庫中大規模數據的時效性。該方法包括:確定HBase數據庫中待刪除或待修復的第一數據表在TiDB數據庫中對應的第二數據表;基于第一數據表與第二數據表的存儲格式映射關系,將第二數據表中的數據轉換為HBase數據庫的底層文件HFile文件;將HFile文件導入HBase數據庫;HFile文件帶有時間戳以及表征刪除操作或修復操作的第一標識,且HFile文件的時間戳大于第一數據表的時間戳;第一標識與時間戳用于HBase數據庫確定對外提供服務的數據。外提供服務的數據。外提供服務的數據。
【技術實現步驟摘要】
一種HBase數據庫的數據處理方法及裝置
[0001]本申請涉及大數據
,尤其涉及一種HBase數據庫的數據處理方法及裝置。
技術介紹
[0002]目前交易系統的架構中,通過TiDB數據庫對每天的交易等數據進行批量處理,由HBase數據庫負責所有歷史數據的保存與查詢,TiDB數據庫將批量處理后的數據定時導入HBase數據庫中。但是,在交易系統不斷迭代和運營過程中,可能出現錯誤數據進入HBase數據庫中的情況發生。當HBase數據庫中存在錯誤數據,需要將錯誤數據從HBase數據庫中刪除或者替換。
[0003]目前,將錯誤數據從HBase數據庫中刪除的方式是,讀取HBase數據庫中需要刪除的數據,通過HBase
?
Client提供的刪除API操作,將數據進行刪除,然后通過HBase
?
Client提供的讀取API操作,驗證數據是否刪除。類似的,將錯誤數據從HBase數據庫中替換的方式是,讀取HBase數據庫中需要替換的數據,通過HBase
?
Client提供的刪除API操作,將數據進行刪除,然后將正確的數據推送到HBase數據庫中。
[0004]但是上述方式在刪除或替換HBase數據庫中大規模數據時,需要花費大量的時間,并且當刪除過程發生中斷時,可能會造成數據刪除的不準確的情況發生。為了提高刪除或替換HBase數據庫中大規模數據的時效性,可以通過提高并發的形式去進行刪除數據的處理,但是高并發又會對HBase數據庫的Region Server提供的服務造成性能上的壓力。
技術實現思路
[0005]本申請提供一種HBase數據庫的數據處理方法及裝置,用以在不影響HBase數據庫對外提供服務的性能的前提下,提升刪除或修復HBase數據庫中大規模數據的時效性。
[0006]第一方面,本申請提供一種HBase數據庫的數據處理方法,該方法包括:確定HBase數據庫中待刪除或待修復的第一數據表在TiDB數據庫中對應的第二數據表;基于所述第一數據表與所述第二數據表的存儲格式映射關系,將所述第二數據表中的數據轉換為HBase數據庫的底層文件HFile文件;將所述HFile文件導入HBase數據庫;所述HFile文件帶有時間戳以及表征刪除操作或修復操作的第一標識,且所述HFile文件的時間戳大于所述第一數據表的時間戳;所述第一標識與所述時間戳用于所述HBase數據庫確定對外提供服務的數據。
[0007]上述技術方案中,對于HBase數據庫中需要刪除或修復的第一數據表中的數據,將與其在TiDB數據庫中對應的第二數據表中的數據生成HBase數據庫的底層文件HFile文件,然后導入HBase數據庫中。HBase數據庫根據HFile文件的刪除或修復操作的標識以及時間戳來實現對數據的刪除或者導入,可以高效地刪除或修復HBase數據庫中的大規模數據。
[0008]在一種可能的設計中,所述將所述HFile文件導入HBase數據庫之后,還包括:通過大合并操作對相同的HFile文件進行合并,在所述第一標識為第一值時,對所述相同的HFile文件均進行物理刪除;在所述第一標識為第二值時,在所述相同的HFile文件中保留
時間戳最大的HFile文件,對其它的HFile文件進行物理刪除;其中,所述相同的HFile文件為具有相同鍵且不同導入時間的各HFile文件。
[0009]上述技術方案中,HBase數據庫通過大合并操作對多個HFile進行合并,將過期數據以及多余版本的數據進行物理刪除,可以提高HBase數據庫讀寫數據的效率。
[0010]在一種可能的設計中,所述基于所述第一數據表與所述第二數據表的存儲格式映射關系,將所述第二數據表中的數據轉換為HBase數據庫的底層文件HFile文件,包括:根據所述第一數據表與所述第二數據表的存儲格式映射關系,將所述第二數據表中的每行數據映射為所述HBase數據庫中的多個鍵值KV數據;每個KV數據包括行鍵、列簇、列名、value值、時間戳和KV類型;讀取所述HBase數據庫中第一數據表的元數據的分區信息,將所述第二數據表映射后的所有KV數據生成相應分區的HFile文件。
[0011]在一種可能的設計中,所述第一數據表與所述第二數據表的存儲格式映射關系包括第一關系映射表以及第二關系映射表;所述第一關系映射表表示所述第一數據表與所述第二數據表之間的表結構映射關系,所述第二關系映射表表示所述第一數據表中與所述第二數據表之間的列映射關系;所述根據所述第一數據表與所述第二數據表的存儲格式映射關系,將所述第二數據表中的每行數據映射為所述HBase數據庫中的多個鍵值KV數據,包括:根據所述第一關系映射表得到所述第二數據表的行健字段和列簇字段;根據所述第一關系映射表中的映射標識字段得到所述第二關系映射表;根據所述第二關系映射表中得到所述第二數據表中的各列字段的列名;針對所述第二數據表中的每行數據,確定所述行數據在所述HBase數據庫中對應的KV數據;每行數據的KV數據包括:行健、列簇、列名、時間戳和KV類型,V:value值。
[0012]在一種可能的設計中,將所述第二數據表中的每行數據映射為所述HBase數據庫中的多個鍵值KV數據,包括:根據所述第一關系映射表中的日期字段得到時間范圍,根據所述時間范圍確定所述第二數據表中行數據的范圍;將所述第二數據表中所述時間范圍內的行數據按照時間和/或數據量進行分塊;并行地將各個分塊中的每行數據映射為所述HBase數據庫中的多個鍵值KV數據。
[0013]上述技術方案中,將大規模的數據按照一定大小進行分塊,可以使不同塊的數據能夠并行處理,提高數據的處理效率。
[0014]在一種可能的設計中,確定HBase數據庫中待刪除或待修復的第一數據表在TiDB數據庫中對應的第二數據表之前,還包括:生成與所述第一數據表和所述第二數據表相關聯的數據同步任務信息表,所述數據同步任務信息表用于記錄所述HBase數據庫導入任務的詳細信息。
[0015]上述技術方案中,數據同步任務信息表中記錄有此次任務的詳細信息,便于后續對該次任務的追溯。
[0016]在一種可能的設計中,所述方法還包括:統計導入所述HBase數據庫中所有KV數據的數量,以及所述TiDB數據庫的第二數據表中行數與列數的乘積;驗證所述數量與所述乘積是否一致。
[0017]上述技術方案中,通過統計導入到HBase數據庫中的所有KV數據的數量,來分析此次從TiDB數據庫中導入至HBase數據庫中的數據數量是否準確,是從數據匯總層面對數據量進行對比,可以及時驗證數據從TiDB數據庫導入HBase數據庫的過程中是否出現錯誤。相
比于通過HBase數據庫提供的API進行全表掃描來進行驗證,會對HBase數據庫本身造成非常嚴重的性能問題,該方式不會對HBase數據庫造成性能上的影響。
[0018]在一種可能的設計中,所述將所述第二數據表中的數據轉換為HBase數據庫的底層文件HFile文件之前,還包括:本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種HBase數據庫的數據處理方法,其特征在于,所述方法包括:確定HBase數據庫中待刪除或待修復的第一數據表在TiDB數據庫中對應的第二數據表;基于所述第一數據表與所述第二數據表的存儲格式映射關系,將所述第二數據表中的數據轉換為HBase數據庫的底層文件HFile文件;將所述HFile文件導入HBase數據庫;所述HFile文件帶有時間戳以及表征刪除操作或修復操作的第一標識,且所述HFile文件的時間戳大于所述第一數據表的時間戳;所述第一標識與所述時間戳用于所述HBase數據庫確定對外提供服務的數據。2.根據權利要求1所述的方法,其特征在于,所述將所述HFile文件導入HBase數據庫之后,還包括:通過大合并操作對相同的HFile文件進行合并,在所述第一標識為第一值時,對所述相同的HFile文件均進行物理刪除;在所述第一標識為第二值時,在所述相同的HFile文件中保留時間戳最大的HFile文件,對其它的HFile文件進行物理刪除;其中,所述相同的HFile文件為具有相同鍵且不同導入時間的各HFile文件。3.根據權利要求1所述的方法,其特征在于,所述基于所述第一數據表與所述第二數據表的存儲格式映射關系,將所述第二數據表中的數據轉換為HBase數據庫的底層文件HFile文件,包括:根據所述第一數據表與所述第二數據表的存儲格式映射關系,將所述第二數據表中的每行數據映射為所述HBase數據庫中的多個鍵值KV數據;每個KV數據包括行鍵、列簇、列名、value值、時間戳和KV類型;讀取所述HBase數據庫中第一數據表的元數據的分區信息,將所述第二數據表映射后的所有KV數據生成相應分區的HFile文件。4.根據權利要求3所述的方法,其特征在于,所述第一數據表與所述第二數據表的存儲格式映射關系包括第一關系映射表以及第二關系映射表;所述第一關系映射表表示所述第一數據表與所述第二數據表之間的表結構映射關系,所述第二關系映射表表示所述第一數據表中與所述第二數據表之間的列映射關系;所述根據所述第一數據表與所述第二數據表的存儲格式映射關系,將所述第二數據表中的每行數據映射為所述HBase數據庫中的多個鍵值KV數據,包括:根據所述第一關系映射表得到所述第二數據表的行健字段和列簇字段;根據所述第一關系映射表中的映射標識字段得到所述第二關系映射表;根據所述第二關系映射表中得到所述第二數據表中的各列字段的列名;針對所述第二數據表中的每行數據,確定所述行數據在所述HBase數據庫中...
【專利技術屬性】
技術研發人員:劉秘,
申請(專利權)人:深圳前海微眾銀行股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。