文档首页 > > SDK参考> 使用SDK> 使用SDK(C#)> 下载流式数据

下载流式数据

分享
更新时间: 2019/05/07 GMT+08:00

样例代码

参考初始化DIS客户端的操作初始化一个DIS客户端实例。使用客户端实例通过DIS通道获取数据。

var dic = new DISIngestionClient();
// 配置通道名称,已存在的通道   
String streamName = "streamName";     
// 配置数据下载分区ID   
String shardId = "shardId-0000000000";    
// 配置下载数据序列号   
const string startingSequenceNumber = "0";
// 配置下载数据方式   
const string shardIteratorType = "TRIM_HORIZON";
//获取数据游标
            var request = new GetShardIteratorRequest
            {
//通道名称
                StreamName = streamName,
//分区值
                ShardId = shardId,
//序列号
                StartingSequenceNumber = startingSequenceNumber,
//游标类型
                ShardIteratorType = shardIteratorType
            };

            var recordsRequest = new GetRecordsRequest();
            var response = dic.GetShardIterator(request);
            Console.Out.WriteLine(response);

            var iterator = response.ShardIterator;
         //下载数据
            while (true)
            {
            //数据游标。
                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;
                
}

运行结果

执行ctrl+F5,可以在控制台查看到类似如下信息:

GetShardIteratorResult[shardIterator=eyJnZXRJdGVyYXRvclBhcmFtIjp7InN0cmVhbS1uYW1lIjoiZGlzLXNoYXc1IiwicGFydGl0aW9uLWlkIjoic2hhcmRJZC0wMDAwMDAwMDAwIiwiY3Vyc29yLXR5cGUiOiJUUklNX0hPUklaT04iLCJzdGFydGluZy1zZXF1ZW5jZS1udW1iZXIiOiIwIn0sImdlbmVyYXRlVGltZXN0YW1wIjoxNTMxMTI1ODEwNDE1fQ]
Record[0] = shardId-00000000000
Record[1] = shardId-00000000001
Record[2] = shardId-00000000002
表1 响应参数说明

参数名

类型

说明

records

List<Record>

List record,record为对象结构体。

next_partition_cursor

String

下一个迭代器。

说明:

数据游标有效期为5分钟。

Record参数说明

partition_key

String

明确数据将写入的分区。

sequence_number

String

序列号。序列号是每个记录的唯一标识符。序列号由DIS在数据生产者调用PutRecords操作以添加数据到DIS数据通道时DIS服务自动分配的。同一分区键的序列号通常会随时间变化增加。PutRecords请求之间的时间段越长,序列号越大。

timestamp

Long

记录写入DIS的时间戳。

timestamp_type

String

时间戳类型。

CreateTime:创建时间。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问