【Cassandra】查看列的時間戳

列是 Cassandra 數據模型中最基本的數據結構單元,每次向 Cassandra 寫入數據時,會爲更新的各個列值生成一個時間戳。如果多個寫操作同時修改同一個值,則 Cassandra 內部就會使用這些時間戳來解決衝突,我們可以通過 writetime(column) 指令來查看相應的時間戳信息,下面是詳細的操作:

首先我們先建一張臨時表,有三個列,當前表中沒有數據
在這裏插入圖片描述
通過 INSERT 語句,向 Cassandra 中插入一條數據
在這裏插入圖片描述
此時我們就可以通過 writetime 來查詢這兩個列值的時間戳
在這裏插入圖片描述
這裏要注意,我們不可以請求主鍵列的時間戳,進行請求則報錯
在這裏插入圖片描述
我們知道對於更新操作,更新的最基本單位應該是列,接下來我們通過時間戳來證明
對剛纔的數據進行更新操作,將 test_b,由 1 變成 2
在這裏插入圖片描述
我們可以看到值更新,更新成功
我們再查看這兩個列值的時間戳
在這裏插入圖片描述
我們可以看到,test_b 列對應的時間戳已經更新,且大於 test_c 的時間戳,證明了更新實際上是以列值爲單位,而不是整條數據進行更新

我們也可以指定時間戳進行更新,例如使用 UPDATE 語句,使用 USING TIMESTAMP xx 進行指定,例如我們將 test_b 的值修改爲 5,同時指定了時間戳
在這裏插入圖片描述
這裏注意一點,如果指定的時間戳小於當前的時間戳,是沒有用的,因爲 Cassandra 會比較通過最後的時間戳未準,例如我現在將 test_b 從 2 改爲 5,但是指定一個小於數據庫記錄的時間戳
在這裏插入圖片描述
這裏可以看到更新沒有成功,根本原因就是 test_b 的列值中,2 的時間戳大於 5的時間戳

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