反轉Cassandra索引

2021-09-05 23:47:50 字數 866 閱讀 2591

通過前面的文章:《談談cassandra的客戶端》和《大話cassandra資料模型》我們已經了解了cassandra的資料模型和程式設計介面的情況。

假如我們在實際的應用中我們的資料是這樣儲存的:

每乙個key對應了一些列的column:port,version,service,status等等。

通過某乙個key,我們能夠找到和這個key相關的所有column的值。

根據cassandra提供的thrift api,我們並不能夠直接找到這樣的資料,唯一可以操作的方式就是通過keyrange的方式:進行全表掃瞄,找到符合條件的值。

這種方式雖然可以解決問題,但是當資料量非常巨大的時候,進行這種查詢的效率還是非常有限的。

我們可以考慮使用反轉索引的辦法來解決這類的查詢問題。

在原先資料模型的基礎之上,我們根據實際的查詢需求,建立以下額外的資料

當我們想知道這樣的key中其他的column值的時候,只要根據上一步找到的key,再次執行查詢即可。

同樣,我們想知道有column的name為service1的所有key值時候,我們可以直接將service1作為key傳給cassandra,然後就可以獲得所有相應的key了。

這種方案的侷限在於,如果需要索引的值越多,需要的額外空間就越大,同時當被索引的值進行修改的時候,索引的值也要同步進行修改。

還有一種方式。可以考慮使用lucandra。在這篇文章中就不詳細介紹了。

更多關於cassandra的文章:

cassandra的索引查詢和排序

cassandra的索引查詢和排序 cassandra的查詢雖然很弱,但是它也是支援索引和排序的,當然是簡陋的查詢,這一切都是為了追求效能的代價,所以要使用cassandra,你不能希望它完全適用你的邏輯,而是把你的邏輯設計的更適合cassandra。第一 索引查詢 cassandra是支援建立二級...

cassandra的索引查詢和排序

cassandra的索引查詢和排序 cassandra的查詢雖然很弱,但是它也是支援索引和排序的,當然是簡陋的查詢,這一切都是為了追求效能的代價,所以要使用cassandra,你不能希望它完全適用你的邏輯,而是把你的邏輯設計的更適合cassandra。第一 索引查詢 cassandra是支援建立二級...

Cassandra 基本操作

嘗試乙個新的軟體 跑通乙個簡單的demo是必須的,下面的教程是我見到的最簡單的乙個,特地無恥的抄襲一下,時間略久了。啟動cassandra之後,我們可以用cassandra的命令列來執行cassandra的基本操作 先啟動cassandra cli 連線到cassandra服務 test clust...