Downloading Data
Sample Code
Initialize a DIS client as instructed in Initializing a DIS SDK Client Instance. Use the client instance to obtain data through the DIS stream.
var dic = new DISIngestionClient();
//Specify the stream name.
String streamName = "streamName";
//Specify the partition ID.
String shardId = "shardId-0000000000";
//Specify the sequence number.
const string startingSequenceNumber = "0";
//Specify the data download mode.
const string shardIteratorType = "TRIM_HORIZON";
//Obtain the data cursor.
var request = new GetShardIteratorRequest
{
//Specify the stream name.
StreamName = streamName,
//Specify the partition ID.
ShardId = shardId,
//Specify the SN.
StartingSequenceNumber = startingSequenceNumber,
//Specify the cursor type.
ShardIteratorType = shardIteratorType
};
var recordsRequest = new GetRecordsRequest();
var response = dic.GetShardIterator(request);
Console.Out.WriteLine(response);
var iterator = response.ShardIterator;
//Download data.
while (true)
{
//Obtain the data cursor.
recordsRequest.ShardIterator = iterator;
var recordResponse = dic.GetRecords(recordsRequest);
if (recordResponse.Records.Count > 0)
{
foreach (var record in recordResponse.Records)
{
Console.WriteLine("Record[{0}] = {1}", record.SequenceNumber, DecodeData(record.Data));
}
}
else
{
break;
}
iterator = recordResponse.NextShardIterator;
}
Viewing Execution Results
Run Ctrl+F5. Information similar to the following is displayed on the console:
GetShardIteratorResult[shardIterator=eyJnZXRJdGVyYXRvclBhcmFtIjp7InN0cmVhbS1uYW1lIjoiZGlzLXNoYXc1IiwicGFydGl0aW9uLWlkIjoic2hhcmRJZC0wMDAwMDAwMDAwIiwiY3Vyc29yLXR5cGUiOiJUUklNX0hPUklaT04iLCJzdGFydGluZy1zZXF1ZW5jZS1udW1iZXIiOiIwIn0sImdlbmVyYXRlVGltZXN0YW1wIjoxNTMxMTI1ODEwNDE1fQ] Record[0] = shardId-00000000000 Record[1] = shardId-00000000001 Record[2] = shardId-00000000002
|
Parameter |
Type |
Description |
|---|---|---|
|
records |
List<Record> |
Information of data records. |
|
next_partition_cursor |
String |
Next iterator.
NOTE:
The validity period of a cursor is 5 minutes. |
|
Description of parameter Record |
||
|
partition_key |
String |
Partition into which data will be written. |
|
sequence_number |
String |
Unique sequence number. Each data record has a sequence number that is unique within its partition. DIS automatically allocates an SN when the data producer calls the PutRecords operation to add data to the DIS stream. SN of the same partition key usually changes with time. A longer interval between PutRecords requests results in a larger sequence number. |
|
timestamp |
Long |
Timestamp when the record is written to DIS. |
|
timestamp_type |
String |
Type of the timestamp. The value is CreateTime, specifying the creation time. |
Last Article: Uploading Data
Next Article: Obtaining a Data Cursor
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.