我需要使用csv / flat文件在hazelcast中加载3亿条记录(每条记录60KB)。以最快的方式加载所有这些数据的最佳方法是什么? 我可以通过记录阅读记录并在hazelcast中执行map.put。有没有办法在一个map.put中执行多次写入?或者有没有可以做到这一点的实用工具?
答案 0 :(得分:3)
除了Chris的评论之外,您还可以在Hazelcast Simulator代码库中找到异步加载器/流转化器的示例。此代码用于在测试之前将数据加载到网格。 AsyncMapStreamer。
作为选项,您可以使用select date(max(a)) from (select TIMESTAMP('20160523') as a), (select TIMESTAMP('20170301') as a)
方法。但在这种情况下,您需要找到临时地图的最佳批量大小。
干杯, 维克
答案 1 :(得分:0)
您应该使用IMap :: setAsync或IMap :: putAll。可能第一个选项更快,因为它完全是异步并且没有返回任何值,这可以优化网络流量。
无论如何,加速的最重要因素是序列化。如果您使用Java对象,您应该考虑使用DataSerializable来优化序列化。