'POCHAK'์ ๊ฐ๋ฐํ๋ฉฐ Spring Data DynamoDB๋ฅผ ์ฌ์ฉํด๋ณด์๊ณ ,
๊ทธ ๊ณผ์ ์์ ์๋กญ๊ฒ ์๊ฒ ๋ ์ ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
โป ์ดํ ํฌ์ฐฉ์ ์๋น์ค ํน์ฑ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ DynamoDB์์ MySQL๋ก ๋ณ๊ฒฝ ํ ๋ค์ ๊ฐ๋ฐํ์์ต๋๋ค.
- Spirng Data DynamoDB ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- POCHAK GitHub Repository
DDB์์ ํ์ด์ง์ด ํ์ํ ์ด์
๊ณต์ ๋ฌธ์์๋ ์ธ๊ธ๋์ด ์์ง๋ง, DynamoDB์ ๋จ์ผ ์ฟผ๋ฆฌ ์์ ์ ์ต๋ 1MB์ ๋ฐ์ดํฐ๋ง ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ๊ทธ๋ ๊ธฐ์ ์ฐ๋ฆฌ ์ดํ๋ฆฌ์ผ์ด์ ์์ ํ๋กํ ํญ์์ ์์ ์ด ์ฐํ ๊ฒ์๊ธ๊ณผ ์ฐ์ ๊ฒ์๊ธ์ ์กฐํํ ๋ ๋ค์๊ณผ ๊ฐ์ ํ์ด์ง์ด ํ์ํ๋ค๊ณ ํ๋จํ์ฌ ๋ฆฌํฉํ ๋ง์ ์งํํ๊ฒ ๋์์ต๋๋ค!
- ๋ฌผ๋ก ์ฑ๋ฅ ์ธก๋ฉด๋ ๊ณ ๋ คํด๋ณด์์ ๋, ํ์ด์ง์ ์ธ์ ๊ฐ ํด์ผ๋๋ฆฌ๋ผ ์๊ฐํ๊ณ ์์์ ..
ํ์ด์ง ํ๋ ๋ฐฉ๋ฒ - CLI
๋ค์๊ณผ ๊ฐ์ด page-size๋ฅผ ์ง์ ํ๊ณ ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋ด๋ฉด?
aws dynamodb query --table-name Movies \
--projection-expression "title" \
--key-condition-expression "#y = :yyyy" \
--expression-attribute-names '{"#y":"year"}' \
--expression-attribute-values '{":yyyy":{"N":"1993"}}' \
--page-size 5 \
--debug
๋ง์ฝ 5๊ฐ ๊ฒฐ๊ณผ๊ฐ ๊ฒฐ๊ณผ ๊ทธ๋ฃน์ ์ ๋ถ๊ฐ ์๋๋ฉด ๋ค์๊ณผ ๊ฐ์ด LastEvaluatedKey๊ฐ ๋ฐํ๋ฉ๋๋ค.
- LastEvaluatedKey๋ ๋ค์ Query ์์ฒญ์ ๋ํ ExclusiveStartKey๋ก ์ฌ์ฉํจ์ผ๋ก์จ ๋ค์ ๊ทธ๋ฃน์ ๊ฐ์ ธ์ค๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค!
- ๋ง์ฝ ๋ค์ ๊ฒฐ๊ณผ๊ฐ์ด ์์ผ๋ฉด LastEvaluatedKey์ null ๊ฐ์ด ๋ฐํ๋ฉ๋๋ค.
2017-07-07 11:13:15,603 - MainThread - botocore.parsers - DEBUG - Response body:
b'{"Count":5,"Items":[{"title":{"S":"A Bronx Tale"}},
{"title":{"S":"A Perfect World"}},{"title":{"S":"Addams Family Values"}},
{"title":{"S":"Alive"}},{"title":{"S":"Benny & Joon"}}],
"LastEvaluatedKey":{"year":{"N":"1993"},"title":{"S":"Benny & Joon"}},
"ScannedCount":5}'
ํ์ด์งํ๊ธฐ - Java
DynamoDBQueryExpression<Publish> query = new DynamoDBQueryExpression<Publish>()
.withKeyConditionExpression("#PK = :val1 and begins_with(#SK, :val2)")
.withFilterExpression("#STATUS = :val3")
.withExpressionAttributeValues(eav)
.withExpressionAttributeNames(ean)
.withLimit(12) // paging size
.withExclusiveStartKey(exclusiveStartKey) // paging ์์ ํค ์ค์
.withScanIndexForward(false); // desc
- limit : 12๊ฐ๋ก ํ์
- exclusiveStartKey : ์์ํค ์ค์ | null๋ก ์ค์ ํ ๊ฒฝ์ฐ, ์ฒ์๋ถํฐ ๊ฐ์ ธ์ด.
exclusiveStartKey๋ ๋ค์๊ณผ ๊ฐ์ด Map ํํ๋ก ์ด๋ฃจ์ด์ ธ ์์.
Map<String, AttributeValue> exclusiveStartKey
์ฐธ๊ณ ์๋ฃ
'๐ฟ Spring > Spring Data DynamoDB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring Data DynamoDB] Type Error ํด๊ฒฐํ๊ธฐ โ @DynamoDBTyped (0) | 2024.08.03 |
---|---|
[Spring Data DynamoDB] LocalDateTime ์ ์ฅ ์๋ฌ (0) | 2024.08.03 |
[Spring Data DynamoDB] Partition Key์ Sort Key๋ฅผ ๊ฐ์ด ์ฌ์ฉํ ๋ (0) | 2024.08.03 |
[Spring Data DynamoDB] ์ฟผ๋ฆฌ ์์ ์ ๋ฆฌ (0) | 2024.08.03 |
๋๊ธ