Example usage for com.amazonaws.services.kinesis.model CreateStreamRequest CreateStreamRequest

List of usage examples for com.amazonaws.services.kinesis.model CreateStreamRequest CreateStreamRequest

Introduction

In this page you can find the example usage for com.amazonaws.services.kinesis.model CreateStreamRequest CreateStreamRequest.

Prototype

CreateStreamRequest

Source Link

Usage

From source file:com.xujinpeng.kinesis.AmazonKinesisRecordProducer.java

License:Open Source License

public void produceData(int counter) throws InterruptedException {
    String myStreamName = Constants.APPLICATION_STREAM_NAME;
    Integer myStreamSize = 1;/*  ww w .  j a  v a  2  s. c om*/

    // Describe the stream and check if it exists.
    DescribeStreamRequest describeStreamRequest = new DescribeStreamRequest().withStreamName(myStreamName);
    try {
        StreamDescription streamDescription = kinesis.describeStream(describeStreamRequest)
                .getStreamDescription();
        System.out.printf("Stream %s has a status of %s.\n", myStreamName, streamDescription.getStreamStatus());

        if ("DELETING".equals(streamDescription.getStreamStatus())) {
            System.out.println("Stream is being deleted. This sample will now exit.");
            waitForStreamToBecomeAvailable(myStreamName);
            //                System.exit(0);
        }

        // Wait for the stream to become active if it is not yet ACTIVE.
        if (!"ACTIVE".equals(streamDescription.getStreamStatus())) {
            waitForStreamToBecomeAvailable(myStreamName);
        }
    } catch (ResourceNotFoundException ex) {
        System.out.printf("Stream %s does not exist. Creating it now.\n", myStreamName);

        // Create a stream. The number of shards determines the provisioned throughput.
        CreateStreamRequest createStreamRequest = new CreateStreamRequest();
        createStreamRequest.setStreamName(myStreamName);
        createStreamRequest.setShardCount(myStreamSize);
        kinesis.createStream(createStreamRequest);
        // The stream is now being created. Wait for it to become active.
        waitForStreamToBecomeAvailable(myStreamName);
    }

    // List all of my streams.
    ListStreamsRequest listStreamsRequest = new ListStreamsRequest();
    listStreamsRequest.setLimit(10);
    ListStreamsResult listStreamsResult = kinesis.listStreams(listStreamsRequest);
    List<String> streamNames = listStreamsResult.getStreamNames();
    while (listStreamsResult.isHasMoreStreams()) {
        if (streamNames.size() > 0) {
            listStreamsRequest.setExclusiveStartStreamName(streamNames.get(streamNames.size() - 1));
        }

        listStreamsResult = kinesis.listStreams(listStreamsRequest);
        streamNames.addAll(listStreamsResult.getStreamNames());
    }
    // Print all of my streams.
    System.out.println("List of my streams: ");
    for (int i = 0; i < streamNames.size(); i++) {
        System.out.println("\t- " + streamNames.get(i));
    }

    System.out.printf("Putting records in stream : %s until this application is stopped...\n", myStreamName);
    System.out.println("Press CTRL-C to stop.");
    // Write records to the stream until this program is aborted.
    for (int i = 0; i < counter; i++) {
        long createTime = System.currentTimeMillis();
        PutRecordRequest putRecordRequest = new PutRecordRequest();
        putRecordRequest.setStreamName(myStreamName);

        Date loginDate = new Date(System.currentTimeMillis() - TimeUnit.HOURS.toMillis(1));
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a");

        System.out.println(dateFormat.format(loginDate));

        String randomData = String.format(
                "{\"username\":\"%s\",  \"loginTime\":\"%s\", \"gameDuration\":\"%s\", \"gameResult\":\"%s\", \"isBlackJack\":\"%s\"}\n",
                getRandomUserName(), dateFormat.format(loginDate), getRandomGameDuration(),
                getRandomGameResult(), getRandomBlackJackResult());
        putRecordRequest.setData(ByteBuffer.wrap(randomData.getBytes()));

        putRecordRequest.setPartitionKey(String.format("partitionKey-%d", createTime));

        kinesis.putRecord(putRecordRequest);
        System.out.printf(randomData);
    }
}

From source file:org.apache.apex.malhar.contrib.kinesis.KinesisOperatorTestBase.java

License:Apache License

@Before
public void beforeTest() {
    CreateStreamRequest streamRequest = null;
    createClient();// w ww .  j  av  a 2  s  . c o m

    for (int i = 0; i < 100; ++i) {
        try {
            streamName = streamNamePrefix + i;
            streamRequest = new CreateStreamRequest();
            streamRequest.setStreamName(streamName);
            streamRequest.setShardCount(shardCount);
            client.createStream(streamRequest);

            logger.info("created stream {}.", streamName);
            Thread.sleep(30000);

            break;
        } catch (ResourceInUseException riue) {
            logger.warn("Resource is in use.", riue.getMessage());
        } catch (Exception e) {
            logger.error("Got exception.", e);
            throw new RuntimeException(e);
        }
    }
}