Tag: nosql

最好的数据存储数十亿行

我需要为数十亿条logging(一年约30亿/月)存储less量的数据(大约50-75字节)。 唯一的要求是对具有相同GUID的所有logging进行快速插入和快速查找,并且可以从.net访问数据存储。 我是一个SQL服务器的人,我认为SQL Server 可以做到这一点,但所有关于BigTable,CouchDB和其他nosql解决scheme的讨论,听起来越来越像一个传统的RDBS的替代可能是最好的,由于优化分布式查询和缩放。 我尝试了cassandra,而.net库目前没有编译,或者都可能随着cassandra本身而改变 。 我已经查看了许多可用的nosql数据存储,但无法find满足我需求的一个强大的生产就绪平台。 如果你必须存储360亿个小logging,这样才能从.net访问,那么会select什么,为什么?

大规模数据处理Hbase vs Cassandra

在我对大型数据存储解决scheme进行研究后,我几乎登上了Cassandra。 但一般来说,Hbase是更好的大规模数据处理和分析解决scheme。 虽然两者都是相同的键/值存储,并且都可以运行(Cassandra最近的)Hadoop层,那么当需要在大数据上进行处理/分析时,Hadoop是一个更好的select。 我也在http://ria101.wordpress.com/2010/02/24/hbase-vs-cassandra-why-we-moved/上find了关于这两方面的很好的细节。 但我仍然在寻找Hbase的具体优势。 虽然我对Cassandra更加确信,因为它增加了节点和无缝复制的简单性以及无故障function。 而且它也保留了二级索引function,所以它是一个很好的补充。

你如何跟踪NoSQL中的logging关系?

我试图找出在NoSQL KVP或文档数据库中的外键和索引的等价物。 由于没有关键表(要添加标记两个对象之间的关系的键),所以我非常难以确定如何以一种对普通网页有用的方式检索数据。 假设我有一个用户,并且这个用户在整个网站上留下了很多评论。 我能想到跟踪用户评论的唯一方法是 将它们embedded到用户对象中(这似乎很无用) 创build并维护一个user_id:comments值,其中包含每个评论的关键字列表[评论:34,评论:197等],以便我可以根据需要获取它们。 然而,拿第二个例子来说,当你用它来跟踪其他东西,比如一个叫做“active_comments”的键时,你可能很快就会碰到一堵砖墙,这个键可能包含了三千万个ID,使得查询每个页面只是为了了解一些最近的东西积极的评论。 它也会很容易出现竞争状况,因为许多页面可能会尝试同时更新它。 如何在NoSQL数据库中跟踪以下关系? 所有用户的评论 所有活跃的评论 所有标有[关键字] 所有在俱乐部的学生 – 或者所有学生所在的俱乐部都在 还是我错误地想这个?

Redis在内存不足时做什么?

这可能是一个简单的问题,但我很难find答案。 Redis 2.0如何处理最大分配的内存? 它如何决定删除哪些数据或将哪些数据保存在内存中?

MongoDB / NoSQL:保持文档更改历史

数据库应用程序中一个相当常见的需求是跟踪对数据库中一个或多个特定实体的更改。 我听说过所谓的行版本控制,日志表或历史表(我敢肯定还有其他的名字)。 在RDBMS中有很多方法可以处理它 – 您可以将所有源表中的所有更改写入单个表(更多日志),或者为每个源表创build单独的历史logging表。 您还可以selectpipe理应用程序代码中的日志logging或通过数据库触发器进行pipe理。 我想通过对NoSQL /文档数据库(特别是MongoDB)中相同问题的解决scheme进行思考,以及如何以统一的方式解决这个问题。 它会像为文档创build版本号一样简单,而且不会覆盖它们? 为“真实”与“已logging”文档创build单独的集合? 这将如何影响查询和性能? 无论如何,这是NoSQL数据库的一个常见的情况,如果是这样,是否有一个共同的解决scheme?

BASE术语的解释

BASE的首字母缩写是用来描述某些数据库的属性,通常是NoSQL数据库。 它通常被称为ACID的对立面。 只有很less的文章涉及到BASE的细节,而ACID有大量的文章详细阐述了每个primefaces性,一致性,隔离性和耐用性。 维基百科只用了几行 。 这给我留下了一些关于定义的问题: B asically可用的 , S经常状态, E ventual一致性 我用这篇文章和我的想象力解释了这些性质: 基本可用可以指的是数据的可用性。 如果单个节点发生故障,部分数据将不可用,但整个数据层仍然可以运行。 这个解释是正确的吗?还是它指的是别的? 更新:从Mau的答案中推导出来,是否意味着整个数据层总是接受新的数据,即没有lockingscheme阻止数据立即被插入? 软状态 :所有我能find的是需要刷新周期的数据的概念。 没有刷新,数据将过期或被删除。 自动删除数据库中的数据对我来说似乎很陌生。 过期或陈旧的数据更有意义。 但是这个概念将适用于任何types的冗余数据存储,而不仅仅是NoSQL。 它是否描述了其他的东西呢? 最终的一致性意味着更新最终会在给定足够时间的情况下蔓延到所有服务器。 这个属性对我来说很清楚。 有人能详细解释这些属性吗? 或者,这仅仅是一个牵强,毫无意义的首字母缩略词,指的是化学中的酸和碱的概念?

MongoDB与Redis

任何人都可以举例说明什么时候使用Redis和MongoDB的好处?

CAP定理 – 可用性和分区容差

当我尝试理解CAP中的“可用性”(A)和“分区容忍”(P)时,我发现很难理解各种文章的解释。 我感觉A和P可以一起走(我知道情况并非如此,这就是为什么我不明白!)。 简单地说,A和P是什么,它们之间的区别是什么?

HBase与Hadoop / HDFS的区别

这是一个天真的问题,但我是NoSQL范式的新手,不太了解。 所以,如果有人能够帮助我清楚地理解HBase和Hadoop之间的区别,或者给出一些可以帮助我理解差异的指针。 直到现在,我做了一些研究和acc。 根据我的理解,Hadoop提供了在HDFS中使用原始数据块(文件)的框架,HBase是Hadoop之上的数据库引擎,基本上可以使用结构化数据而不是原始数据块。 像SQL一样,Hbase提供了一个HDFS上的逻辑层。 这是对的吗? 请随时纠正我。 谢谢。

在谈论MongoDB vs Cassandra时,“面向文档”与“键值”是什么意思?

使用基于文档的NoSQL选项可以使您通过KV商店购买什么,反之亦然?