DynamoDBにローカルのCSVファイルを取り込むためのPythonスクリプト(エクスポートも対応)

DynamoDBがリリースされて10周年だそうです。


DynamoDBのつらみの代表的なものといえばRDBのようにデータのインポート/エクスポートが手軽にできないことだと個人的に思ってます。
10年経ってもここを手軽に解決してくれるものが一向に出てきません。
有志の人が作ったツールもGitHubに転がってたりはしますが、今一つ求めてるものが見つからない。

ということでもう自分で作っちゃいました。



詳しくはREADME.mdを読んでもらうとして、CSVファイルとそのCSVファイルの型定義を用意することでバイナリ型を除くデータ構造の取り込みをサポートしています。

余計なサービスは一切使わず、アクセスキーとPythonを動かせる環境さえあれば使えるようになっています。

取り込み性能はキャパシティユニットに依存しますが書き込みキャパシティユニット5で300件7秒くらいでした。
大量データの場合どうなるかはまだ未検証。
あと例外処理もあんまりちゃんとしてないのでもし、イシューやPRが来たら対応したいかなくらい。

自分が欲しいものをプログラミングで作れるのはプログラマー冥利に尽きますね。



ちょこちょこアップデートしてて今はエクスポートやトランケートにも対応しています。




公式でインポートに対応しました!
と思ったら新規テーブルに対してのみだった…