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

Boto3无法从DynamoDB检索项目

邢雨华
2023-03-14

所以我使用DynamoDB来存储我的火花作业的状态。我已经创建了主键名为计划时间(分区键)和appName(范围键)和我的火花作业写作业完成后的状态。在我的火花作业完成后,另一个Python脚本计划检索作业的状态,并在失败时重新启动应用程序。有时,即使记录存在,我也不会在DynamoDB表中为一组特定的主键获取任何项目,当我使用用户界面时,我可以看到相应的记录。我使用boto3库table.get_item()方法。代码片段如下:

    table.get_item(
    Key = {
         'scheduleTime': scheduleTime,
         'appName': appName
          }
    )

共有1个答案

须景辉
2023-03-14

所以基本上问题是DynamoDB Python boto3库的get_item()函数默认支持不一致的读取(这有点奇怪,因为其他记录检索方法,如batch_get_items()提供一致的读取容量)。所以我只需要启用一致读取标志为真。

response = table.get_item(
    Key = {
         "scheduleTime": scheduleTime,
         "appName": appName
    },
    ConsistentRead=True
)

因此,上面的代码片段非常适合立即读取。

 类似资料:
  • 我只是尝试使用Boto3通过查询/扫描检索主键的最大值。我正试图实现这一点,这样我的程序就可以简单地增加一个变量,我将为下一个表条目将其设置为等于最大“ID”值1。 DynamoDB表格截图 通过搜索,我找到了如何使用原始的“boto”来实现这一点,所以我确信有一种方法可以使用它的新版本“boto3”,但我还没有找到任何东西。 任何帮助/指导都将不胜感激!谢谢 Boto3文件:http://bot

  • 我正在尝试使用查询检索dynamodb表中的所有项。下面是我的代码: 但是,我收到以下错误: 我的代码非常简单,出自boto dynamodb2文档,因此我不确定为什么会出现上述错误。任何见解都将受到赞赏(这是新的,有点迷失)。谢谢 编辑:我有一个散列键和一个范围键。我能够通过特定的哈希键进行查询。例如 但我如何检索所有项目?

  • 我制作了一个EJB3.0和一个客户机。这是我的EJB的pom: 但是无法检索jboss-ejb3-ext-api及其实现:/eclipse告诉我: 容器“Maven Dependencies”引用不存在的库“C:\usr\local\m2-repository\org\jboss\ejb3\jboss-ejb3-ext-api\1.0.0\jboss-ejb3-ext-api-1.0.0.jar”

  • 在文档之后,我尝试创建一个update语句,该语句将更新或添加dynamodb表中的一个属性(如果不存在)。 我在试这个 我得到的错误是: 如果有人做了类似于我正在努力实现的事情,请分享例子。

  • 我一直试图通过java代码从DynamoDB中的表中删除一项,但每次尝试都会导致相同的错误: com.amazonaws.AmazonServiceException:提供的键元素与架构不匹配(服务:AmazonDynamoDBv2;状态代码:400;错误代码:ValidationException; 我当前的尝试非常简单,如下所示: tablename只是表名,凭证已被验证为正确,cognito

  • 我使用Lambda(Python)查询我的DynamoDB数据库。我正在使用boto3库,我能够进行“等效”查询: 这个脚本的工作原理是: 但是,当我将查询表达式更改为以下内容时: 我得到一个错误: 根据该[1]资源,“gt”是Key()的方法。有人知道这个库是否已经更新,或者除了“eq”之外还有什么其他方法可用吗? [1] http://boto3.readthedocs.io/en/lates