App Engineerの開発ノート

AWS、Flutterや開発活動に役立つツール作りなど

【AWS便利ツール】DynamoDBのテーブルをCSVでエクスポートする

f:id:Simoroid:20210906012742p:plain
DynamoDBの内容をエクスポートしたい場合、テーブルの中身を簡易的にエクスポートする方法です。
ツールの開発にはPowerShell を使用します。
DynamoDBの管理コンソールからでもエクスポートは可能ですが、
わざわざログインしたくないときなどに便利です。

■前提条件

AWS CLI が使用できる必要があります。
下記手順からインストールが可能です。
AWS入門~CLIを使用してAWSにアクセス - App Engineerの開発ノート

PowerShellスクリプトファイルを実行できる権限が振られている必要があります。

■ツール準備

下記のソースをコピーして任意のps1ファイルを作成します。
※例:「output-csv.ps1」

# 接続先は適宜切り替え
$ENDPOINT_URL = "http://localhost:4566"
$OUTPUT_FORMAT = "json"

$tableName = Read-Host “テーブル名を入力してください。”
$jsonObj = aws dynamodb scan --table-name "$tableName" --endpoint-url $ENDPOINT_URL --output $OUTPUT_FORMAT
$obj = ($jsonObj | ConvertFrom-Json)
$obj.items | convertto-csv -NoTypeInformation -Delimiter "," | % {$_ -replace '"',''} | out-file "dump_$tableName.csv" -Encoding default

上記ファイルを任意ディレクトリに配置します。

■ツール実行

ツールのテスト用にデータを準備します。
今回は雑に"test"というテーブルに1レコードだけputしてます。
f:id:Simoroid:20210916004706p:plain

準備ができたら、配置したps1ファイルを右クリック -> "Powershellで実行"をクリック
で簡単に実行できます。
実行後はテーブルを名を入力します。
f:id:Simoroid:20210916003952p:plain
f:id:Simoroid:20210916004121p:plain
下記のようにエクスポートできました!
f:id:Simoroid:20210916004231p:plain

ここまで 読んで頂きありがとうございました。
よければフォローお願いします!