Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB BI体系结构_Mongodb_Business Intelligence - Fatal编程技术网

MongoDB BI体系结构

MongoDB BI体系结构,mongodb,business-intelligence,Mongodb,Business Intelligence,我们有一个运行Mongo的生产应用程序,在不同的盒子上有一个副本集 我想开始对数据做一些BI,可能使用 我的问题是:我应该如何设置我的体系结构,使我不直接在生产环境中执行BI 是否应该创建一个单独的BI实例,并对BI实例做一个MunGOutlook,或者是否还有其他的最佳实践?使用副本集并在辅助节点上运行分析(只要涉及到)。根据数据集BI要求,有几个选项可以考虑,和MongoDB服务器版本。如果您只需要读取报告的数据,则有比同时写入数据更多的选项(例如,对于map/reduce操作)。Mongo

我们有一个运行Mongo的生产应用程序,在不同的盒子上有一个副本集

我想开始对数据做一些BI,可能使用

我的问题是:我应该如何设置我的体系结构,使我不直接在生产环境中执行BI


是否应该创建一个单独的BI实例,并对BI实例做一个MunGOutlook,或者是否还有其他的最佳实践?

使用副本集并在辅助节点上运行分析(只要涉及到)。根据数据集BI要求,有几个选项可以考虑,和MongoDB服务器版本。如果您只需要读取报告的数据,则有比同时写入数据更多的选项(例如,对于map/reduce操作)。MongoDB 2.2还介绍了一些非常有用的特性和改进,如下所述

通常,使用配置对于管理目的非常有用,因为这样可以在不中断主MongoDB服务器的情况下提供数据集的完整副本。对于更大的数据集和水平写入扩展,MongoDB的功能还可以与下面的任何建议结合使用

在开始分离BI数据之前,有必要通过在过渡环境中进行测试来确定实际影响

以下方法大致按与生产环境隔离的顺序排列:

  • 使用副本集,您可以将查询定向到适当的服务器。在2.2之前的MongoDB版本中,一般的读取首选项仅限于从主设备读取,或允许从具有“slaveOK”(相当于“secondaryPreferred”)的非隐藏辅助设备读取。在MongoDB 2.2中,有一些额外的读取首选项,包括“secondary”(从secondary读取,如果可用,否则出错);“首选初级”(如果可用,从初级读入,否则为次级读入);和“最近的”(根据网络延迟从最近的主节点或辅助节点读取)。MongoDB 2.2中的读取首选项可以与结合使用,以便对将查询定向到副本集或分片集群中的服务器提供更精确的控制

  • 对于MongoDB 1.8及更高版本,您可以将副本集与。隐藏节点通常不会播发给连接到副本集的客户端,但可以直接连接到以生成报告。注意:隐藏节点将是只读辅助节点,因此这限制了某些查询的使用。例如,map/reduce需要写入权限才能保存到输出集合。。但是,根据BI需求,您可以使用内联映射/reduce

  • MongoDB 2.2有一个数据库级写锁(这是对以前具有全局写锁的版本的改进)。如果需要写入BI数据,可以将其保存到单独的数据库中,以最小化锁争用。你仍然需要考虑整体的资源效应。例如,为BI目的处理大量旧文档可能会与缓存生产应用程序正在查询的最新文档相竞争

  • 如果您想将BI数据与生产环境完全分离,可以使用一个MongoDB创建一个单独的实例。如果已启用复制,则可以从副本集中的辅助副本创建备份。根据数据集的大小,对数据(包括已构建的索引)执行快照拷贝可能比执行完整周期更快