我们有一个运行Mongo的生产应用程序,在不同的机器上有一个副本集。
我想开始在数据上做一些BI,可能是使用Pentaho。
我的问题是:我应该如何设置我的体系结构,使我不直接在生产环境中进行BI?
我是否应该创建一个单独的BI实例并向BI实例执行mongoexport,或者是否有其他我应该遵循的最佳实践?
发布于 2012-09-07 19:35:00
根据您的数据集、BI要求和MongoDB服务器版本,有几个选项需要考虑。如果您只需要读取报表的数据,则有比写入数据更多的选项(例如,用于map/reduce操作)。MongoDB 2.2还引入了一些非常有用的特性和改进,如下所示。
通常,使用replica set配置对管理非常有帮助,因为这样可以在不中断主MongoDB服务器的情况下获得数据集的完整副本。对于更大的数据集和水平写入缩放,MongoDB的sharding功能也可以与以下任何建议结合使用。
在开始分离BI数据之前,有必要通过在暂存环境中进行测试来确定实际影响是什么。
以下方法大致按照与您的生产环境隔离的顺序:
使用副本集的
MongoDB 1.8和更高版本,您可以将副本集与hidden secondary node一起使用。隐藏节点不会正常通告到连接到副本集的客户端,但可以直接连接以生成报告。注意:隐藏的节点将是只读的辅助节点,因此这限制了某些查询的使用。例如,map/reduce需要写访问权限才能保存到输出集合。但您可以使用内联map/reduce,这取决于您的BI requirements.
发布于 2012-09-06 12:20:22
使用副本集并在辅助节点上运行分析(只要只涉及)。
https://stackoverflow.com/questions/12292879
复制相似问题