jsonファイルからデータロード-前回はDynamoDBにテーブルを作成して、手動で項目を追加しました。今回は、jsonファイルからデータを読み込ませ項目をロードします。以下の公式ページを参考にしました。boto3を用いたものを紹介します。参考AWS-CLIを使ってデータをロードするテーブルの作成AWSのサンプルデータを用いるのでそれに合わせてテーブルを作成しておきます。作り方の復習はこちら。以下の設定でテーブルを作成します。(数値)jsonファイルを用意まずは以下のリンクからzipファイルをダウンロードします。sampledata.zipリンク切れの場合はお手数ですがAWSのチュートリアルから探してください。ここではProductCatalog.jsonを使います。RDBMSとの大きな違いはテーブル作成時に定義していない属性(RDBMSで言う所のカラム)が用いられている点です。プライマリーキーさえ指定してあればあとは自由な属性を使用できます。項目ごとに属性に違いがあっても構いません。jsonファイルを使ったデータロードターミナルで先ほどのProductCatalog.jsonがある場所に移動します。ここではaws-shell経由で利用するので設定をしていない場合はこちらの記事を参考に設定してください。以下のコマンド(batch-write-item)でファイルから項目を作成します。boto3を使ってデータをロードするboto3を利用することでPythonプログラムから簡単にDyanamoDBを操作できます。以下の設定でDynamoDBにテーブルを作成します。(文字列)テーブル作成もPythonプログラムで行いたい場合はこちらをご覧下さい。jsonファイルを用意こちらのzipファイルをダウンロード、展開してください。moviedata.zipこんな感じのjsonファイル。Pythonファイルとjsonファイルは同じディレクトリに配置しておきましょう。-put_item()-公式チュートリアルで紹介されているようにput_item()メソッドを使ってロードしてみます。リンク先のコードをコピペし、適当にmovie.pyとでもしておきます。movie.pymoviedata.jsonがmovie.pyと同じディレクトリにあるか注意してください。moviedata.jsonには4000件ぐらい入っていたので1000件に減らして実行したところ、140秒かかりました。ちなみに、以下のようにSession()メソッドを挟むことで任意のprofileでの実行が可能です。Write-put_item()ではfor文ごとに項目を追加していました。Writeを使ってまとめて追加するようにしてみます。batch:をfor文の前に追加し、table.put_item()をbatch.put_item()に変更するだけです。これで140秒から6.8秒になりました。Writeを使うようにしましょう。おまけ次回は5000万ぐらいのデータを入力してレスポンスの早さを見てみたいです。最終的には2億くらいのデータを入力します。technology.MENU自己紹介Swampdog(VR解剖)未定(論文構造解析)。