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

所有记录的DynamoDB流触发器调用

孔棋
2023-03-14

我试图从DynamoDB表中设置ElasticSearch导入过程。我已经创建了AWS Lambda并启用了带有触发器的DynamoDB流,该触发器为每个添加/更新的记录调用我的Lambda。现在我想执行初始种子操作(将DynamoDB表中当前的所有记录导入ElasticSearch)。我该怎么做?有没有办法让表中的所有记录都“重新处理”并添加到流中(这样我的lambda就可以处理它们)?还是最好编写一个单独的函数,手动读取表中的所有数据并将其发送到ElasticSearch?因此基本上有两个lambda:一个用于初始数据迁移(仅执行一次,由我手动触发),另一个用于同步新记录(由DynamoDB流事件触发)?

谢谢你的帮助:)

共有2个答案

严兴旺
2023-03-14

我将编写一个脚本,它将触及dynamodb中的每个记录。对于dynamodb中的每个项目,添加一个名为migratedAt的新属性或任何您想要的属性。添加此属性将触发dynamodb流,而dynamodb流反过来将触发lambda处理程序。根据您的问题,您的lambda处理程序已经处理了更新,因此没有任何更改。

庄新翰
2023-03-14

根据您的数据集有多大,您将无法在Lambda中为您的数据库播种,因为最大超时为300秒(编辑:现在是15分钟,谢谢@matchish)。

您可以启动EC2实例并使用SDK执行DynamoDB扫描操作,并批量写入Elasticsearch实例

您还可以使用Amazon EMR执行Map Reduce作业,以导出到S3,并从那里处理所有数据。

 类似资料:
  • 我已经到处找了,我一辈子也找不到服务器来安装dynamodb触发器。 我使用了: 我尝试了一个硬编码的arn,没有发生任何事情,我可以在aws控制台上看到。我是新服务器。如果你有任何建议,请张贴。

  • 假设: 让我们假设数据插入DynamoDB的速率是巨大的。 上下文: 在DynamoDB表上启用流,这将触发lambda。lambda读取流记录,并在弹性搜索中对记录进行索引。 问题陈述: 在将记录插入DynamoDB的时间和通过流式记录触发lambda的时间之间存在延迟。这种延迟或滞后不断增加,并且与插入DynamoDB的数据量成正比。 如何找到滞后的位置?是流没有立即触发lambda吗?还是因

  • 我目前有一个AWS DynamoDB流触发一个Lambda函数。 Lambda函数由DynamoDB中的插入和更新事件触发。是否有办法更改配置,使Lambda函数仅由“insert”触发?

  • 问题内容: 我有一张桌子: 我会记录将任何机会记录到field1、2或3上: 我正在使用MySQL 5,我想创建一个触发器来做。我想在data_table更新时随时向data_tracking中插入新行,并记录旧的/更新的值以及更改的字段。我尝试了以下方法,但没有成功。 它在插入行上给出了错误,我不太确定该使用什么语法,或者我是否正以正确的方式进行操作。任何帮助,将不胜感激。谢谢。 问题答案: 插

  • 问题内容: 为了测试查询的正确性,我需要禁用db中的所有触发器。我看到在information_schema中存在表TRIGGERS。是否可以使用此表暂时禁用所有触发器?例如: 完成所有测试后,返回所有触发器,例如: 可能这可能会损坏db或在触发后将不起作用?我没有在文档中找到它。 问题答案: 您不能直接禁用触发器,我也不建议您做您建议的事情,但是您可以让触发器检查变量(在下面的示例中)是否 在执

  • 是否存在防止DynamoDB流在每次DynamoDB更改时触发λ的方法? 这些数字并不准确,但是假设step函数将连续运行10次,那么它将更新DynamoDB 3次。在step函数触发lambda之前,这是调用lambda的30倍。有什么方法可以阻止这些lambda调用吗?