項目中數據遷移實踐(更)

項目中的數據遷移(更)

需求

  • 數據服務的需求,除了公司集羣現有的業務數倉表之外,還需要用戶行爲數據,因爲主要是風控業務,所以大數據一直在做和規則機有關的數據處理和分析,由於定位問題,所以是有將行爲數據回收自己開發的想法,爲了完成這次關於用戶行爲的數據服務需求,並且未來方便起見,將所以行爲有關的events遷移到自己的集羣。
  • 字段500+,數據週期:半年,數據量TB。

過程

整體過程

三方集羣數據落地(腳本)到hive → 集羣去三方拉取數據(hdfs底層數據) → 數據存儲,結構,分析

問題

  • 三方集羣性能問題

    提供API和JDBC兩種方式,API方式會將impala拉取崩潰,JDBC方式繁瑣並且impala性能不穩,最後使用JDBC方式。

    每次不要處理的數據量過大,1000w左右就可以,畢竟中間是有障礙。

  • 三方存儲問題

    想要一次性的將所有數據落地然後一次性遷移,但是三方存儲不足,如果將全部數據重新落地,耗費太多的硬盤,所以是十天一個週期進行遷移,實際操作就是腳本操作,考慮到如果一次拉取全部數據我們集羣的spark也會耗費大量資源。

    所以在三方集羣落地時候腳本就是一天一張表,我們拉取也是一張表進行拉取做date循環。

  • 格式轉換問題,由於落地到hdfs的原始數據,所以很多數據會出錯,比如list會變成string,在拉取的過程中會和 \N 這種混在一起,就會出現對不齊的情況,最後數據就會出錯。

    所以在落地的時候提前進行數據探查,因爲desc看不到具體類型,只有string,所以必須自己探查,最後將list處理爲string就可以。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章