com.amazonaws.services.kinesis.model.PutRecordResult Java Examples
The following examples show how to use
com.amazonaws.services.kinesis.model.PutRecordResult.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: MetricsEmittingBasicClickEventsToKinesis.java From aws-big-data-blog with Apache License 2.0 | 6 votes |
@Override protected void runOnce() throws Exception { ClickEvent event = inputQueue.take(); String partitionKey = event.getSessionId(); ByteBuffer data = ByteBuffer.wrap( event.getPayload().getBytes("UTF-8")); recordsPut.getAndIncrement(); PutRecordResult res = kinesis.putRecord( STREAM_NAME, data, partitionKey); MetricDatum d = new MetricDatum() .withDimensions( new Dimension().withName("StreamName").withValue(STREAM_NAME), new Dimension().withName("ShardId").withValue(res.getShardId()), new Dimension().withName("Host").withValue( InetAddress.getLocalHost().toString())) .withValue(1.0) .withMetricName("RecordsPut"); cw.putMetricData(new PutMetricDataRequest() .withMetricData(d) .withNamespace("MySampleProducer")); }
Example #2
Source File: MockKinesisClient.java From presto-kinesis with Apache License 2.0 | 6 votes |
public PutRecordResult putRecord(ByteBuffer data, String partitionKey) { // Create record and insert into the shards. Initially just do it // on a round robin basis. long ts = System.currentTimeMillis() - 50000; Record rec = new Record(); rec = rec.withData(data).withPartitionKey(partitionKey).withSequenceNumber(String.valueOf(sequenceNo)); rec.setApproximateArrivalTimestamp(new Date(ts)); if (nextShard == shards.size()) { nextShard = 0; } InternalShard shard = shards.get(nextShard); shard.addRecord(rec); PutRecordResult result = new PutRecordResult(); result.setSequenceNumber(String.valueOf(sequenceNo)); result.setShardId(shard.getShardId()); nextShard++; sequenceNo++; return result; }
Example #3
Source File: MockKinesisClient.java From presto-kinesis with Apache License 2.0 | 6 votes |
@Override public PutRecordsResult putRecords(PutRecordsRequest putRecordsRequest) throws AmazonServiceException, AmazonClientException { // Setup method to add a batch of new records: InternalStream theStream = this.getStream(putRecordsRequest.getStreamName()); if (theStream != null) { PutRecordsResult result = new PutRecordsResult(); ArrayList<PutRecordsResultEntry> resultList = new ArrayList<PutRecordsResultEntry>(); for (PutRecordsRequestEntry entry : putRecordsRequest.getRecords()) { PutRecordResult putResult = theStream.putRecord(entry.getData(), entry.getPartitionKey()); resultList.add((new PutRecordsResultEntry()).withShardId(putResult.getShardId()).withSequenceNumber(putResult.getSequenceNumber())); } result.setRecords(resultList); return result; } else { throw new AmazonClientException("This stream does not exist!"); } }
Example #4
Source File: LambdaAggregatingForwarder.java From kinesis-aggregation with Apache License 2.0 | 6 votes |
/** * Check if the input aggregated record is complete and if so, forward it to the * configured destination Kinesis stream. * * @param logger The LambdaLogger from the input Context * @param aggRecord The aggregated record to transmit or null if the record isn't full yet. */ private void checkAndForwardRecords(LambdaLogger logger, AggRecord aggRecord) { if(aggRecord == null) { return; } logger.log("Forwarding " + aggRecord.getNumUserRecords() + " as an aggregated record."); PutRecordRequest request = aggRecord.toPutRecordRequest(DESTINATION_STREAM_NAME); try { PutRecordResult result = this.kinesisForwarder.putRecord(request); logger.log("Successfully published record Seq #" + result.getSequenceNumber() + " to shard " + result.getShardId()); } catch(Exception e) { logger.log("ERROR: Failed to forward Kinesis records to destination stream: " + e.getMessage()); return; } }
Example #5
Source File: ProducerBase.java From aws-big-data-blog with Apache License 2.0 | 6 votes |
public void run() { while (true) { try { // get message from queue - blocking so code will wait here for work to do Event event = eventsQueue.take(); PutRecordRequest put = new PutRecordRequest(); put.setStreamName(this.streamName); put.setData(event.getData()); put.setPartitionKey(event.getPartitionKey()); PutRecordResult result = kinesisClient.putRecord(put); logger.info(result.getSequenceNumber() + ": {}", this); } catch (Exception e) { // didn't get record - move on to next\ e.printStackTrace(); } } }
Example #6
Source File: KinesisBinderProcessorTests.java From spring-cloud-stream-binder-aws-kinesis with Apache License 2.0 | 6 votes |
@Bean public AsyncHandler<PutRecordRequest, PutRecordResult> asyncHandler() { return new AsyncHandler<PutRecordRequest, PutRecordResult>() { @Override public void onError(Exception exception) { } @Override public void onSuccess(PutRecordRequest request, PutRecordResult putRecordsResult) { ProcessorConfiguration.this.resultMonoProcessor.onNext(putRecordsResult); ProcessorConfiguration.this.resultMonoProcessor.onComplete(); } }; }
Example #7
Source File: MockKinesisClient.java From presto with Apache License 2.0 | 6 votes |
public PutRecordResult putRecord(ByteBuffer data, String partitionKey) { // Create record and insert into the shards. Initially just do it // on a round robin basis. long timestamp = System.currentTimeMillis() - 50000; Record record = new Record(); record = record.withData(data).withPartitionKey(partitionKey).withSequenceNumber(String.valueOf(sequenceNo)); record.setApproximateArrivalTimestamp(new Date(timestamp)); if (nextShard == shards.size()) { nextShard = 0; } InternalShard shard = shards.get(nextShard); shard.addRecord(record); PutRecordResult result = new PutRecordResult(); result.setSequenceNumber(String.valueOf(sequenceNo)); result.setShardId(shard.getShardId()); nextShard++; sequenceNo++; return result; }
Example #8
Source File: MockKinesisClient.java From presto with Apache License 2.0 | 6 votes |
@Override public PutRecordsResult putRecords(PutRecordsRequest putRecordsRequest) throws AmazonClientException { // Setup method to add a batch of new records: InternalStream theStream = this.getStream(putRecordsRequest.getStreamName()); if (theStream != null) { PutRecordsResult result = new PutRecordsResult(); List<PutRecordsResultEntry> resultList = new ArrayList<>(); for (PutRecordsRequestEntry entry : putRecordsRequest.getRecords()) { PutRecordResult putResult = theStream.putRecord(entry.getData(), entry.getPartitionKey()); resultList.add((new PutRecordsResultEntry()).withShardId(putResult.getShardId()).withSequenceNumber(putResult.getSequenceNumber())); } result.setRecords(resultList); return result; } else { throw new AmazonClientException("This stream does not exist!"); } }
Example #9
Source File: KinesisPubsubClient.java From flink with Apache License 2.0 | 5 votes |
public void sendMessage(String topic, String msg) { PutRecordRequest putRecordRequest = new PutRecordRequest(); putRecordRequest.setStreamName(topic); putRecordRequest.setPartitionKey("fakePartitionKey"); putRecordRequest.withData(ByteBuffer.wrap(msg.getBytes())); PutRecordResult putRecordResult = kinesisClient.putRecord(putRecordRequest); LOG.info("added record: {}", putRecordResult.getSequenceNumber()); }
Example #10
Source File: EventPublisherAmazonKinesisTest.java From konker-platform with Apache License 2.0 | 5 votes |
public com.amazonaws.services.kinesis.AmazonKinesis build(AmazonKinesis kinesisProperties) { return new AbstractAmazonKinesis() { public PutRecordResult putRecord(PutRecordRequest request) { // do nothing return new PutRecordResult(); } }; }
Example #11
Source File: AsyncPutCallStatsReporter.java From kinesis-log4j-appender with Apache License 2.0 | 5 votes |
/** * This method is invoked when a log record is successfully sent to Kinesis. * Though this is not too useful for production use cases, it provides a good * debugging tool while tweaking parameters for the appender. */ @Override public void onSuccess(PutRecordRequest request, PutRecordResult result) { successfulRequestCount++; if (logger.isDebugEnabled() && (successfulRequestCount + failedRequestCount) % 3000 == 0) { logger.debug("Appender (" + appenderName + ") made " + successfulRequestCount + " successful put requests out of total " + (successfulRequestCount + failedRequestCount) + " in " + PeriodFormat.getDefault().print(new Period(startTime, DateTime.now())) + " since start"); } }
Example #12
Source File: MockKinesisClient.java From presto-kinesis with Apache License 2.0 | 5 votes |
@Override public PutRecordResult putRecord(PutRecordRequest putRecordRequest) throws AmazonServiceException, AmazonClientException { // Setup method to add a new record: InternalStream theStream = this.getStream(putRecordRequest.getStreamName()); if (theStream != null) { PutRecordResult result = theStream.putRecord(putRecordRequest.getData(), putRecordRequest.getPartitionKey()); return result; } else { throw new AmazonClientException("This stream does not exist!"); } }
Example #13
Source File: KinesisLogger.java From json-data-generator with Apache License 2.0 | 5 votes |
@Override public void logEvent(String event, Map<String, Object> producerConfig) { String streamName = (String) producerConfig.get("stream"); if(streamName == null){ streamName = this.streamName; } sequenceNumber.getAndIncrement(); try { PutRecordRequest putRecordRequest = new PutRecordRequest(); putRecordRequest.setStreamName( streamName); putRecordRequest.setData(generateData(event)); putRecordRequest.setPartitionKey( TIMESTAMP); PutRecordResult putRecordResult = kinesisClient.putRecord( putRecordRequest ); } catch (Exception ex) { //got interrupted while waiting log.error("Error while publishing events : ", ex); } long totalTimeElasped = System.currentTimeMillis() - startTimeFull; log.info("Events Published : " + sequenceNumber + " events in " + (totalTimeElasped / 1000) + " secs"); if(this.maxRecords != 0 && sequenceNumber.intValue() == maxRecords){ shutdown(); System.exit(0); } }
Example #14
Source File: MockKinesisClient.java From presto with Apache License 2.0 | 5 votes |
@Override public PutRecordResult putRecord(PutRecordRequest putRecordRequest) throws AmazonClientException { // Setup method to add a new record: InternalStream theStream = this.getStream(putRecordRequest.getStreamName()); if (theStream != null) { return theStream.putRecord(putRecordRequest.getData(), putRecordRequest.getPartitionKey()); } else { throw new AmazonClientException("This stream does not exist!"); } }
Example #15
Source File: KinesisPersistWriter.java From streams with Apache License 2.0 | 4 votes |
@Override public void write(StreamsDatum entry) { String document = (String) TypeConverterUtil.getInstance().convert(entry.getDocument(), String.class); PutRecordRequest putRecordRequest = new PutRecordRequest() .withStreamName(config.getStream()) .withPartitionKey(entry.getId()) .withData(ByteBuffer.wrap(document.getBytes())); PutRecordResult putRecordResult = client.putRecord(putRecordRequest); entry.setSequenceid(new BigInteger(putRecordResult.getSequenceNumber())); LOGGER.debug("Wrote {}", entry); }
Example #16
Source File: MockKinesisClient.java From presto-kinesis with Apache License 2.0 | 4 votes |
@Override public PutRecordResult putRecord(String s, ByteBuffer byteBuffer, String s1, String s2) throws AmazonServiceException, AmazonClientException { throw new UnsupportedOperationException("MockKinesisClient doesn't support this."); }
Example #17
Source File: MockKinesisClient.java From presto-kinesis with Apache License 2.0 | 4 votes |
@Override public PutRecordResult putRecord(String s, ByteBuffer byteBuffer, String s1) throws AmazonServiceException, AmazonClientException { throw new UnsupportedOperationException("MockKinesisClient doesn't support this."); }
Example #18
Source File: AmazonKinesisMock.java From beam with Apache License 2.0 | 4 votes |
@Override public PutRecordResult putRecord( String streamName, ByteBuffer data, String partitionKey, String sequenceNumberForOrdering) { throw new RuntimeException("Not implemented"); }
Example #19
Source File: AmazonKinesisMock.java From beam with Apache License 2.0 | 4 votes |
@Override public PutRecordResult putRecord(String streamName, ByteBuffer data, String partitionKey) { throw new RuntimeException("Not implemented"); }
Example #20
Source File: AmazonKinesisMock.java From beam with Apache License 2.0 | 4 votes |
@Override public PutRecordResult putRecord(PutRecordRequest putRecordRequest) { throw new RuntimeException("Not implemented"); }
Example #21
Source File: KinesisSender.java From zipkin-aws with Apache License 2.0 | 4 votes |
@Override public void onSuccess(PutRecordRequest request, PutRecordResult result) { callback.onSuccess(null); }
Example #22
Source File: KinesisSender.java From zipkin-aws with Apache License 2.0 | 4 votes |
@Override protected boolean doIsCanceled() { Future<PutRecordResult> maybeFuture = future; return maybeFuture != null && maybeFuture.isCancelled(); }
Example #23
Source File: KinesisSender.java From zipkin-aws with Apache License 2.0 | 4 votes |
@Override protected void doCancel() { Future<PutRecordResult> maybeFuture = future; if (maybeFuture != null) maybeFuture.cancel(true); }
Example #24
Source File: KinesisBinderTests.java From spring-cloud-stream-binder-aws-kinesis with Apache License 2.0 | 4 votes |
@Test @SuppressWarnings("unchecked") public void testProducerErrorChannel() throws Exception { KinesisTestBinder binder = getBinder(); final RuntimeException putRecordException = new RuntimeException( "putRecordRequestEx"); final AtomicReference<Object> sent = new AtomicReference<>(); AmazonKinesisAsync amazonKinesisMock = mock(AmazonKinesisAsync.class); BDDMockito .given(amazonKinesisMock.putRecordAsync(any(PutRecordRequest.class), any(AsyncHandler.class))) .willAnswer((Answer<Future<PutRecordResult>>) (invocation) -> { PutRecordRequest request = invocation.getArgument(0); sent.set(request.getData()); AsyncHandler<?, ?> handler = invocation.getArgument(1); handler.onError(putRecordException); return mock(Future.class); }); new DirectFieldAccessor(binder.getBinder()).setPropertyValue("amazonKinesis", amazonKinesisMock); ExtendedProducerProperties<KinesisProducerProperties> producerProps = createProducerProperties(); producerProps.setErrorChannelEnabled(true); DirectChannel moduleOutputChannel = createBindableChannel("output", createProducerBindingProperties(producerProps)); Binding<MessageChannel> producerBinding = binder.bindProducer("ec.0", moduleOutputChannel, producerProps); ApplicationContext applicationContext = TestUtils.getPropertyValue( binder.getBinder(), "applicationContext", ApplicationContext.class); SubscribableChannel ec = applicationContext.getBean("ec.0.errors", SubscribableChannel.class); final AtomicReference<Message<?>> errorMessage = new AtomicReference<>(); final CountDownLatch latch = new CountDownLatch(1); ec.subscribe((message) -> { errorMessage.set(message); latch.countDown(); }); String messagePayload = "oops"; moduleOutputChannel.send(new GenericMessage<>(messagePayload.getBytes())); assertThat(latch.await(10, TimeUnit.SECONDS)).isTrue(); assertThat(errorMessage.get()).isInstanceOf(ErrorMessage.class); assertThat(errorMessage.get().getPayload()) .isInstanceOf(AwsRequestFailureException.class); AwsRequestFailureException exception = (AwsRequestFailureException) errorMessage .get().getPayload(); assertThat(exception.getCause()).isSameAs(putRecordException); assertThat(((PutRecordRequest) exception.getRequest()).getData()) .isSameAs(sent.get()); producerBinding.unbind(); }
Example #25
Source File: MockKinesisClient.java From presto with Apache License 2.0 | 4 votes |
@Override public PutRecordResult putRecord(String s, ByteBuffer byteBuffer, String s1, String s2) throws AmazonServiceException, AmazonClientException { throw new UnsupportedOperationException("MockKinesisClient doesn't support this."); }
Example #26
Source File: MockKinesisClient.java From presto with Apache License 2.0 | 4 votes |
@Override public PutRecordResult putRecord(String s, ByteBuffer byteBuffer, String s1) throws AmazonServiceException, AmazonClientException { throw new UnsupportedOperationException("MockKinesisClient doesn't support this."); }