Re-stream Neptune Stream的最佳途径

0

【以下的问题经过翻译处理】 我们有一个启用了流式传输的Neptune实例,我们通过监听它来向其他类型的数据库添加数据。我们在其中一个监听器中遇到了问题,错过了一些数据,而这些数据已经在流中过期了。

那么再次将数据添加到流中的最佳方法是什么(我们仅需要特定的顶点属性)?我所能想到的唯一方法就是在Gremlin中更新属性,然后将其设置回之前的状态,类似于这样:

g.V().hasLabel('user').property(single, "username", "testUserName_randomCode").iterate();

g.V().hasLabel('user').property(single, "username", "testUserName").iterate();

我不喜欢这种方法,但我很难找到一个更好的解决方案来重新添加属性值到Neptune流中。

profile picture
专家
已提问 8 个月前31 查看次数
1 回答
0

【以下的回答经过翻译处理】 目前除了更新或删除/重新插入数据到数据库之外,没有其他方法将数据添加到流中。流日志是作为事务的一部分进行修改。

如果需要定期进行这些修改,您可以考虑将流推送到中介Kinesis Stream,从特定时间点重新播放流。

自Neptune引擎版本1.2.0.0起,我们现在支持将流过期时间[1]从1天更改为90天(之前静态设置为7天)。您可能需要在自己的端上确定一些权衡,例如是否让流过期时间更长并将流维护在Neptune中(在Neptune集群卷中消耗更多容量),或将流推送到Kinesis Stream并在那里维护日志。

[1] https://docs.aws.amazon.com/neptune/latest/userguide/parameters.html#parameters-db-cluster-parameters-neptune_streams_expiry_days

profile picture
专家
已回答 8 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则