文档数据库中批量更新的最佳实践
best practice for bulk update in document DB
我们有一个场景,每当我们从外部源接收到 blob 中的数据文件时,我们需要每隔一小时用最新数据填充一次集合,同时,我们不想影响实时用户更新集合。
所以,我们已经完成了下面的工作
- 在两个数据库中创建了 2 个数据库和集合 1
- 在不同的数据库(配置数据库)中创建了另一个集合,其中 属性 作为主动和被动,这将使 Database1 和 Database2 作为上述属性的值
- 现在,我们的 Web 作业将 运行 每次看到 blob 中的文件并检查此配置数据库并确定哪个是主动或被动并处理 xml 文件并更新集合在被动数据库中,因为实时提要不使用它,一旦完成,会将活动数据库更新为当前和被动数据库
- 现在,我们的服务将始终检查哪个是主动的和被动的,并相应地获取数据并显示给用户
由于我们必须删除数据并在网络作业中插入新数据,想知道这是我们想出的最佳设计吗?删除和插入数据会产生成本吗?有没有更好的方法来进行批量删除和插入,就像我们现在按顺序做的那样
wanted to know is this is best design we have come up with ?
正如 David Makogon 所说,对于您的解决方案,您需要管理多个数据库并为其付费。如果可能,您可以在同一个集合中创建新文档并控制哪个文档在您的程序逻辑中处于活动状态。
Does deleting and inserting the data will cost ?
operation/request 将消耗请求单位,这将被收取费用。了解Request Units和DocumentDB Pricing详情,请参考:
Is there better way to do bulks delete and insert as we are doing sequentially now
Stored Procedure 提供了一种对插入等操作进行分组并批量提交的方法。您可以创建存储过程,然后在 Webjobs 函数中执行存储过程。
我们有一个场景,每当我们从外部源接收到 blob 中的数据文件时,我们需要每隔一小时用最新数据填充一次集合,同时,我们不想影响实时用户更新集合。
所以,我们已经完成了下面的工作
- 在两个数据库中创建了 2 个数据库和集合 1
- 在不同的数据库(配置数据库)中创建了另一个集合,其中 属性 作为主动和被动,这将使 Database1 和 Database2 作为上述属性的值
- 现在,我们的 Web 作业将 运行 每次看到 blob 中的文件并检查此配置数据库并确定哪个是主动或被动并处理 xml 文件并更新集合在被动数据库中,因为实时提要不使用它,一旦完成,会将活动数据库更新为当前和被动数据库
- 现在,我们的服务将始终检查哪个是主动的和被动的,并相应地获取数据并显示给用户
由于我们必须删除数据并在网络作业中插入新数据,想知道这是我们想出的最佳设计吗?删除和插入数据会产生成本吗?有没有更好的方法来进行批量删除和插入,就像我们现在按顺序做的那样
wanted to know is this is best design we have come up with ?
正如 David Makogon 所说,对于您的解决方案,您需要管理多个数据库并为其付费。如果可能,您可以在同一个集合中创建新文档并控制哪个文档在您的程序逻辑中处于活动状态。
Does deleting and inserting the data will cost ?
operation/request 将消耗请求单位,这将被收取费用。了解Request Units和DocumentDB Pricing详情,请参考:
Is there better way to do bulks delete and insert as we are doing sequentially now
Stored Procedure 提供了一种对插入等操作进行分组并批量提交的方法。您可以创建存储过程,然后在 Webjobs 函数中执行存储过程。