我有一個問題,關於如何可以通過CQLEngine在Cassandra中創建無價值列。我的意思是我想在某些目的的列名稱而不是列值的商店信息。 但是在CqlEngine中,您應該在模型文件中運行項目之前定義列名稱。 感謝您的幫助。如何創建無價值列在卡桑德拉通過CQLEngine
回答
傳統上,使用Thrift api和寬行來定義自己的列名稱可以實現您的問題。這不是CQL3的工作原理。如果你想以這種方式工作,你可以使用pycassa,或者你可以使用複合鍵創建列。
例如,CQL3:
create table ratings (user_id uuid, item_id uuid, rating int, primary key (user_id, item_id));
你會真正創建一個寬行,與USER_ID爲重點,列將有ITEM_ID和評價將是值。使用複合主鍵,行被轉換爲列。
您可能需要閱讀此:http://brianoneill.blogspot.com/2012/09/composite-keys-connecting-dots-between.html
感謝您的幫助。這篇文章非常有用,但讓我問你,這意味着在CQL3中不可能由程序員定義一個列名?在你的例子中,列名由兩個UUID字段定義,這兩個UUID字段將由系統自動生成,所以當我不知道列名時,如何進行分片查詢(查詢某個列,例如comment0到comment999)? –
我找到了它。我可以通過在我的CF中創建兩個主鍵或更多。 –
好吧,首先,我需要定義我的專欄的家庭是這樣的: 創建表測試( 用戶文本, itemLiked文本, 主密鑰(用戶,itemLiked) )
所以用戶是行鍵,itemLiked是集羣鍵。 如果我向此cf插入值,cassanndra不會爲該 創建行(內部),並且itemliked值將是列的名稱 插入test(user,itemLiked)值(「user1」,「Item1」) ; insert into test(user,itemLiked)values(「user1」,「Item1」);
所以卡桑德拉將創建具有名稱的Item1和項目2兩個列用於rowkey USER1 此列甲肝不任何值,並且如本文中描述:在一行 http://cassandra.apache.org/doc/cql3/CQL.html : 此外,表必須限定至少一個列不是PRIMARY KEY的一部分,因爲行只存在於Cassandra中,除非它包含至少一個此類列的值。
- 1. 卡桑德拉 - 如何通過添加到現有的價值
- 2. 卡桑德拉通過
- 3. 卡桑德拉:創建的CompositeType列
- 4. 在卡桑德拉
- 5. 在卡桑德拉
- 6. 在卡桑德拉
- 7. 卡桑德拉:在
- 8. 在卡桑德拉
- 9. 如何cqlengine查詢到從卡桑德拉表得到聚合值
- 10. 如何查詢使用Python的cqlengine從卡桑德拉BLOB主鍵列
- 11. 更新卡桑德拉通過python
- 12. 卡桑德拉:通過Perl的
- 13. 卡桑德拉查詢通過平均
- 14. 創建卡桑德拉模式
- 15. 卡桑德拉創建表/ CF延遲
- 16. 無法爲卡桑德拉
- 17. 卡桑德拉 - 如何創建複合列名使用cqlsh
- 18. 無法建立卡桑德拉源
- 19. 卡桑德拉。 SSTableLoader無法解碼值
- 20. 卡桑德拉 - CqlEngine:從CF某些領域並非所有
- 21. 卡桑德拉cqlengine增加日誌冗長
- 22. 卡桑德拉cqlengine不反映模型架構變化 - 遷移
- 23. 卡桑德拉2 - CQLEngine:將圖像存儲錯誤
- 24. 卡桑德拉CQL2:無法更新列
- 25. 卡桑德拉顯示列值
- 26. 卡桑德拉。默認列值
- 27. 卡桑德拉執行一些事情,如果價值存在
- 28. 的卡桑德拉
- 29. 卡桑德拉datamodelling
- 30. 在卡桑德拉CQL3創建複合列鍵/名
Django不支持卡桑德拉,我想。但我可能是錯的。 –
謝謝Mr. Brainiac,Django支持cassandra的驅動程序:pycassa和cqlengine。他們也很強大。你可以在谷歌上搜索它 –
不,我的意思是你沒有像Django那樣使用postgres或mysql給你的現成模型。 –