我正在使用Cassandra,並且我想創建一個顯示任何列系列內容的數據瀏覽器。我需要獲取列名來配置UI網格。是否有可能收集所有行中列的名稱?如何列出Cassandra列族中的所有列名?
回答
最好的辦法,如果你正在使用Cassandra的1.1:
SELECT column_name FROM system.schema_columnfamilies WHERE keyspace_name = X AND columnfamily_name = Y
這個答案有幾個部分。
首先,要回答您的具體問題,您應該使用sliceQuery來獲取連續的所有列。傳遞一個空字節緩衝區的開始和結束值,有效地請求所有列:
ByteBuffer empty = ByteBufferUtil.EMPTY_BYTE_BUFFER;
sliceQuery.setRange(empty,empty,false,100);
其次,你需要做一個關於數據模型被存儲在列族假設。
如果數據模型是靜態的(每個對象一個行,每個屬性一個列),那麼返回的列名應該是要顯示的列名。但是,如果數據以動態方式存儲(每列一個對象,具有相同主鍵的所有對象都存儲在同一行中) - 例如時間序列 - 則需要了解列名字(可能是複合的)需要被解釋。動態方法的另一個非常常見的用法是在通過CQL定義時,列族持續存在的方式。
我應該補充說,沒有辦法告訴一個列族如何被用來存儲對象。有可以查詢的模式,但它只能告訴你數據如何在持久化時被格式化,而不是數據(和屬性名稱)如何被序列化和反序列化。
對不起,但在此之前,我得到的所有列在一排,我需要獲得該行,並且需要知道行鍵才能做到這一點。在我的情況下,我只知道列家族的名稱,而不瞭解其中的行。所以我想要做的是掃描所有行並收集行標識符,或者至少掃描特定列的所有值。 P.S.我來自一個關係世界,Cassandra給了我很大的困難。 – user1511772 2012-07-09 12:55:09
所以你的問題真的是關於如何使用赫克託普遍? – 2012-07-09 13:32:18
http://hector-client.github.com/hector/build/html/content/getting_started.html#read – pd40 2012-07-10 00:17:23
試試這個:
select columnfamily_name from system.schema_columnfamilies where keyspace_name=‘mykeyspace';
- 1. 如何從ruby客戶端的cassandra列族中獲取列名?
- 2. 如何列出keyspace中的列族?
- 3. cassandra:不一致的列族
- 4. Cassandra使用JMX的列族列表
- 5. 如何列出所有cassandra表
- 6. 如何在Cassandra的列族中定義動態列?
- 7. 如何使用cql在cassandra的列族中動態添加列
- 8. Cassandra如何對靜態列族排序
- 9. 如何使用非鍵列從Cassandra列族中刪除行?
- 10. 如何從另一個列中填充Cassandra列族?
- 11. Cassandra列名列名
- 12. 列出所有列名
- 13. cassandra中未配置的列族
- 14. 比較cassandra中的兩列家族
- 15. Datastax中的動態列族Cassandra
- 16. 如何獲得用pycassa存儲在Cassandra列族中的所有密鑰?
- 17. 使用Astyanax列出在卡桑德拉列族的所有行
- 18. 如何使用phpcassa獲取cassandra中所有行的列名?
- 19. 不同數據類型的Cassandra列族
- 20. 如何列出Netezza中的所有列名稱?
- 21. 在Cassandra的列族中創建一個子列
- 22. 如何計算cassandra列族中的行數
- 23. 如何從Cassandra的列族中回收存儲
- 24. 如何定義cassandra中的動態列族
- 25. 查詢所有列cassandra
- 26. Cassandra CLI使用主鍵創建列族
- 27. 無法在cassandra創建列族
- 28. Cassandra超級列族模式創建
- 29. Cassandra多個鍵空間或列家族?
- 30. 列出所有列元素名稱
這裏有一些很好的hector示例這看起來是最方便的解決方案。我現在使用的是Cassandra 1.0.9,所以我不能嘗試這個。 – user1511772 2012-07-10 08:01:32
對於Cassandra 1.2(顯然,我使用的是2.0.4),您需要查詢[schema_columns](http://www.datastax.com/documentation/cql/cql_using/use_query_system_c.html?pagename=docs&version=1.2&file = cql_cli/using/query_system_tables) 'SELECT column_name FROM system.schema_columns WHERE keyspace_name =? AND columnfamily_name =?' – 2014-01-29 20:45:28
在Cassandra 2中不起作用。*。任何鏈接到網站? – shankbond 2015-04-06 03:46:02