奥尔良-批量数据导入



我目前正在为我们的组织学习MS Orleans。我知道,只要所有数据库更新都是通过Grains进行的,Orleans Grains就会与数据库保持同步。

但是,如果有一些批量处理过程(如数据文件的处理)更新/插入/删除数据库中的记录,会发生什么?

奥尔良有什么流程或模式可以满足这一需求吗?还是我们需要通过Grains处理所有散装过程?如果我们通过谷物处理批量操作,我们是通过更新每个谷物来进行操作的(如果每个谷物将自己更新到DB中,这似乎非常昂贵),还是有一些批量模式可以用来强制所有受影响的谷物"刷新"?

答案可能是显而易见的。我在文档中没有找到任何关于这些场景的内容。

我们将使用奥尔良作为MS-SQL服务器的本地安装。

编辑:

我指的是一个更新N晶粒数据的过程。对于sql来说,使用一个更新1000条记录的调用比使用1000个更新一条记录的呼叫要好得多。。一个具体的例子是库存更新:每个产品库存都是一粒谷物。每隔15分钟左右,第三方就会收到一份文件,通知应用程序之外发生的库存数量变化。这应该在数据库中更新并反映在晶粒中。文件可能有10k的记录。。。

您有几个选项。

1) 通过grains上传-grains将缓存数据并存储在DB中。这部分违背了你高效上传数据库的目标,所以可能不是你想要的。

2) 直接批量上传到数据库中,但使用grain访问和处理/服务数据。grain将在第一次请求时从DB读取数据,缓存数据,并为进一步的请求服务。此外,所有未来的数据更新都将通过grain进行。这通常是最常见的模式。

3) 如果您还需要定期数据处理,即使在没有服务请求的情况下,那么在批量上传谷物后,您可以"批量踢"谷物以开始定期处理。在这个选项中,您将编写一个控制器循环(例如客户端逻辑),它只会一个接一个地将"Init"调用到一组晶粒中(但并行:并行地在X(X~100)上调用Init并等待它们一起),然后进行下一批处理。Grains将在初始化时启动计时器或提醒。

相关内容

  • 没有找到相关文章

最新更新