应用示例
操作场景
数据接入服务面向实时数据,提供高效采集、传输、分发能力,提供丰富的接口,帮助您快速构建实时数据应用。
涉及API
当您使用Token认证方式完成认证鉴权时,需要获取用户Token并在调用接口时增加“X-Auth-Token”到业务接口请求消息头中。
- IAM获取token的API
- DIS创建通道的API
前提条件
您需要规划数据接入服务所在的区域信息,并根据区域确定调用API的Endpoint。
终端节点(Endpoint)即调用API的请求地址,不同服务不同区域的终端节点不同。本服务的Endpoint您可以从终端节点Endpoint获取。
创建通道
如下示例是创建通道最简单的配置。
- Token认证,具体操作请参考Token认证。
- 发送“POST https://dis的Endpoint/v2/{project_id}/streams”。
- 在Request Header中增加“X-Auth-Token”。
- 在Request Body中传入参数如下:
{ "stream_name": "dis-DLpR", "partition_count": 1, "stream_type": "COMMON", "data_duration": 24 }
- stream_name:通道的名称,由您自行定义,例如取名为newstream。
- partition_count:分区是DIS数据通道的基本吞吐量单位,您可以根据业务吞吐的需求选择通道的分区数。
- stream_type:通道类型,“COMMON”表示普通分区,单分区支持最大1MB/s的写入速度和2MB/s的读取速度。
- data_duration:通道生命周期,即通道分区中数据的保留时长。
请求响应成功后,返回201 Created,表示通道创建成功。
若请求失败,则会返回错误码及对应的错误信息说明,详细错误码信息请参考错误码。
创建支持自动扩缩容的通道
您还可以创建支持自动扩缩容的通道,可以根据通道的流量情况自动为您扩充或缩减分片数量。示例如下。
- Token认证,具体操作请参考Token认证。
- 发送“POST https://dis的Endpoint/v2/{project_id}/streams”。
- 在Request Header中增加“X-Auth-Token”。
- 在Request Body中传入参数如下:
{ "stream_name": "dis-DLpR", "partition_count": 1, "stream_type": "COMMON", "data_duration": 24 "auto_scale_enabled": true, "auto_scale_min_partition_count": 2, "auto_scale_max_partition_count": 10 }
这个示例中创建了支持自动扩缩容的通道,通道缩容的最小分区数量是2,扩容的最大分区数量是10,也就是说如果通道10个分区后不会再触发自动扩容。
- auto_scale_enabled:是否开启自动扩缩容,true表示开启。
- auto_scale_min_partition_count:当自动扩缩容启用时,自动缩容的最小分片数,比如这个示例中当分区数量为2时,不会再触发自动缩容。
- auto_scale_max_partition_count:当自动扩缩容启用时,自动扩容的最大分片数,比如这个示例中当分区数量为10时,不会再触发自动扩容。
请求响应成功后,返回201 Created,表示通道创建成功。
若请求失败,则会返回错误码及对应的错误信息说明,详细错误码信息请参考错误码。
创建带数据Schema的通道
您还可以为通道配置Schema,在使用DIS转储到其它服务时,可以根据通道配置的Schema来完成映射,示例如下。
- Token认证,具体操作请参考Token认证。
- 发送“POST https://dis的Endpoint/v2/{project_id}/streams”。
- 在Request Header中增加“X-Auth-Token”。
- 在Request Body中传入参数如下:
{ "stream_name": "dis-DLpR", "partition_count": 1, "stream_type": "COMMON", "data_duration": 24 "auto_scale_enabled": true, "auto_scale_min_partition_count": 1, "auto_scale_max_partition_count": 10 "data_type": "JSON", "data_schema": "{\"type\":\"record\",\"name\":\"RecordName\",\"fields\":[{\"name\":\"key1\",\"type\":\"string\"},{\"name\":\"key2\",\"type\":\"string\"}]}" }
这个示例中创建了一个源数据类型为JSON,且数据包含“key1”、“key2”这两个属性的通道。
- data_type:指定源数据的类型,“JSON”表示分区中的数据格式为JSON格式。
- data_schema:源数据Schema,用于描述JSON、CSV格式的源数据结构,采用Avro Schema的语法描述。
请求响应成功后,返回201 Created,表示通道创建成功。
若请求失败,则会返回错误码及对应的错误信息说明,详细错误码信息请参考错误码。