假设许多应用使用相同的Couchbase后端,我想对他们生成的数据执行一些批量分析。如果我在Couchbase中使用map / reduce功能会导致任何问题,因为db仍然必须能够存储来自正在运行的应用程序的新数据吗?
与couchbase一起运行mongo是不是太过分了,因为所有应用程序都将数据存储到couchbase,这些数据被复制到mongo。然后使用mongo(和mongo-hadoop连接器)进行分析。
答案 0 :(得分:1)
好的,您确实需要根据您需要运行的查询以及要存储的数据的类型和结构添加更多详细信息。我会尝试在广泛的层面上回答您的每一个问题。
与couchbase一起运行mongo会不会太过分了?
是的,绝对是这样!这听起来像个坏主意,两者都填充了具有不同优点和缺点的相同空间(文档存储)。
Couchbase可以映射reduce还是仍能在高级别上进行读写操作吗?
是的,但是Couchbase中的视图最终是一致的,因为密钥/访问始终是一致的。您可以将视图更改为一致,但是map / reduce作业必须运行更多(STALE = FALSE标志),这将影响数据返回的速度。
Couchbase有一个ElasticSearch和Hadoop连接器,允许将数据从您的群集自动复制到ES或Hadoop。我们个人使用ElasticSearch进行更高级的分析/自由文本搜索,而不会影响我们的Couchbase群集。
MongoDB或Couchbase?
使用一个但不是两个,我们在生产中使用Couchbase,但MongoDB也能够填充相同的角色(也有更灵活的查询)。 MongoDB也可以轻松地与Hadoop / ElasticSearch集成。
我真的会回过头来看看你的数据,你将如何访问它以及数据量,很可能Hadoop或ES将是过度杀伤。
如果您需要能够识别消费模式或按天/小时/分钟分组事件,那么任何一个文档存储都可以轻松处理。
我确信有生产Mongo经验的人也会参与进来!
答案 1 :(得分:1)
是可以在Couchbase群集上使用map / reduce功能...您需要添加更多节点以增加群集的吞吐量(水平扩展)...因此它将具有更多的计算能力来满足来自客户端的并发请求并保持地图/缩小视图。
对于卸载到其他地方的数据,您可以使用XDCR(跨数据中心复制)功能,并在另一个可能仅用于映射/缩减功能的Couchbase群集中保持数据同步。所以你根本不需要使用MongoDB ......事实上VIBER has replaced MongoDB with Couchbase