2017-10-18 29 views
1

我目前正在为我们的组织学习MS奥尔良。 据我所知,只要所有数据库更新都通过谷物即将到来,奥尔良谷物将保持与数据库同步。奥尔良 - 大量数据导入

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

是否有一些过程或模式与奥尔良一起使用来迎合这一点? 或者我们是否需要通过谷物处理所有批量处理? 如果我们通过谷物加工批量生产 - 我们是否通过更新每个谷物来实现它(如果每个谷物都更新为数据库,看起来非常昂贵),还是有一些批量模式用于强制所有受影响的谷物“更新”?

答案可能很明显。我在文档中找不到有关这些场景的任何内容。

我们将使用Orleans作为本地安装与MS-SQL服务器。

编辑:

我指的是一个过程N个晶粒的更新数据。有一个更新1000条记录的单个调用对于sql更好,而对于更新一条记录的1000个调用更好。具体的例子是股票更新:每个产品股票都是谷物。每15分钟左右,一个文件将从第三方到达,通知应用程序之外发生的库存数量变化。这应该在db中更新并反映在谷物中。文件可能有10K的记录...

+0

你会更好地使用谷物来控制数据访问 – BozoJoe

+0

感谢您的答案。有使用谷物做这个的模式吗?我指的是更新N谷物数据的过程。有一个更新1000条记录的单个调用对于sql更好,而对于更新一条记录的1000个调用更好。具体的例子是股票更新:每个产品股票都是谷物。每15分钟左右,一个文件将从第三方到达,通知应用程序之外发生的库存数量变化。这应该在db中更新并反映在谷物中。文件可能有10K的记录... – user2995891

+0

你应该添加你的意见的问题。你确定你'需要'使用演员模型吗?产品库存是否具有独立的功能,演员模型比您所说的批量更新操作更合适? – BozoJoe

回答

2

您有几个选项。

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

2)直接批量上传到数据库,但使用谷物来访问和处理/提供数据。谷物会在首次请求时从数据库中读取数据,将其缓存起来,以供进一步请求。此外,所有未来的数据更新都将通过谷物进行。这通常是最常见的模式。 3)如果你还需要周期性的数据处理,即使没有服务请求,那么在批量上传谷物后,你可以“批量打击”谷物来开始定期处理。在这个选项中,你将编写一个控制器循环(例如客户端逻辑),它将一个一个地调用“Init”到一组颗粒中(并行:在X(X〜100)上并行调用Init并等待它们所有在一起),然后做下一批。谷物将启动计时器或初始化提醒。

+0

感谢您的详细解答!非常感激 – user2995891