MonetDB以后台最佳策略刷新数据,并使用活动连接进行查询

时间:2015-01-24 04:07:26

标签: database bigdata monetdb

我正在测试MonetDB并在查询笔记本电脑上的数百万行时获得惊人的性能。

我希望在生产中投入数十亿美元,我需要尽可能多地更新数据,比如每1分钟或5分钟最坏情况。只需更新现有记录或添加新记录,就可以每天安排一次删除。

我已经看到了测试更新的良好表现,但我有点担心同样的操作超过四倍的数据。

关于BULK插入,在5秒内获得100万行,所以现在也有足够好的性能。我没有尝试删除。

一切正常,除非您在更新数据的同时运行查询,在这种情况下,所有内容似乎都被冻结了很长时间。

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

2 个答案:

答案 0 :(得分:3)

您可以使用相同的架构在新表中执行每个加载,然后创建一个VIEW,将它们全部联合起来。查询将在视图上运行,并且删除并重新创建该视图的速度非常快。

但是,最好将这些较小的表中的一些偶尔合并在一起。例如,夜间作业可以将前一天的所有加载表组合到一个新表中(独立运行,没问题),然后再次重新创建视图。

或者,您可以使用BINARY COPY INTO来加速加载过程。

答案 1 :(得分:2)

有一个新的合并表功能可以取代HannesMühleisen回答中的视图,并且更加惯用。 您可以使用以下方法附加/分离分区:

alter table mergedTable ADD/DROP table partitionTable

对于更新会有问题,因为如果您有分区键(日期/ ...),它们必须更容易直接进入分区表 但它与之前的解决方案相同。