[AWS DynamoDB] PynamoDB 기본 사용법 정리(CRUD)
2023. 5. 8. 11:02ㆍ개발을 파헤치다/서버 인프라
반응형
PynamoDB는 AWS의 DynamoDB를 Python에서 좀 더 쉽게 사용할 수 있도록 해주는 ORM 라이브러리입니다.
PynamoDB를 통해서 table 생성을 비롯한 쿼리, 아이템 생성 등 기본적인 DB 데이터 조작을 할 수 있는데요.
이번에는 그 기본이 될 수 있는 item 생성 및 수정 삭제에 대해서 알아보도록 하겠습니다.
Model 사용하기
PynamoDB를 사용해서 기본적인 CRUD(Create, Read, Update, Delete)를 하는 방법을 살펴보겠습니다.
먼저 테스트용 Model을 아래와 같이 생성합니다.
from pynamodb.models import Model
class TestModel(Model):
class Meta:
region = "ap-northeast-2"
table_name = "test_table"
billing_mode = "PAY_PER_REQUEST"
pk = UnicodeAttribute(hash_key=True)
attr_1 = NumberAttribute(default=0)
attr_2 = UnicodeAttribute(null=True)
item 생성하기
이제 위 TestModel에 새로운 아이템을 생성합니다.
item = TestModel()
item.pk = uuid.uuid1()
item.attr_1 = 10
item.attr_2 = "attr2"
item.save()
반드시 save 메서드를 호출해야 DB에 적용(commit)됩니다.
item 수정하기
DynamoDB에서는 transaction을 비롯한 atomic operation을 지원하는데요.
item update의 경우 atomic하게 item을 수정하는 것이 가능합니다. 또한, hash_key에 해당하는 item이 존재하지 않으면 생성까지 해줍니다.
item = TestModel.get(hash_key=id)
item.update(actions=[
TestModel.attr_1.set(20),
TestModel.attr_2.set("value")
])
item 삭제
item = TestModel.get(hash_key=key)
item.delete()
item 가져오기
item = TestModel.get(hash_key=key)
hash key값 혹은 hash key와 range key를 활용해서 특정 아이템을 가져올 수 있습니다.
반응형
'개발을 파헤치다 > 서버 인프라' 카테고리의 다른 글
[AWS] SAM(Serverless Application Model)에 새로운 Lambda Layer 추가하는 방법 (feat. 초보자도 쌉가능) (0) | 2023.05.12 |
---|---|
[AWS DynamoDB] DynamoDB에서 Scan과 Query의 제대로 알고쓰기 (엄청난 성능차이...!) (0) | 2023.05.11 |
[AWS LightSail] LightSail에 5분만에 SSL 인증서 적용하는 방법 (이거보다 쉬운거 없음!!!) (0) | 2023.05.04 |
[AWS S3] S3 Life Cycle 설정으로 비용 절감하는 방법 (0) | 2023.05.03 |
AWS S3 Pre-Signed URL 초간단 사용 방법 (0) | 2023.04.24 |