簡體   English   中英

Clickhouse“輕量級刪除”未按預期從后續查詢中過濾,僅在異步調用完成后過濾

[英]Clickhouse 'lightweight deletes' are not filtered from subsequent queries as expected, only filtered once asynchronous call is complete

我正在嘗試新的 clickhouse 輕量級刪除,它會在下一次合並時刪除行,但會立即異步“標記”它們,以便它們不會顯示在后續查詢中。

我正在關注的指南在這里:https://clickhouse.com/docs/en/sql-reference/statements/delete/

但這似乎並沒有按預期發生。 刪除后,大約需要 2-3 分鍾,我返回的查詢才會從結果中排除。 我在這里錯過了什么嗎?

例如

我有一個名為“測試”的 collapsingMergeTree 表,其中包含以下三行:

ID 名稱
syGGJVGETbzKMkayoYYaAg 基倫
wFhZdsdjf1xmcHGqK1CQQf 麥克風
abfZrhYkiafg7qr9jAwseG 彼得

我試圖跑

DELETE FROM test WHERE Id = 'syGGJVGETbzKMkayoYYaAg' SETTINGS allow_experimental_lightweight_delete=1;

// OR

SET allow_experimental_lightweight_delete=1;
DELETE FROM test WHERE Id = 'syGGJVGETbzKMkayoYYaAg' 

但是,當我運行查詢時,直到大約 5 分鍾后,我仍然在結果中得到已刪除的記錄。

我在本地使用 clickhouse docker 圖像 (clickhouse/clickhouse-server) 進行測試。

在此先感謝您的幫助。

--- 你嘗試了什么 ---

嘗試了文檔代碼,預計結果會立即隱藏並在后台刪除,如頁面所示。

如果我做錯了什么或遺漏了什么,請告訴我

DELETE FROM test默認是異步的。 不僅是刪除過程,還有DELETE本身。

你可以使用mutations_sync=2

DELETE FROM test 
WHERE Id = 'syGGJVGETbzKMkayoYYaAg' 
SETTINGS allow_experimental_lightweight_delete=1, mutations_sync=2;

它使您的刪除同步。

(此行為今天已更改 BTW https://github.com/ClickHouse/ClickHouse/pull/44718

所以目前你運行DELETE FROM test...它立即返回控制並且什么都不做。!! 除了它會產生突變。 此突變在后台異步更改不可見列_deleted匹配 WHERE 條件的行,此過程可能需要幾秒、幾分鍾、幾小時、幾天。 之后您的選擇將看不到這些行。 在那之后最終或永遠不會在合並期間刪除標記的行,這可能需要幾個月的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM