[應用場景]
對副本表進行 alter delete 數據后,同樣的數據再進行 insert into 操作.
[問題復現]


[問題解釋]
對副本表 insert 語句的數據會划分為數據塊. 每個數據塊會生成 block_id ,存在 zookeeper 相應表目錄的 block 子目錄下.根據這個 block_id 數據塊會去重,對於被多次寫的相同數據塊(大小相同且具有相同順序的相同行的數據塊),該塊僅會寫入一次。所以同樣的一份數據,多次 insert into 副本表,只有第一次會寫入數據.
現在問題是當對這份數據進行 aleter delete 操作后.數據成功刪除了,但是存在 zookeeper 上的 block_id 沒有被一並刪除.導致之后對這份數據進行 insert into ,會被表引擎判斷為重復數據,而被略過,使數據沒有落地到表里面.也就是查不出來這份數據.
[解決方案]
設置 set insert_deduplicate=0 臨時關閉去重機制
找到 zookeeper 下對應的 block_id ,手動刪除這個 block_id
