MonetDB刷新背景下最好的策略数据与活动连接进行查询(MonetDB refresh data

2019-10-21 16:40发布

我测试MonetDB,却得到了令人惊叹的性能,而在我的笔记本电脑查询数百万行的。

我期待着与数十亿美元的生产工作,我需要尽可能多地更新数据,让说各1分钟或5分钟最坏的情况。 只需更新现有记录或添加新的,删除可以安排一天一次。

我已经看到了在我的测试中更新有不错的表现,但我有点担心了更多的三四倍数据相同的操作。

关于BULK INSERT,在5秒获得一个百万行,那么好足够的性能,现在也是如此。 我还没有试过删除。

除非你在同一时间更新的数据运行的查询一切工作正常,在这种情况下,一切似乎都被冻结了很长,很长一段时间。

那么,什么是得到MonetDB在后台更新的最佳策略是什么? 谢谢

Answer 1:

你可以做每个负载在一个新的表具有相同的架构,然后创建一个VIEW ,工会它们放在一起。 查询将在视图上运行,删除并重新创建这种观点是非常快的。

但是,它很可能是最好的,然后现在合并一些较小的表一起每隔。 例如,夜间作业可以结合与上一交易日(S)所有负载表到一个新表(独立运行,没有任何问题),然后再重新创建视图。

另外,您也可以使用BINARY COPY INTO加快在首位的加载过程。



Answer 2:

有一个新的合并表functionnality可能取代汉纳斯Mühleisen答案的视图,并会更地道。 您可以附加/使用分离分区:

alter table mergedTable ADD/DROP table partitionTable

这将是有问题的更新,因为它们必须直接向分区表更容易,如果你有一个partitionning键(日期/ ...),但它与之前的解决方案相同。



文章来源: MonetDB refresh data in background best strategy with active connections making queries