AWS services or capabilities described in AWS Documentation may vary by region/location. Click Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.
A shard iterator specifies the position in the shard from which to start reading data records sequentially. A shard iterator specifies this position using the sequence number of a data record in a shard. A sequence number is the identifier associated with every record ingested in the Amazon Kinesis stream. The sequence number is assigned when a record is put into the stream.
You must specify the shard iterator type. For example, you can set the ShardIteratorType
parameter to read exactly from the position denoted by a specific sequence number
by using the AT_SEQUENCE_NUMBER
shard iterator type, or right after the
sequence number by using the AFTER_SEQUENCE_NUMBER
shard iterator type,
using sequence numbers returned by earlier calls to PutRecord, PutRecords,
GetRecords, or DescribeStream. You can specify the shard iterator type
TRIM_HORIZON
in the request to cause ShardIterator
to point
to the last untrimmed record in the shard in the system, which is the oldest data
record in the shard. Or you can point to just after the most recent record in the
shard, by using the shard iterator type LATEST
, so that you always read
the most recent data in the shard.
When you repeatedly read from an Amazon Kinesis stream use a GetShardIterator
request to get the first shard iterator for use in your first GetRecords request
and then use the shard iterator returned by the GetRecords request in NextShardIterator
for subsequent reads. A new shard iterator is returned by every GetRecords
request in NextShardIterator
, which you use in the ShardIterator
parameter of the next GetRecords request.
If a GetShardIterator request is made too often, you receive a ProvisionedThroughputExceededException
.
For more information about throughput limits, see GetRecords.
If the shard is closed, the iterator can't return more data, and GetShardIterator
returns null
for its ShardIterator
. A shard can be closed
using SplitShard or MergeShards.
GetShardIterator has a limit of 5 transactions per second per account per open shard.
Namespace: Amazon.Kinesis.Model
Assembly: AWSSDK.dll
Version: (assembly version)
public class GetShardIteratorRequest : AmazonKinesisRequest IRequestEvents
The GetShardIteratorRequest type exposes the following members
Name | Description | |
---|---|---|
GetShardIteratorRequest() |
Name | Type | Description | |
---|---|---|---|
ShardId | System.String |
Gets and sets the property ShardId.
The shard ID of the shard to get the iterator for. |
|
ShardIteratorType | Amazon.Kinesis.ShardIteratorType |
Gets and sets the property ShardIteratorType.
Determines how the shard iterator is used to start reading data records from the shard. The following are the valid shard iterator types:
|
|
StartingSequenceNumber | System.String |
Gets and sets the property StartingSequenceNumber.
The sequence number of the data record in the shard from which to start reading from. |
|
StreamName | System.String |
Gets and sets the property StreamName.
The name of the stream. |
.NET Framework:
Supported in: 4.5, 4.0, 3.5
.NET for Windows Store apps:
Supported in: Windows 8.1, Windows 8
.NET for Windows Phone:
Supported in: Windows Phone 8.1, Windows Phone 8