Amazon Web Services

AWS DynamoDB Clear(truncate) Table. 테이블 데이터 전체 삭제.

혀뇽뇽이·2018년 3월 20일·조회 5,968

1. 개요

  AWS DynamoDB는 Backup 기능이 제공이 된다.

 하지만 우리의 Seoul 리젼에서는 제공이 되지 않아서,

 Backup기능을 CLI와 코딩으로 구현하는데, DynamoDB Table 의 데이터를 전체 삭제하는 로직이 필요하다.

 그래서 이번에 작성한 로직 중에서, Truncate 하는 로직을 가져와 봤다.

 

 

2. 어떻게 사용합니까?

 Linux 환경에서 CLI와 함께 사용을 하였기에,
 Bash 로 작성하였다.
 
 구글링을 하면 다양한 스크립트가 나오는데, 모두 테스트해보니 안되는 것이나 json으로 추가로 데이터 파일을 만들어야 하는 경우가 허다했다.
 아래의 스크립트는 일본의 누군가가 만든 것인데, 동작이 아주 잘되기에 가져왔다.
 
 아주 일부 내용은 수정하였다.
 
#!/bin/sh
TABLE_NAME=$1
P_KEY=$2
S_KEY=$3
REGION=ap-northeast-2
TRUNCATE_LIST=/tmp/truncate.lst_$(date +%s)

if [ -z "$TABLE_NAME" ] || [ -z "$P_KEY" ]; then
        echo "truncate_dynamodb.sh [Table Name] [Partition Key] [Sort Key(Optional)]"
        exit 1;
fi

KEY_LIST="$P_KEY: .$P_KEY"

if [ -n "$S_KEY" ]; then
        KEY_LIST="$KEY_LIST, $S_KEY: .$S_KEY"
fi

echo "Key is '$KEY_LIST'"

aws --region ap-northeast-2 dynamodb scan --table-name $TABLE_NAME | jq -c ".Items[] | { $KEY_LIST  }" > $TRUNCATE_LIST

while read LINE
do
        aws --region $REGION dynamodb delete-item --table-name $TABLE_NAME --key "$LINE"
done < $TRUNCATE_LIST

rm $TRUNCATE_LIST
 
 
 
 

 

댓글 2

로그인 후 댓글을 남길 수 있습니다.

  • 혀뇽뇽이혀뇽뇽이· 2018년 3월 20일
    다른 게시글 양식을 복붙해서 가져오면, 저렇게 깨지는데... 해결책을 모르겠따..
  • 혀뇽뇽이혀뇽뇽이· 2018년 4월 3일
    오늘(04/03) Seoul 리전에 DynamoDB On-demand 및 PITR 백업이 생겨서, 이 게시글은 쓸 일이 없을 거 같네요..