我试图弄清楚这些新的数据存储如bigtable,hbase和cassandra究竟是什么。 我使用大量的股票市场数据,数十亿行价格/报价数据,每天可以增加100亿字节(尽pipe这些文本文件通常压缩至less一个数量级)。 这个数据基本上是一些数字,两个或三个短的string和时间戳(通常是毫秒级)。 如果必须为每一行select一个唯一的标识符,我将不得不select整行(因为交换可能会在同一个毫秒内为同一个符号生成多个值)。 我想将这个数据映射到bigtable的最简单方法是使用符号名称和date(这可能会返回一个非常大的时间序列,超过百万个数据点并不是闻所未闻的)。 从阅读他们的描述,看起来像这些系统可以使用多个键。 我还假设十进制数不是键的好select。 其中一些系统(例如Cassandra)声称能够进行范围查询。 在某一天的上午11点到下午1点半之间,我能否有效地查询MSFT的所有值? 如果我想要search给定date的所有符号,并请求价格介于10美元和10.25美元之间的所有符号(所以我正在search这些值,并希望返回结果键)? 如果我想得到两个系列,从另一个减去一个系列,并返回两个系列及其结果,我是否必须在自己的程序中执行他的逻辑? 阅读相关论文似乎表明,这些系统不适合大量的时间序列系统。 但是,如果谷歌地图这样的系统是基于他们的,我认为时间序列也应该起作用。 例如,将时间视为x轴,将价格视为y轴,将符号视为指定位置 – 突然间,它看起来像bigtable应该是时间序列的理想存储区(如果整个地球可以存储,检索,放大和注释,股市数据应该是微不足道的)。 有些专家可以指导我正确的方向,或者澄清任何误解。 谢谢
使用两个数据库来说明这个例子: CouchDB和Cassandra 。 CouchDB的 CouchDB使用一个B +树来处理文档索引(使用一个巧妙的修改在其append-only环境中工作) – 更具体地说,当文档被修改(插入/更新/删除)时,它们被附加到正在运行的数据库文件以及完整的Leaf – >所有节点的B +树节点path,由文档之后的更新版本实现。 这些分片索引修订内容正好与修改一起内联,使得完整索引是在文件末尾附加的最近的索引修改的联合,以及在数据文件中更远的附加部分,这些附加的部分仍然是相关的,尚未修改。 searchB +树是O(logn)。 卡桑德拉 Cassandra将logging键保存在表中(我们把它们看作是这个问题的数组),并将它们作为单独的(sorting的) sortingstring表格不时地写出来。 我们可以把所有这些表格的集合看作是“索引”(从我的理解)。 Cassandra需要时常压缩/合并这些sortingstring表 ,创build更完整的索引文件表示。 searchsorting的数组是O(logn)。 题 假设维护CouchDB中的部分B +树块与Cassandra中的部分sortingstring索引之间存在类似的复杂度,并且假设两者都提供O(logn)search时间,那么您认为哪一个会更好地表示数据库索引,以及为什么? 我特别好奇的是,如果有一个相对于另一个的实现细节,使其特别具有吸引力,或者如果他们都是洗钱,并且您只是select您喜欢使用的任何数据结构/对开发人员更有意义。 谢谢你的想法。
为什么使用HBase比使用Cassandra和Hadoop更好? 任何人都可以给这个详细的解释吗? 谢谢
考虑到TimeUUID可以轻松地在CQL中使用now() ,是否有任何理由不会继续使用TimeUUID而不是普通的旧UUID?
我正在构build一个跟踪和validation广告展示次数和点击次数的系统。 这意味着有很多插入命令(平均每秒90次,峰值为250)和一些读取操作,但重点在于性能,并使其非常快速。 该系统目前在MongoDB上,但自那时以来我已经被介绍给了Cassandra和Redis。 去这两个解决scheme之一,而不是留在MongoDB上是一个好主意吗? 为什么或者为什么不? 谢谢
对Cassandra执行CQL时, UPDATE和INSERT什么区别? 看起来似乎没有什么区别,但现在文档说INSERT不支持计数器而UPDATE 。 有没有一个“首选”的方法来使用? 还是有一种情况下应该使用另一种? 非常感谢!
各种NoSQL数据库有哪些优势和劣势? 特别是Redis似乎很难在多个服务器上分配写入负载。 是这样吗? 这是一个大问题吗? 在这之前,服务需要增长多less可能是一个重大问题?
是否有关于何时使用Cassandra或Membase或Hadoop或普通的旧关系数据库的文章/博客文章? 有没有一篇论文讨论每个技术的优缺点,以及应该select哪种技术? 我正在考虑编写一个新的web服务,每天大约有一百万次访问,数据跨越几TB。
有没有任何强大的方法来实现Cassandra后端到使用Django Web框架开发的Web应用程序?
有谁知道Cassandra中两个CQL数据typestext和varchar的区别吗? Cassandra文档将这两种types描述为“UTF-8编码的string”,仅此而已。