问题标签 [amazon-dynamodb-streams]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1785 浏览

amazon-dynamodb - 一个 lambda 函数中的多个发电机流

我在同一个 AWS 账户中有多个 dynamo db 表,它们都启用了流。单个 lambda 函数可以监听多个流吗?

0 投票
7 回答
14494 浏览

amazon-dynamodb - AmazonServiceException:提供的 AttributeValue 为空,必须恰好包含受支持的数据类型之一

我正在尝试从 dynamodb 控制台界面导入数据,但无法成功。

数据是

我得到以下错误

错误:java.lang.RuntimeException:com.amazonaws.AmazonServiceException:Supplied AttributeValue 为空,必须包含 org 中支持的数据类型之一(服务:AmazonDynamoDBv2;状态代码:400;错误代码:ValidationException;请求 ID:GECS2L57CG9ANLKCSJSB8EIKVRVV4KQNSO5AEMVJF66Q9ASUAAJG)。 org.apache.hadoop.dynamodb.DynamoDBFibonacciRetryer.runWithRetry(DynamoDBFibonacciRetryer.java:83) 在 org.apache.hadoop.dynamodb.DynamoDBClient.writeBatch(DynamoDBClient. java:220) at org.apache.hadoop.dynamodb.DynamoDBClient.putBatch(DynamoDBClient.java:170) at org.apache.hadoop.dynamodb.write.AbstractDynamoDBRecordWriter.write(AbstractDynamoDBRecordWriter.java:91) at org.apache.hadoop .mapred。MapTask$DirectMapOutputCollector.collect(MapTask.java:844) at org.apache.hadoop.mapred.MapTask$OldOutputCollector.collect(MapTask.java:596) at org.apache.hadoop.dynamodb.tools.ImportMapper.map(ImportMapper. j errorStackTrace amazonaws.datapipeline.taskrunner.TaskExecutionException:无法完成 EMR 转换。在 amazonaws.datapipeline.activity.EmrActivity.runActivity(EmrActivity.java:67) 在 amazonaws.datapipeline.objects.AbstractActivity.run(AbstractActivity.java:16)在 amazonaws.datapipeline.taskrunner.TaskPoller.executeRemoteRunner(TaskPoller.java:136) 在 amazonaws.datapipeline.taskrunner.TaskPoller.executeTask(TaskPoller.java:105) 在 amazonaws.datapipeline.taskrunner.TaskPoller$1.run(TaskPoller.java: 81) 在 private.com.amazonaws.services.datapipeline.poller.PollWorker.executeWork(PollWorker.java:76) 在 private.com.amazonaws.services.datapipeline.poller.PollWorker.run(PollWorker.java:53) 在 java.lang.Thread.run(Thread.java:745) 引起:amazonaws.datapipeline.taskrunner.TaskExecutionException :错误:java.lang.RuntimeException:com.amazonaws.AmazonServiceException:提供的 AttributeValue 为空,必须包含 org 中支持的数据类型之一(服务:AmazonDynamoDBv2;状态代码:400;错误代码:ValidationException;请求 ID:GECS2L57CG9ANLKCSJSB8EIKVRVV4KQNSO5AEMVJF66Q9ASUAAJG) .apache.hadoop.dynamodb.DynamoDBFibonacciRetryer.handleException(DynamoDBFibonacciRetryer.java:107) 在 org.apache.hadoop.dynamodb.DynamoDBFibonacciRetryer.runWithRetry(DynamoDBFibonacciRetryer.java:83) 在 org.apache.hadoop.dynamodb.DynamoDBClient.writeBatch(DynamoDBClient .java:220) 在 org.apache.hadoop.dynamodb。DynamoDBClient.putBatch(DynamoDBClient.java:170) at org.apache.hadoop.dynamodb.write.AbstractDynamoDBRecordWriter.write(AbstractDynamoDBRecordWriter.java:91) at org.apache.hadoop.mapred.MapTask$DirectMapOutputCollector.collect(MapTask.java:第844章.dynamodb.tools.ImportMapper.map(ImportMapper.java:13) 在 org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:65) 在 org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java :432) 在 org.apache.hadoop.mapred.MapTask.run(MapTask.java:343) 在 org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:175) 在 java.security.AccessController.doPrivileged (本机方法)在 javax.security.auth.Subject。doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:170) 原因:com .amazonaws.AmazonServiceException:提供的 AttributeValue 为空,必须包含 com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient .java:1182) 在 com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:770) 在 com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:489) 在 com.amazonaws.http.AmazonHttpClient.execute( AmazonHttpClient.java:310)在 com.amazonaws.services.dynamodbv2。AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:1772) 在 com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.batchWriteItem(AmazonDynamoDBClient.java:730) 在 amazonaws.datapipeline.cluster.EmrUtil.runSteps(EmrUtil.java:286) 在 amazonaws.datapipeline .activity.EmrActivity.runActivity(EmrActivity.java:63)

我做错什么了吗?

0 投票
1 回答
287 浏览

amazon-dynamodb - 如何根据动态列从dynamodb获取排序数据

我是 Dynamodb 的新手,我的表名是“用户”,其中有两列,一列是“时间”,另一列是“成本”。我想根据列名获取排序数据,假设我提供输入参数为“时间”,则前 50 条记录按升序排列,如果我提供输入参数为“成本”,则前 50 条记录。

我尝试过这样的事情,但这不起作用。

提前致谢。

0 投票
1 回答
1341 浏览

amazon-web-services - AWS Lambda 函数跳过 DynamoDB 记录


我正在使用在AWS Lambda中创建的函数来触发和处理插入到DynamoDB表中的每条记录。

但我最近注意到很多记录都丢失了并且没有被处理。例如,每插入 50,000 条记录,可能会处理大约 2000-3000 条记录。 :(

我还注意到,在一段时间内,这个被处理的数字每 5 分钟左右缓慢增加大约 100-200 条记录。我使用 aws 命令行检查了这一点:
aws dynamodb scan --table-name myDynamoTable --select "COUNT “

如果有帮助,我将使用默认设置来创建 Lambda 函数。

这是 Lambda 函数的问题还是我的配置有问题Lambda 函数?
我可以更改任何属性/设置以改进其功能吗?
最后,如果最坏的情况发生在最坏的情况下,我可以使用什么作为 Lambda 函数的替代方案(可靠的)?我可以自己建造一个吗?

TIA。

0 投票
1 回答
1304 浏览

amazon-dynamodb - 如何使用 FilterExpression 对 PHP 中的嵌套 Json 属性应用 DynamoDB 查询/扫描

我有 3 条记录存储在 dynamoDB 表中。哈希键是business_id。forms 对象是带有子对象(id、is_deleted、title)的父对象。我不知道 business_id 的价值。但我只有 id 值“f6yy”。我想要使​​用子对象 id(值为 f6yy)的 business_id 的整个记录​​。请建议。

0 投票
1 回答
704 浏览

java - 当 AWS KCL processRecords 失败时,如何“标记”记录应该重新处理?

我正在使用 AWS DynamoStream,他的 API 基于 AWS KCL。

如果我收到了我未能处理的记录,我希望这些记录稍后可用,以便重新处理它们。例如,我试图将它们保存到远程数据库,但有时会遇到网络问题。

我的问题是:

  1. 我可以以某种方式使用检查点来表明我没有处理记录吗?
  2. 我应该避免执行 Checkpointer.checkpoint() 吗?如果我在下一次调用中仍然使用它会有什么影响processRecords吗?
  3. 我可能会为此目的使用任何例外吗?
0 投票
1 回答
28 浏览

amazon-dynamodb - 在数据库中添加时,无需在代码中一次又一次地编写段,即可获得所有数据的记录

在一个表中,我有 292 条记录,对于这 292 条记录,我在 DynamoDB 中编写了 63 个并行异步段。如果记录再次增加,我将在代码中编写段。如果不编写这样的代码来添加要显示的记录,解决方案是什么。请帮我。

0 投票
2 回答
5318 浏览

amazon-dynamodb - 增加 DynamoDB Stream + Lambda 吞吐量

我有一个触发 Lambda 函数的 DynamoDB 流。我注意到对 DynamoDB 表的一千次写入突发可能需要几分钟(我见过的最长是 30 分钟)才能全部由 Lambda 处理。批量大小为 3 的每个 Lambda 调用的平均持续时间约为 2 秒。这些 Lambda 执行 I/O 繁重的任务,因此小批量和更多的并行调用是有利的。但是,这些 Lambda 的并行性与 DynamoDB Stream 分片的数量挂钩,但我找不到扩展分片数量的方法。

除了使用更大的批处理大小和更优化的代码之外,还有什么方法可以增加这些 Lambda 的吞吐量?

0 投票
3 回答
15378 浏览

amazon-dynamodb - DynamoDb:扫描查询不返回所有数据

我有一个包含数千个数据的 DynamoDb 表。我正在使用 Scan 功能扫描表格,并且应用了“Between”FilterExpression。但是,查询响应只给出 3 条记录,而它应该返回大约 100 条记录。

我已经使用 Node js 创建了 Lambda 函数。

0 投票
1 回答
115 浏览

amazon-dynamodb - getApproximateCreationDateTime() API 不适用于 DynamoDB StreamRecord 对象

我正在围绕DynamoDB Streams开发 POC,并且正在关注此文档

StreamRecord我从调用方法中获得的对象Record.getDynamodb()似乎没有ApproximateCreationDateTime属性,如这里的javadocs中所述。

我想知道这个字段是否已被弃用并且文档尚未更新,或者我是否在其他地方出错了。