gpt4 book ai didi

amazon-web-services - 从 DynamoDB 导出数据

转载 作者:行者123 更新时间:2023-12-03 11:17:14 26 4
gpt4 key购买 nike

是否可以以某种格式从 DynamoDB 表中导出数据?

具体用例是我想从我的生产 dynamodb 数据库导出数据并将该数据导入我的本地 dynamodb 实例,以便我的应用程序可以使用本地数据副本而不是生产数据。

我用 link作为 DynamoDB 的本地实例。

最佳答案

这会将所有项目导出为 jsons 文档

aws dynamodb scan --table-name TABLE_NAME > export.json

此脚本将从远程 dynamodb 表中读取并将完整表导入本地。
TABLE=YOURTABLE
maxItems=25
index=0

DATA=$(aws dynamodb scan --table-name $TABLE --max-items $maxItems)
((index+=1))
echo $DATA | jq ".Items | {\"$TABLE\": [{\"PutRequest\": { \"Item\": .[]}}]}" > inserts.jsons
aws dynamodb batch-write-item --request-items file://inserts.jsons --endpoint-url http://localhost:8000


nextToken=$(echo $DATA | jq '.NextToken')
while [[ "${nextToken}" != "" ]]
do
DATA=$(aws dynamodb scan --table-name $TABLE --max-items $maxItems --starting-token $nextToken)
((index+=1))
echo $DATA | jq ".Items | {\"$TABLE\": [{\"PutRequest\": { \"Item\": .[]}}]}" > inserts.jsons
aws dynamodb batch-write-item --request-items file://inserts.jsons --endpoint-url http://localhost:8000
nextToken=$(echo $DATA | jq '.NextToken')
done

以下是使用文件将导出的数据保存在磁盘上的脚本版本。

TABLE=YOURTABLE
maxItems=25
index=0
DATA=$(aws dynamodb scan --table-name $TABLE --max-items $maxItems)
((index+=1))
echo $DATA | cat > "$TABLE-$index.json"

nextToken=$(echo $DATA | jq '.NextToken')
while [[ "${nextToken}" != "" ]]
do
DATA=$(aws dynamodb scan --table-name $TABLE --max-items $maxItems --starting-token $nextToken)
((index+=1))
echo $DATA | cat > "$TABLE-$index.json"
nextToken=$(echo $DATA | jq '.NextToken')
done

for x in `ls *$TABLE*.json`; do
cat $x | jq ".Items | {\"$TABLE\": [{\"PutRequest\": { \"Item\": .[]}}]}" > inserts.jsons
aws dynamodb batch-write-item --request-items file://inserts.jsons --endpoint-url http://localhost:8000
done

关于amazon-web-services - 从 DynamoDB 导出数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18896329/

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