일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- laravel
- JVM
- 맛집
- ubuntu
- db
- MySQL
- javascript
- redis
- springboot
- php
- Spring Batch
- 요리
- AWS
- IntelliJ
- Spring
- linux
- java
- Design Patterns
- it
- Spring Boot
- Gradle
- devops
- jsp
- ReactJS
- elasticsearch
- Git
- Web Server
- jenkins
- tool
- Oracle
Archives
- Today
- Total
아무거나
[DynamoDB] Java 에서 BatchGetItem 사용 (WHERE IN) 본문
반응형
- BatchGetItem (WHERE IN)
- 정의
- 다수의 테이블 아이템을 hashkey, rangedkey 를 지정해서 가져올 수 있으나 결과값이 100개로 제한된다, 특정 rangedkey 로 다수의 아이템 검색이 필요하면 query 과 권장된다.
- BatchGetItem 은 조건식을 사용할 수 없고 쿼리 결과를 수정할 수 없기 때문에 상황에 따라 GetItem 과 적절하게 선택하여 사용하는것이 좋다.
- WHERE IN 절과 비슷하게 사용할 수 있다.
- 사용법(SDK)
[build.gradle]
[DynamoDBConfig.java]... implementation 'com.amazonaws:aws-java-sdk-dynamodb:1.12.239' ...
[Test.java]... import com.amazonaws.services.dynamodbv2.document.DynamoDB; ... @Bean public DynamoDB dynamoDB() { return new DynamoDB(buildAmazonDynamoDB()); } @Bean public AmazonDynamoDB buildAmazonDynamoDB() { return AmazonDynamoDBClientBuilder .standard() .withEndpointConfiguration( new AwsClientBuilder.EndpointConfiguration("dynamodb.ap-northeast-2.amazonaws.com", Regions.AP_NORTHEAST_2.getName()) ) .withCredentials(awsCredentialsProvider()) .build(); } ...
... import com.amazonaws.services.dynamodbv2.document.BatchGetItemOutcome; import com.amazonaws.services.dynamodbv2.document.DynamoDB; import com.amazonaws.services.dynamodbv2.document.TableKeysAndAttributes; import com.amazonaws.services.dynamodbv2.model.ReturnConsumedCapacity; ... @RequiredArgsConstructor @Repository public class DdbTest { ... private final DynamoDB dynamoDB; ... public void getTest() { // testdb: 테이블명 TableKeysAndAttributes tableKeysAndAttributes = new TableKeysAndAttributes("testdb"); tableKeysAndAttributes.addHashAndRangePrimaryKey("hk", "test1"); // hash key tableKeysAndAttributes.addHashAndRangePrimaryKey("sk", "test2"); // ranged key BatchGetItemOutcome outcome = dynamoDB.batchGetItem(ReturnConsumedCapacity.TOTAL, tableKeysAndAttributes); if (!outcome.getTableItems().isEmpty()) { for (String tableName : outcome.getTableItems().keySet()) { System.out.println("Items in table " + tableName); List<Item> items = outcome.getTableItems().get(tableName); for (Item item : items) { System.out.println(item); } } } } ... }
- 정의
반응형
'Infra > AWS' 카테고리의 다른 글
AWS Lambda 와 SES(=Simple Email Service) 를 이용한 간단한 메일 발송 (NodeJS) (0) | 2022.12.01 |
---|---|
Gradle Multi Project 기반 Jenkins + S3 + Codedeploy + Codecommit 을 사용한 빌드 및 배포 구성 (0) | 2021.07.21 |
AWS RDS MySQL VS Aurora (0) | 2021.06.30 |
elasticcache 도입 사례 및 사용법 (0) | 2019.12.24 |
[aws-sdk-java] s3에 파일업로드하기 (0) | 2019.06.24 |
Comments