以下是使用AWS SDK for Python (Boto3)进行DynamoDB扫描的示例代码:
import boto3
# 创建DynamoDB客户端
dynamodb = boto3.client('dynamodb')
def scan_items(table_name, keyword_set):
response = dynamodb.scan(
TableName=table_name,
FilterExpression='contains(#keywords, :keyword)',
ExpressionAttributeNames={
'#keywords': 'keywords'
},
ExpressionAttributeValues={
':keyword': {'S': keyword}
}
)
items = response['Items']
while 'LastEvaluatedKey' in response:
response = dynamodb.scan(
TableName=table_name,
FilterExpression='contains(#keywords, :keyword)',
ExpressionAttributeNames={
'#keywords': 'keywords'
},
ExpressionAttributeValues={
':keyword': {'S': keyword}
},
ExclusiveStartKey=response['LastEvaluatedKey']
)
items.extend(response['Items'])
return items
# 调用扫描函数并打印结果
table_name = 'your_table_name'
keyword_set = {'keyword1', 'keyword2', 'keyword3'}
items = scan_items(table_name, keyword_set)
print(items)
请注意,此示例假设您已经正确配置了AWS CLI,并且具有适当的IAM权限来访问DynamoDB表。您需要将your_table_name
替换为实际的表名,并将keyword1
,keyword2
,keyword3
替换为您要扫描的关键字集合。
此示例使用scan
操作进行扫描,并使用FilterExpression
过滤包含指定关键字的项目。如果扫描结果超过1MB,代码将使用LastEvaluatedKey
参数继续扫描剩余的项目。
请注意,使用scan
操作可能会导致较高的读取吞吐量,并且可能会产生较高的费用。如果可能的话,建议使用查询操作来获取更精确和高效的结果。