All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.kinesisfirehose.model.PutRecordBatchRequest Maven / Gradle / Ivy

Go to download

The AWS Android SDK for Amazon Kinesis module holds the client classes that are used for communicating with Amazon Kinesis Service

There is a newer version: 2.8.4
Show newest version
/*
 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 * 
 *  http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package com.amazonaws.services.kinesisfirehose.model;

import java.io.Serializable;

import com.amazonaws.AmazonWebServiceRequest;

/**
 * Container for the parameters to the {@link com.amazonaws.services.kinesisfirehose.AmazonKinesisFirehose#putRecordBatch(PutRecordBatchRequest) PutRecordBatch operation}.
 * 

* Writes multiple data records into a delivery stream in a single call, * which can achieve higher throughput per producer than when writing * single records. To write single data records into a delivery stream, * use PutRecord. Applications using these operations are referred to as * producers. *

*

* Each PutRecordBatch request supports up to 500 records. Each record in * the request can be as large as 1,000 KB (before 64-bit encoding), up * to a limit of 4 MB for the entire request. By default, each delivery * stream can take in up to 2,000 transactions per second, 5,000 records * per second, or 5 MB per second. Note that if you use PutRecord and * PutRecordBatch, the limits are an aggregate across these two * operations for each delivery stream. For more information about limits * and how to request an increase, see * Amazon Kinesis Firehose Limits * . *

*

* You must specify the name of the delivery stream and the data record * when using PutRecord. The data record consists of a data blob that can * be up to 1,000 KB in size, and any kind of data, for example, a * segment from a log file, geographic location data, web site * clickstream data, and so on. *

*

* Amazon Kinesis Firehose buffers records before delivering them to the * destination. To disambiguate the data blobs at the destination, a * common solution is to use delimiters in the data, such as a newline ( * \n ) or some other character unique within the data. This * allows the consumer application(s) to parse individual data items when * reading the data from the destination. *

*

* The PutRecordBatch response includes a count of any failed records, * FailedPutCount , and an array of responses, * RequestResponses . * The FailedPutCount value is a count of records * that failed. Each entry in the RequestResponses array * gives additional information of the processed record. Each entry in * RequestResponses directly correlates with a record in the * request array using the same ordering, from the top to the bottom of * the request and response. RequestResponses always * includes the same number of records as the request array. * RequestResponses both successfully and unsuccessfully * processed records. Amazon Kinesis Firehose attempts to process all * records in each PutRecordBatch request. A single record failure does * not stop the processing of subsequent records. *

*

* A successfully processed record includes a RecordId * value, which is a unique value identified for the record. An * unsuccessfully processed record includes ErrorCode and * ErrorMessage values. ErrorCode reflects the * type of error and is one of the following values: * ServiceUnavailable or InternalFailure . * * ErrorMessage provides more detailed * information about the error. *

*

* If FailedPutCount is greater than 0 (zero), retry the * request. A retry of the entire batch of records is possible; however, * we strongly recommend that you inspect the entire response and resend * only those records that failed processing. This minimizes duplicate * records and also reduces the total bytes sent (and corresponding * charges). *

*

* If the PutRecordBatch operation throws a * ServiceUnavailableException , * back off and retry. If the exception persists, it is possible * that the throughput limits have been exceeded for the delivery stream. *

*

* Data records sent to Amazon Kinesis Firehose are stored for 24 hours * from the time they are added to a delivery stream as it attempts to * send the records to the destination. If the destination is unreachable * for more than 24 hours, the data is no longer available. *

* * @see com.amazonaws.services.kinesisfirehose.AmazonKinesisFirehose#putRecordBatch(PutRecordBatchRequest) */ public class PutRecordBatchRequest extends AmazonWebServiceRequest implements Serializable { /** * The name of the delivery stream. *

* Constraints:
* Length: 1 - 64
* Pattern: [a-zA-Z0-9_.-]+
*/ private String deliveryStreamName; /** * One or more records. *

* Constraints:
* Length: 1 - 500
*/ private com.amazonaws.internal.ListWithAutoConstructFlag records; /** * The name of the delivery stream. *

* Constraints:
* Length: 1 - 64
* Pattern: [a-zA-Z0-9_.-]+
* * @return The name of the delivery stream. */ public String getDeliveryStreamName() { return deliveryStreamName; } /** * The name of the delivery stream. *

* Constraints:
* Length: 1 - 64
* Pattern: [a-zA-Z0-9_.-]+
* * @param deliveryStreamName The name of the delivery stream. */ public void setDeliveryStreamName(String deliveryStreamName) { this.deliveryStreamName = deliveryStreamName; } /** * The name of the delivery stream. *

* Returns a reference to this object so that method calls can be chained together. *

* Constraints:
* Length: 1 - 64
* Pattern: [a-zA-Z0-9_.-]+
* * @param deliveryStreamName The name of the delivery stream. * * @return A reference to this updated object so that method calls can be chained * together. */ public PutRecordBatchRequest withDeliveryStreamName(String deliveryStreamName) { this.deliveryStreamName = deliveryStreamName; return this; } /** * One or more records. *

* Constraints:
* Length: 1 - 500
* * @return One or more records. */ public java.util.List getRecords() { if (records == null) { records = new com.amazonaws.internal.ListWithAutoConstructFlag(); records.setAutoConstruct(true); } return records; } /** * One or more records. *

* Constraints:
* Length: 1 - 500
* * @param records One or more records. */ public void setRecords(java.util.Collection records) { if (records == null) { this.records = null; return; } com.amazonaws.internal.ListWithAutoConstructFlag recordsCopy = new com.amazonaws.internal.ListWithAutoConstructFlag(records.size()); recordsCopy.addAll(records); this.records = recordsCopy; } /** * One or more records. *

* Returns a reference to this object so that method calls can be chained together. *

* Constraints:
* Length: 1 - 500
* * @param records One or more records. * * @return A reference to this updated object so that method calls can be chained * together. */ public PutRecordBatchRequest withRecords(Record... records) { if (getRecords() == null) setRecords(new java.util.ArrayList(records.length)); for (Record value : records) { getRecords().add(value); } return this; } /** * One or more records. *

* Returns a reference to this object so that method calls can be chained together. *

* Constraints:
* Length: 1 - 500
* * @param records One or more records. * * @return A reference to this updated object so that method calls can be chained * together. */ public PutRecordBatchRequest withRecords(java.util.Collection records) { if (records == null) { this.records = null; } else { com.amazonaws.internal.ListWithAutoConstructFlag recordsCopy = new com.amazonaws.internal.ListWithAutoConstructFlag(records.size()); recordsCopy.addAll(records); this.records = recordsCopy; } return this; } /** * Returns a string representation of this object; useful for testing and * debugging. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getDeliveryStreamName() != null) sb.append("DeliveryStreamName: " + getDeliveryStreamName() + ","); if (getRecords() != null) sb.append("Records: " + getRecords() ); sb.append("}"); return sb.toString(); } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getDeliveryStreamName() == null) ? 0 : getDeliveryStreamName().hashCode()); hashCode = prime * hashCode + ((getRecords() == null) ? 0 : getRecords().hashCode()); return hashCode; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof PutRecordBatchRequest == false) return false; PutRecordBatchRequest other = (PutRecordBatchRequest)obj; if (other.getDeliveryStreamName() == null ^ this.getDeliveryStreamName() == null) return false; if (other.getDeliveryStreamName() != null && other.getDeliveryStreamName().equals(this.getDeliveryStreamName()) == false) return false; if (other.getRecords() == null ^ this.getRecords() == null) return false; if (other.getRecords() != null && other.getRecords().equals(this.getRecords()) == false) return false; return true; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy