DyanmoDBをExportする際に、コンソールからAWS DataPipelineを利用してエクスポートされる訳だが、
実際S3にエクスポートされたファイルを見てみると...
hoge^C{"s":"hogehoge"}^Bfoo^C{"s":"fooou"}
1行に key { "type" : value } という形でkeyとvalueの区切りが結構特殊らしい。
DataPipelineを利用して再びDyanamoDBにインポートする際は問題ないのだが、
他のDB(RDBMSやMongoDB等)に移行したいときにこのままではあまりにも不便...
いろいろ調べたところ、sedコマンドでJSONに置換するやり方があったので、
このコマンドを利用してJSONファイルに変換したら良さそうだ
http://stackoverflow.com/questions/18896329/export-data-from-dynamodb/23705962#23705962
以下引用
sed -e 's/$/}/' -e $'s/\x02/,"/g' -e $'s/\x03/":/g' -e 's/^/{"/' <exported_table> > <exported_table>.json
ただ、このまま使用しても1行単位では置換されるが、全体でみた場合、
JSONファイルとしては成立しない(Syntax Error)ファイルとなるので、
JSONファイルとして置換するコマンドを作成しました。
https://github.com/tatsu07/convert_DynamoDB_S3File_To_JSON