gpt4 book ai didi

amazon-dynamodb - 如何检查 DynamoDB2 中表的状态?

转载 作者:行者123 更新时间:2023-12-04 18:08:01 26 4
gpt4 key购买 nike

我正在尝试将表单 DynamoDB 移动到 DynamoDB2 以使用具有全局二级索引的表。我需要创建一个表,然后将项目批量写入其中。这是一段 tets 代码:

from boto.dynamodb2.fields import HashKey, RangeKey, GlobalAllIndex
from boto.dynamodb2.layer1 import DynamoDBConnection
from boto.dynamodb2.table import Table
from boto.dynamodb2.items import Item
import boto

conn = DynamoDBConnection(aws_access_key_id=<MYID>,aws_secret_access_key=<MYKEY>)
tables = conn.list_tables()

table_name = 'myTable001'
if table_name not in tables['TableNames']:
Table.create(table_name, schema=[HashKey('firstKey')], throughput={'read': 5, 'write': 2}, global_indexes=[
GlobalAllIndex('secondKeyIndex', parts=[HashKey('secondKey')], throughput={'read': 5, 'write': 3})], connection=conn)

table = Table(table_name, connection=conn)

with table.batch_write() as batch:
batch.put_item(data={'firstKey': 'fk01', 'secondKey':'sk001', 'message': '{"firstKey":"fk01", "secondKey":"sk001", "comments": "fk01-sk001"}'})
# ...
batch.put_item(data={'firstKey': 'fk74', 'secondKey':'sk112', 'message': '{"firstKey":"fk74", "secondKey":"sk012", "comments": "fk74-sk012"}'})

当我第一次使用 table_name 的新值运行此代码时,我在该 block 的最后一行收到以下错误:

boto.exception.JSONResponseError: JSONResponseError: 400 Bad Request
{u'message': u'Requested resource not found', u'__type': u'com.amazonaws.dynamodb.v20120810#ResourceNotFoundException'}

当我再次运行它时,它执行得很好。我怀疑原因很简单,当我第一次运行它时,该表仍在创建中。如何在 DDB2 中检查表的状态?在 DDB 中,我使用了 table.status,但这在 DDB2 中似乎不可用。我应该改用什么?

更新:基于最终回复here ,正确的提取表状态的方法是:

tdescr = conn.describe_table(tName)
print "%s" % ((tdescr['Table'])['TableStatus'])

下面是描述字典的其他元素:

for key in tdescr['Table'].keys():
print key

GlobalSecondaryIndexes
AttributeDefinitions
ProvisionedThroughput
TableSizeBytes
TableName
TableStatus
KeySchema
ItemCount
CreationDateTime

最佳答案

您可以使用 conn.describe_table('table') 获取有关表的详细信息,然后检查返回输出中的 TableStatus 字段。

关于amazon-dynamodb - 如何检查 DynamoDB2 中表的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21863759/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com