0

How do you perform a scan using aws new sdk v2 for java? There is very little documentation out there.

fivedogit
  • 8,374
  • 7
  • 34
  • 43

1 Answers1

0

The documentation is scan-t on this because the v2 sdk is very new, so I had to dig into the API and really play around with how to do a simple scan + pagination using the v2 sdk. Here is the code sample that worked for me. Season to taste.

int count = 0;
DynamoDbClient ddb = DynamoDbClient.create();
ScanRequest request = ScanRequest.builder().tableName("Artists").limit(100).build();
ScanIterable scanResponses = ddb.scanPaginator(request);
List < Map < String, AttributeValue >> items;
Iterator < Map < String, AttributeValue >> map_it;
Map < String, AttributeValue > currentmap = null;
Set < String > mapKeys;
Iterator < String > keys_it;
String currentkey;
for (software.amazon.awssdk.services.dynamodb.model.ScanResponse response: scanResponses) {
    count += response.count();
    items = response.items();
    map_it = items.iterator();
    while (map_it.hasNext()) {
        currentmap = map_it.next();
        mapKeys = currentmap.keySet();
        keys_it = mapKeys.iterator();
        while (keys_it.hasNext()) {
            currentkey = keys_it.next();
            if (currentkey.equals("id")) // my results will have a "number" type id
                System.out.println(currentkey + "=" + currentmap.get(currentkey).n());
            else                         // the rest are strings
                System.out.println(currentkey + "=" + currentmap.get(currentkey).s());
        }
    }
}
System.out.println("count=" + count);

Results like:

id=252593
object={some: "objectstring"}
artistDiscogs=Joan Jett
coverImage=https://img.discogs.com/CxmwMYC3XxF7CJdpKwCnpQUZEaE=/600x776/smart/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/A-283542-1430342671-6179.jpeg.jpg
name=joan jett
fivedogit
  • 8,374
  • 7
  • 34
  • 43