我在某处读到这样的信息,表明对于在标准列族中有成千上万列的行,更好的设计将它们拆分为超级列,并且通过这样做,读取将非常有效,因为cassandra只需要在给定的超级列名下加载和返回列,而不是加载并可能返回列的thoudsands。任何人都可以确认吗?标准列家族vs超级列家族
4
A
回答
6
这不是很好的建议。此时,超级列是最佳解决方案的用例数量非常少。对于大多数历史上使用的超级柱,新的CompositeTypes是更好的解决方案。
说了这话,听起来好像你在这里也不需要CompositeTypes。确实,如果你阅读的是一个非常大的行,你不应该一次拉回整行。相反,您应该在连续的切片中获取部分行。
基本上,您将执行一系列get_slice()
s。对于第一个,将列数设置为例如1000,并且列开始为“”。然后,从该组结果中取出最后一个列名称(称为X),并调用列计数为1000的另一个,但这次将列开始设置为X.放弃返回的第一列(它将是X),然后重复整个get_slice()
进程,直到查询返回少于1000列,这表示您已经击中行的末尾。
根据您的列大小,您可能希望一次获取多于或少于1000个数据。
0
如果将有许多列或数据应该被索引,那么最好创建一个正常的列族,因为:1)超级CF子列未被索引,以及2)对子列的任何请求反序列化全部超级列中的子列。但是,这可能是当前代码库的一个限制,请参阅http://wiki.apache.org/cassandra/CassandraLimitations
+0
CQL'CREATE TABLE'与多列和超列之间有什么区别?因为感觉和我相当... –
相关问题
- 1. 列家庭,超级列家族,卡桑德拉超级列
- 2. Hbase - 如何添加超级列家族?
- 3. 超级列族
- 4. Hbase多列家族vs多个表
- 5. 如何设置Hbase表列家族的列族大小?
- 6. windows azure os家族
- 7. 删除超列家族子列的最佳方法
- 8. 比较cassandra中的两列家族
- 9. 如何格式排列家族树
- 10. Cassandra多个键空间或列家族?
- 11. WPF字体家族:Fonts.SystemFontFamilies&System.Drawing.Text.InstalledFontCollection()。家庭
- 12. 了解字体家族
- 13. 字体家族在Firefox
- 14. ReportViewer和字体家族
- 15. Local Storage字体家族
- 16. 字体家族CSS转换
- 17. dompdf字体家族问题
- 18. Emacs的字体家族
- 19. PHP MYSQL家族树“约”页
- 20. 家族树项目javafx
- 21. 类型家族多态性
- 22. 创建家族树的树
- 23. 卡桑德拉:柱族VS超级柱族
- 24. Cassandra超级列族模式创建
- 25. 标签内的字体家族
- 26. 字体家族属性 - 如何处理非标准字体?
- 27. 卡桑德拉:获取列家族的列名称?
- 28. 是否有可能改变hbase中列的列家族?
- 29. Apache cassandra - 为应用程序设计数据库 - 如何选择列族和超级超级列族?
- 30. 如何在列族中的超级列下创建子列
请注意,返回小于1,000列的查询可能不会以信号结束。根据我的经验,我有时候会收到较少的专栏。你应该阅读,直到它返回零。反正可能是一个更简单的算法。另外,我很高兴您指定要阅读的行数取决于列的大小。我经常使用100个,因为我的一些列有大量的数据。 –