sqoop 匯出時資料一致性問題

2021-09-29 03:04:45 字數 394 閱讀 3533

sqoop 底層執行的其實是map 任務,預設4個map

如果4個map中有兩個map失敗了,但是另外兩個是成功的。這個時候匯入進mysql中的資料是不正確的,重新再導一次全部任務都成功,這兩次的資料會不一致。

為了保證匯出的時候資料是一致的sqoop有兩個引數配合使用

sqoop 匯出時並不會自動建立表

需要自己手動建立,如果使用這兩個引數的話還有建立乙個結構一樣的 表名_temp的mysql表

sqoop會先把資料匯入進這張臨時表中,所有任務都成功了。才會在mysql 中把臨時表中的資料匯入到真正的表中

sql server 匯出時沒有提供這個功能

–staging-table mysql表名_tmp \

–clear-staging-table \

CAS解決資料一致性問題

什麼是cas?compare and set cas 是一種常見的降低讀寫鎖衝突,保證資料一致性的方法。資料一致性是我們開發時必須注意的問題,特別涉及到錢這塊。這裡舉乙個使用者購物的例子 現有乙個使用者資訊表user account,表中字段為id,uid,amount。表中現有使用者甲,餘額100...

kafka學習七 資料一致性問題

這樣乙個場景 leader寫了10條資料 follower1同步了8條 follower2同步了9條 假如leader掛了,follower1或follower2任意乙個當選為leader,則會出現資料不一致的情況。為了解決這個問題,kafka維護了leo和hw兩個資料 如果沒有hw這個概念,假如消...

MySQL和redis資料一致性問題

保持資料庫和redis的資料一致性大致有兩種方案 一 先刪除快取,再更新資料庫 該方案會導致不一致的原因是。同時有乙個請求a進行更新操作,另乙個請求b進行查詢操作。那麼會出現如下情形 上述情況就會導致不一致的情形出現。而且,如果不採用給快取設定過期時間策略,該資料永遠都是髒資料。解決方案 採用延時雙...