Boto3无法从DynamoDB检索项目

时间:2019-01-15 20:12:35

标签: python amazon-dynamodb boto

所以我正在使用 DynamoDB 存储我的Spark作业的状态。我创建了名为 scheduleTime(分区键) appName(范围键)主键,并且我的spark作业在被创建后会写出作业的状态完成。我的Spark作业完成后,安排了另一个 Python脚本,以检索作业的状态并在出现故障时重新启动应用程序。有时候,即使有记录,在DynamoDB表中也没有特定的主键项。在使用UI时,我可以看到相应的记录。我为此使用了 boto3 table.get_item()方法。代码段如下:

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

1 个答案:

答案 0 :(得分:0)

所以基本上,问题在于DynamoDB Python boto3 库的 get_item()函数默认情况下支持不一致的读取(这与其他记录检索方法(例如 batch_get_items)有点奇怪())。因此,我只需要将 ConsistantRead标志设置为True

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

因此,以上代码段可完美地立即读取。