Example usage for com.amazonaws.services.dynamodbv2.model ShardIteratorType TRIM_HORIZON

List of usage examples for com.amazonaws.services.dynamodbv2.model ShardIteratorType TRIM_HORIZON

Introduction

In this page you can find the example usage for com.amazonaws.services.dynamodbv2.model ShardIteratorType TRIM_HORIZON.

Prototype

ShardIteratorType TRIM_HORIZON

To view the source code for com.amazonaws.services.dynamodbv2.model ShardIteratorType TRIM_HORIZON.

Click Source Link

Usage

From source file:dynamok.source.DynamoDbSourceTask.java

License:Apache License

private GetShardIteratorRequest getShardIteratorRequest(String shardId, String streamArn, String seqNum) {
    final GetShardIteratorRequest req = new GetShardIteratorRequest();
    req.setShardId(shardId);/*w  w w  .jav a2 s. co  m*/
    req.setStreamArn(streamArn);
    if (seqNum == null) {
        req.setShardIteratorType(ShardIteratorType.TRIM_HORIZON);
    } else {
        req.setShardIteratorType(ShardIteratorType.AFTER_SEQUENCE_NUMBER);
        req.setSequenceNumber(seqNum);
    }
    return req;
}

From source file:reactive.dynamo.StreamClient.java

License:Open Source License

public static void main(String args[]) throws InterruptedException {

    streamsClient.setEndpoint("http://localhost:8000");
    //      streamsClient.setEndpoint("streams.dynamodb.eu-west-1.amazonaws.com");

    String myStreamArn = "arn:aws:dynamodb:ddblocal:000000000000:table/TestTableForStreams/stream/2016-11-05T12:23:25.246";

    // Get the shards in the stream

    DescribeStreamResult describeStreamResult = streamsClient
            .describeStream(new DescribeStreamRequest().withStreamArn(myStreamArn));
    String streamArn = describeStreamResult.getStreamDescription().getStreamArn();
    List<Shard> shards = describeStreamResult.getStreamDescription().getShards();
    System.out.println("found shards " + shards.size());
    // Process each shard
    int numChanges = 2;
    for (Shard shard : shards) {
        String shardId = shard.getShardId();
        System.out.println("Processing " + shardId + " from stream " + streamArn + " with parent "
                + shard.getParentShardId());

        // Get an iterator for the current shard

        GetShardIteratorRequest getShardIteratorRequest = new GetShardIteratorRequest()
                .withStreamArn(myStreamArn).withShardId(shardId)
                .withShardIteratorType(ShardIteratorType.TRIM_HORIZON);
        GetShardIteratorResult getShardIteratorResult = streamsClient.getShardIterator(getShardIteratorRequest);
        String nextItr = getShardIteratorResult.getShardIterator();

        while (nextItr != null) {
            //         while (nextItr != null && numChanges > 0) {

            // Use the iterator to read the data records from the shard

            GetRecordsResult getRecordsResult = streamsClient
                    .getRecords(new GetRecordsRequest().withShardIterator(nextItr));
            List<Record> records = getRecordsResult.getRecords();
            System.out.println("Getting records...");
            if (records.isEmpty()) {
                Thread.sleep(2000);
            }/*from w ww. jav a2 s.  c o  m*/
            for (Record record : records) {
                System.out.println(record);
                numChanges--;
            }
            nextItr = getRecordsResult.getNextShardIterator();
        }

        System.out.println("Demo complete");
    }
}