tapitapi’s blog

1日1杯タピオカ!エンジニア

【AWS DynamoDB】Put itemをPythonで行う

作ったDynamoDBのテーブルに大量にデータを入れたい、でもGUIで手で入れるのはめんどくさい、、、って時ありますよね

 

今回はPythonでテーブルにデータを入れる方法をご紹介します。

(テーブル削除についてはこちら

(テーブル作成についてはこちら

 

リファレンス

boto3.amazonaws.com

 

まず、AWS CLIを使用できるようにする

tapitapi.hatenadiary.com

 

boto3を使用できるように、pip install

pip install boto3

 

テーブル作成

(下記では例として、「table2」というtableを作成します。カラムは「column1」「column2」「column3」, インデックスは「column1」と「column3」のインデックスを一つ作成します)

tapitapi.hatenadiary.com

 

put_items.py作成

import boto3

 

if __name__ == "__main__":

 session = boto3.Session(profile_name='default')
 client = session.client('dynamodb', region_name='us-east-2など、地域名')

   items =[
   {
    "column1": {"S": "Data1"},
    "column2": {"S": "Data2"},
    "column3": {"S": "AA"},
    "column7": {"L": [ {"S": "Cookies"} , {"S": "Coffee"}, {"N": "3.14159"}]}
  },
  {
    "column1": {"S": "Data3"},
    "column2": {"S": "Data4"},
    "column3": {"S": "BB"},
    "column7": {"L": [ {"S": "Cookies"} , {"S": "Coffee"}, {"N": "3.14159"}]}
  },
  {
    "column1": {"S": "Data5"},
    "column2": {"S": "Data6"},
    "column3": {"S": "DD"},
    "column7": {"L": [ {"S": "Cookies"} , {"S": "Coffee"}, {"N": "3.14159"}]}
  }
  ]

  for item in items:
    result = client.put_item(
     TableName="Table2",
     Item=item
   )

   print(result)

)

 

"column1": {"S": "Data5"}の”S”などはデータの型指定のために必要です。

”S”はString型を指定しています。

他の型については下記を参考にしてみてください

boto3.amazonaws.com

 

put_items.pyを実行後にGUIツールでみてみると、以下のようにデータが入っていることがわかります。

f:id:kayo445:20200721192008p:plain

 

以上ですー!!

 

下記レポジトリでデータを入れるツール(dynamoDB/put_items_dynamodb_tables_json.py)を作成しましたので、使ってみてください^^

github.com

 

今後もDynamoDBに限らず、 LambdaやAPI Gatewayなど他のAWSサービス用ツールも作成していく予定です。

プルリクなどもいただけると嬉しいです!

 

おやすみなさい。