【告知】値の参照時の仕様変更のお知らせ
このたび2024年11月11日に値の参照に関する仕様変更を予定しておりますので詳細について報告いたします。
more
2023.07.12に公開 | 2023.07.12に更新
Querier運営
「Querier(クエリア)」は社内向け管理画面を圧倒的な速さで、かつビジネスのスケールに合わせて柔軟に構築することができるローコードツールです。
管理画面の構築もWeb上で完結
エンジニアのためのローコードツール
Pythonとboto3を用いてDynamoDBのデータ操作を学びましょう。
今回はより実践的な例を挙げ、詳しく解説していきます。操作内容としては、「データの取得」「データの追加」「データの更新」「データの削除」「トランザクション処理」について扱います。
まず、PythonでDynamoDBを操作するためには、AWSのSDKであるboto3
をインストールする必要があります。
pip install boto3
次に、DynamoDBのクライアントを生成します。
import boto3
dynamodb = boto3.resource('dynamodb')
こちらはboto3の公式ドキュメントへのリンクです。
DynamoDBでデータを取得するには基本的に二つの方法があります。「GetItem」を用いた直接的な取得と、「Scan」、「Query」を用いた検索による取得です。
例として、"year"が2013で"title"が"Rush"の映画データを取得します。
table = dynamodb.Table('Movies')
response = table.get_item(
Key={
'year': 2013,
'title': 'Rush'
}
)
item = response['Item']
print(item)
全てのデータをスキャンします。しかし、大量のデータが存在する場合は時間とコストがかかるため注意が必要です。
table = dynamodb.Table('Movies')
response = table.scan()
items = response['Items']
print(items)
特定の条件を満たすアイテムを検索します。ここでは、"year"が2013の映画データを検索します。
table = dynamodb.Table('Movies')
response = table.query(
KeyConditionExpression=boto3.dynamodb.conditions.Key('year').eq(2013)
)
items = response['Items']
print(items)
詳細なドキュメントはこちらをご覧ください。
新しい映画データを追加します。ここでは、"year"が2023で"title"が"New Movie"の映画データを追加します。
table = dynamodb.Table('Movies')
table.put_item(
Item={
'year': 2023,
'title': 'New Movie',
'info': {
'plot': 'Nothing happens at all.',
'rating': 0
}
}
)
詳細なドキュメントはこちらをご覧ください。
映画の情報を更新します。ここでは、"year"が2023で"title"が"New Movie"の映画のプロットと評価を更新します。
table = dynamodb.Table('Movies')
table.update_item(
Key={
'year': 2023,
'title': 'New Movie'
},
UpdateExpression='SET info.plot = :plot, info.rating = :rating',
ExpressionAttributeValues={
':plot': 'Everything happens at once.',
':rating': 5.5
}
)
詳細なドキュメントはこちらをご覧ください。
映画データを削除します。ここでは、"year"が2023で"title"が"New Movie"の映画データを削除します。
table = dynamodb.Table('Movies')
table.delete_item(
Key={
'year': 2023,
'title': 'New Movie'
}
)
詳細なドキュメントはこちらをご覧ください。
複数の映画データの追加と更新を一つのトランザクションとして行います。
client = boto3.client('dynamodb')
response = client.transact_write_items(
TransactItems=[
{
'Put': {
'TableName': 'Movies',
'Item': {
'year': {'N': '2024'},
'title': {'S': 'Another Movie'},
'info': {
'M': {
'plot': {'S': 'Nothing happens again.'},
'rating': {'N': '0'}
}
}
}
}
},
{
'Update': {
'TableName': 'Movies',
'Key': {
'year': {'N': '2023'},
'title': {'S': 'New Movie'}
},
'UpdateExpression': 'SET info.plot = :plot, info.rating = :rating',
'ExpressionAttributeValues': {
':plot': {'S': 'Actually, a lot happens.'},
':rating': {'N': '4.5'}
}
}
}
]
)
詳細なドキュメントはこちらをご覧ください。
この記事を通じて、Pythonとboto3を用いてDynamoDBのデータ操作を行う方法について理解を深めていただけたことと思います。
初めてDynamoDBを使用する方や、Pythonでデータ操作を行いたい方々が、この記事を参考にスムーズに取り組みが進むことを願っています。
Querier運営
「Querier(クエリア)」は社内向け管理画面を圧倒的な速さで、かつビジネスのスケールに合わせて柔軟に構築することができるローコードツールです。
このたび2024年11月11日に値の参照に関する仕様変更を予定しておりますので詳細について報告いたします。
more
データフローの通知設定機能・監査ログへのパラメータが追加されましたのでご紹介します。
more
データフローのアクションに永続化などに利用できるローカルストレージ機能を追加しました。
more
日本を健康に。多彩なフィットネスブランドを展開中。スタジオ付きの「JOYFIT」、24時間型の「JOYFIT24」、ヨガスタジオ「JOYFIT YOGA」、パーソナルジム「JOYFIT+」、家族向けの「FIT365」など、多彩なブランド展開で全国を席巻しているスポーツ事業。
more
管理画面の構築もWeb上で完結
エンジニアのためのローコードツール