当前位置: 首页 > 知识库问答 >
问题:

将sql表数据加载到hazelcast

曾苗宣
2023-03-14

我正在使用hazelcast IMap存储我的应用程序数据。

我面临着一个小问题。

问题说明:-

当我启动spring-boot应用程序时,我正在将数据库表数据加载到hazelcast中。

示例:-

HazelcastInstance hazelCast = Hazelcast.getOrCreateHazelcastInstance(HazelcastConfig.getConfig());
IMap<Integer, String> mapInstance= hazelCast.getMap("data");

mapInstance.put(1,"value1");
mapInstance.put(2,"value2");
mapInstance.put(3,"value3");
mapInstance.put(4,"value4");

但是当我获取相同的数据时,我得到的顺序不同。

那么有没有办法按照插入的顺序获取数据呢?

共有1个答案

葛意远
2023-03-14

IMap不是按排序顺序存储的,因为数据内容是跨多个进程存储的。

然后可用的选项取决于您是需要插入顺序还是键顺序,因为它们可能不一样。你的代码可以做

mapInstance.put(1,"value1");
mapInstance.put(2,"value2");

mapInstance.put(2,"value2");
mapInstance.put(1,"value1");

所以键的顺序总是1然后2,但是插入顺序会不同。

使用PagingPredicate将允许您按键顺序进行检索。

按插入顺序检索要困难得多。EntryView允许访问创建时间,但您需要自己对其进行排序。如果您的数据足够大,需要存储在多个进程中,这可能不会很好地工作。

 类似资料:
  • 我正在使用Tibco ComputeDB,这对我来说是新的。它使用sparkDB和snappydata。我想把数据从MS SQL添加到SnappyData的内存表中。 我可以从CSV读取数据,并使用以下命令将其加载到snappyDaya中。 现在,同样的方式,我想从MS SQL读取数据,并想将其添加到snappyData中,但无法找到正确的方法。我遵循了下面的文档,能够连接到MS SQL serv

  • 我正在通过SSIS将数据从csv文件加载到我的sql表中。是否对从csv文件读取的记录数指定了默认限制? 在加载csv文件时,我的数据流组件只处理5000条记录,尽管它包含5341条记录,如下面的图像所示。我如何修复这个问题?

  • 问题内容: 我想知道是否有人对我即将从事的工作有任何经验。我有几个csv文件,它们的大小都在一个GB左右,我需要将它们加载到oracle数据库中。虽然加载后我的大部分工作都是只读的,但我仍需要不时加载更新。基本上,我只需要一个很好的工具即可一次将多行数据加载到数据库中。 到目前为止,这是我发现的内容: 我可以使用SQL Loader来完成很多工作 我可以使用批量插入命令 某种批量插入。 以某种方式

  • 创建表之后,你需要填充数据,你可以通过LOAD DATA和INSERT来实现。 数据格式如下: Whistler Gwen bird \N 1997-12-09 \N 列之间使用\t间隔(LOAD DATA默认的列间隔符),\N表示NULL。 加载文件pet.txt中的数据到表pet中,使用以下命令: mysql> LOAD DATA LOCAL I

  • 用例是读取一个文件并在其上创建一个数据帧。之后,获取该文件的架构并存储到DB表中。 例如,我只是创建一个case类并获取printschema,但是我无法从中创建数据帧 下面是一个示例代码 现在dfSchema是一个结构类型,并希望将其转换为两列的数据帧,如何实现

  • 我有一个带有多个选项卡的Google电子表格,但我希望只有一个选项卡可以使用SSIS加载到SQL Server表中。 有可能吗?如果有,我该怎么做?