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.77.0
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;

/**
 * 

* 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. *

*

* 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. 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 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. *

*/ 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. *

*/ private java.util.List 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. *

* * @return

* One or more records. *

*/ public java.util.List getRecords() { return records; } /** *

* One or more records. *

* * @param records

* One or more records. *

*/ public void setRecords(java.util.Collection records) { if (records == null) { this.records = null; return; } this.records = new java.util.ArrayList(records); } /** *

* One or more records. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @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) { this.records = new java.util.ArrayList(records.length); } for (Record value : records) { this.records.add(value); } return this; } /** *

* One or more records. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @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) { setRecords(records); 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 - 2024 Weber Informatics LLC | Privacy Policy