在 hazelcast 中批量加载数据的最佳方式
Best way to bulk load data in hazelcast
我需要使用 csv/flat 在 hazelcast 中加载 3 亿条记录(每条记录 60KB) files.What 是以最快的方式加载所有这些数据的最佳方式吗?
我可以逐条读取记录并在 hazelcast 中执行 map.put。有没有办法在一个 map.put 中执行多个写入?或者有什么实用程序可以做到这一点?
您应该使用 IMap::setAsync 或 IMap::putAll。可能第一个选项更快,因为它是完全异步的并且不返回任何值,从而优化了网络流量。
无论如何,加速的最重要因素是序列化。如果你使用 Java 对象,你真的应该考虑使用 DataSerializable 来优化序列化。
除了 Chris 的评论之外,您还可以在 Hazelcast Simulator 代码库中找到异步加载器/流式传输器的示例。此代码用于在测试前将数据加载到网格。 AsyncMapStreamer。
作为一种选择,您可以练习 map.putAll
方法。但在这种情况下,您需要找到临时地图的最佳批量大小。
干杯,
维克
我需要使用 csv/flat 在 hazelcast 中加载 3 亿条记录(每条记录 60KB) files.What 是以最快的方式加载所有这些数据的最佳方式吗? 我可以逐条读取记录并在 hazelcast 中执行 map.put。有没有办法在一个 map.put 中执行多个写入?或者有什么实用程序可以做到这一点?
您应该使用 IMap::setAsync 或 IMap::putAll。可能第一个选项更快,因为它是完全异步的并且不返回任何值,从而优化了网络流量。
无论如何,加速的最重要因素是序列化。如果你使用 Java 对象,你真的应该考虑使用 DataSerializable 来优化序列化。
除了 Chris 的评论之外,您还可以在 Hazelcast Simulator 代码库中找到异步加载器/流式传输器的示例。此代码用于在测试前将数据加载到网格。 AsyncMapStreamer。
作为一种选择,您可以练习 map.putAll
方法。但在这种情况下,您需要找到临时地图的最佳批量大小。
干杯, 维克