1. 程式人生 > >多線程處理海量數據的解決方案

多線程處理海量數據的解決方案

部分 font 要求 開啟 bsp sku 數據 修復 現象

背景:

  近期發現系統數據有不準確的現象發生,究其原因是因為上有數據導致的,而由於上遊有多個渠道組成,所以無法要求上遊統一修復數據。所以只能自己想辦法每天修復錯誤數據。

初步解決方案:

  1,從商城庫存那邊拿到所有SKU+庫存的信息。

  2,通過拿到的SKU+庫存信息,修復現有的數據。

遇到的問題:

  1,庫存那邊的數據是以SKU+倉庫id+配送中心id為維度,但是我們這邊需要的是SKU+ORG維度。

  2,全量庫存數據有1.2個億。

解決辦法:

  1,先把庫存的原始數據(SKU+倉庫ID+配送中心id)數據落地。

  2,將原始數據清洗為SKU+ORG維度。

  3,將清洗好的數據中過濾掉,不需要的庫存信息。

  4,開啟多個多線程同時修復數據。

多線程部分:

  共同時開啟4個線程(0、1、2、3),用SKU_ID對4取模

  也就是說:

  線程0處理的數據範圍為:SKU_ID%4=0 的數據。

  線程1處理的數據範圍為:SKU_ID%4=1 的數據。

  線程2處理的數據範圍為:SKU_ID%4=2 的數據。

  線程3處理的數據範圍為:SKU_ID%4=3 的數據。

每個線程,每次再分頁處理數據,即可。經過嘗試,1.2個億的數據分4個線程大概半個小時,即可處理完。

多線程處理海量數據的解決方案