文档数据库

时间:2017-03-20 18:02:13

标签: azure-cosmosdb nosql

我们有一个场景,每当我们从外部源接收blob中的数据文件时,我们需要每隔一小时使用最新数据填充集合,同时,我们不希望在更新时影响实时用户采集。

所以,我们在下面做了

  1. 在两个数据库中创建了2个数据库和集合1
  2. 在不同的数据库(配置数据库)中创建另一个集合,其属性为Active和Passive,这将使Database1和Database2成为上述属性的值
  3. 现在,我们的Web作业将在每次看到blob中的文件时运行,并检查此配置数据库并确定哪个是活动的或被动的,并处理xml文件并更新被动数据库中的集合,因为实时馈送,一旦完成,将活动数据库更新为当前和被动生存
  4. 现在,我们的服务将始终检查哪一个是主动和被动的,并相应地获取数据并向用户显示
  5. 由于我们必须删除数据并在Web作业中插入新数据,想知道这是我们提出的最佳设计吗?删除和插入数据会花费吗?是否有更好的方法来执行批量删除和插入,因为我们现在按顺序执行

1 个答案:

答案 0 :(得分:0)

  

想知道这是我们提出的最佳设计吗?

正如David Makogon所说,至于您的解决方案,您需要管理和支付多个数据库。如果可能,您可以在同一个集合中创建新文档,并控制程序逻辑中哪个文档处于活动状态。

  

删除和插入数据会花费吗?

操作/请求将使用将被收取的请求单元。要了解Request Units和DocumentDB Pricing详细信息,请参阅:

  

是否有更好的方法来执行批量删除和插入,因为我们现在按顺序执行

Stored Procedure提供了一种对插件等操作进行分组并批量提交的方法。您可以创建存储过程,然后在Webjobs函数中执行存储过程。