【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
@huzorro 你好,想跟你请教个问题:这段时间一直在看您发表的mongodb方面的文章,对我的帮助的很大,非常感谢!今天遇到了一个问题,想了一下午,查看了很多资料也没能找到合理的解决方式,不知道您有没有遇到过。
需求是这样的,一个游戏后台系统,需要对每天产生的日志文件进行分析。游戏日志有用户注册、用户登录等。使用mapreduce将用户注册信息统计到一个集合user_register,将用户登录信息去重后放到另一个集合user_login,现在需要根据用户名关联这个两个集合统计出一些数据。但查了很多资料没有发现mongodb在这方面有很好的解决办法,也想过使用mapreduce来解决,但根据这段时间我使用mapreduce的心得,感觉mapreduce只能处理一个集合,不能同时处理两个集合。目前我想出的一个解决方案就是把这两个集合中的数据都读出来,然后使用程序代码处理。这种方式虽然能暂时解决问题,但肯定不是最优的。
所以就冒昧给您发了这条信息,看您能不能给一些合理的建议或方法,先在此谢过!!
惭愧 其实我只是使用mogodb的一部分功能
对于你说的应用场景有以下几个建议仅供参考
1.如果需要的数据实时性要求比较高,可以用mongodb做队列服务使用 程序代码实时处理数据
2.合并user_register user_login 到一个collection 然后再mapreduce
3.使用dbref关联两个collection 然后再mapreduce
谢谢您的建议!
系统对数据实时性没有要求,只要满足今天能看到昨天数据就行。mongodb队列服务不知道怎么使用,但“程序代码实时处理”是不是可以理解就是把数据取出来在代码中处理。
第二种、第三种方法我也考虑过,但可行性不大。因为user_reigster、user_login日志都是单独存放的,而且存放的都是一些基础数据。如果想要二者关联,只有在从日志中读取数据往mongodb插入时关联,但这样的话怕有些顾此失彼,怕出现插入时速度很慢,读取时速度也不是很快