与传统的RDBMS相比,使RavenDb(作为典型的NoSQL文档数据库)水平扩展功能的因素有哪些?
我目前正在考虑如何使用NoSQL解决方案为Web应用程序实现身份验证.我遇到的问题是,在大多数NoSQL解决方案(例如Cassandra,MongoDB)中可能会延迟写入.例如,我们在节点A上写入,但不能保证写入同时出现在节点B上.这与NoSQL解决方案背后的方法是合乎逻辑的.
现在有一个想法是你没有二次读取(所以一切都超过了主人).这可能适用于MongoDB(你实际上有一个主人),但不适用于Cassandra(所有节点都相同).但是我们的应用程序在世界各地的几个独立点运行,因此我们需要多主机功能.
目前我不知道Cassandra的解决方案,我可以更新数据,并确保后续读取(到所有节点)确实有更改.那么如何在那些认证请求(读取)可以并行出现在几个节点上的NoSQL解决方案之上构建身份验证呢?
谢谢你的帮助!
我希望能够使用如下结构在Azure表存储中存储具有子对象的对象:
public class AzureTestDocument : TableServiceEntity
{
public AzureTestDocument(int counter)
: base("_default", counter.ToString())
{
Counter = counter;
Child = new AzureTestChildDocument(counter);
}
public int Counter { get; set; }
}
public class AzureTestChildDocument
{
public AzureTestChildDocument(int counter)
{
Counter = counter;
}
public int Counter { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果删除子文档,保存父文档可以正常工作.保存这样的结构会导致"其中一个请求输入无效"异常.做一些谷歌搜索出现了这篇文章关于支持的类型,这可能意味着你不能嵌入除支持的那些短列表之外的任何类型.
请澄清是否是这种情况或指出我可能缺少的东西.
让我们假设我有一个有文章和作者的应用程序.它将数据保存在Redis基础中.这些文章存储为哈希,如下面以JSON语法表示的那样:
{ "title" : "My title", "content" : "This is a content", "authorId" : 1}
Run Code Online (Sandbox Code Playgroud)
另外,我的作者用哈希代表:
{ "name": "John Smith", "username" : "jsmith", "password" : "secret", "id" : 1}
Run Code Online (Sandbox Code Playgroud)
问题是,如何获取给定作者ID的所有文章?在Redis中有一些命令可以做到吗?你会手动检索和过滤它们吗?或者我表达这种关系的方式有缺陷吗?你会建议什么?
我正在寻找Cassandra,HBase,Mongodb和Elastic Search的写作性能的真实测试结果.我想从我们的服务器收集日志数据,这些数据非常庞大.超过10gb一小时.
我知道每个人都在谈论cassandra的写性能,这些产品有不同的使用领域.K/V,面向文档或搜索.但是我现在对他们的存储类型不感兴趣,只有写性能.例如每秒50K事务.
另外,我想在这些数据之上进行搜索.
您对每秒超过50K trans的处理建议是什么?
我正在尝试构建一个实时Web服务,处理动态的10k空间条目,每15秒更改一次.想象一下移动车辆我只需要处理最新值.所以我不想在数据库中保留旧值.
我想使用Sphinx或Lucene作为值的全文搜索服务器,但我不知道如何"保持"这些更改值15秒.
问题: 我应该将值存储在MongoDB,MySQL,XML,平面文件中,还是可以将它们直接存储为内存中的对象,并且仍能够操作它们并更新它们的值?
谢谢.
假设我们有一个md5哈希:
用ruby:
>Digest::MD5.hexdigest("ZZtop")
=> "d3e5c7c22df12b70e882f593432a3bdd"
Run Code Online (Sandbox Code Playgroud)
可能的字段类型:
:type => String
:type =>哈希
我该选哪个?
我正在使用MongoDB来保存一组文档.
每个文档都有一个_id(版本),它是一个ObjectId.每个文档都有一个documentId,它在不同版本之间共享.这也是在创建第一个文档时分配的OjectId.
在给出documentId的情况下,找到最新版本文档的最有效方法是什么?
即我想得到_id = max(_id)和documentId = x的记录
我需要使用MapReduce吗?
提前致谢,
山姆
每个标题 - 我正在使用官方的mongodb驱动程序,我希望获得给定边界框内的所有POI.
到目前为止,我有:
MongoCollection<BsonDocument> collection = _MongoDatabase.GetCollection("pois");
BsonArray lowerLeftDoc = new BsonArray(new[] { lowerLeft.Lon, lowerLeft.Lat});
BsonArray upperRightDoc = new BsonArray(new[] { upperRight.Lon, upperRight.Lat});
BsonDocument locDoc = new BsonDocument
{
{ "$within", new BsonArray(new[] { lowerLeftDoc, upperRightDoc})}
};
BsonDocument queryDoc = new BsonDocument { { "loc", locDoc }};
IList<TrafficUpdate> updates = new List<TrafficUpdate>();
var results = collection.Find(new QueryDocument(queryDoc)).SetLimit(limit);
foreach (BsonDocument t in results)
{
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用.我明白了:
QueryFailure标志在类型中是未知$:0(响应是{"$ err":"未知$在类型中:0","代码":13058}).
我们正在开发具有许多物理服务器的应用程序.我们希望使用NoSQL进行日志记录和跟踪,因为它不需要结构化数据.
我们不希望进行集中日志记录.
我们可以在每个服务器中安装NoSQL(任何一个)并存储日志记录/跟踪详细信息吗?NoSQL会影响我在服务器中的实际进程吗?这样做是个好主意吗?