更新时间:2024-10-21 GMT+08:00

应用示例

操作场景

数据接入服务面向实时数据,提供高效采集、传输、分发能力,提供丰富的接口,帮助您快速构建实时数据应用。

下面介绍如何调用创建通道API创建数据接入通道,API的调用方法请参见如何调用API

通过IAM服务获取到的Token有效期为24小时,需要使用同一个Token鉴权时,可以先将Token缓存,避免频繁调用。

涉及API

当您使用Token认证方式完成认证鉴权时,需要获取用户Token并在调用接口时增加“X-Auth-Token”到业务接口请求消息头中。

  • IAM获取token的API
  • DIS创建通道的API

前提条件

您需要规划数据接入服务所在的区域信息,并根据区域确定调用API的Endpoint。

终端节点(Endpoint)即调用API的请求地址,不同服务不同区域的终端节点不同。本服务的Endpoint您可以从终端节点Endpoint获取。

创建通道

如下示例是创建通道最简单的配置。

  1. Token认证,具体操作请参考Token认证
  2. 发送“POST https://dis的Endpoint/v2/{project_id}/streams”。
  3. 在Request Header中增加“X-Auth-Token”。
  4. 在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,表示通道创建成功。

    若请求失败,则会返回错误码及对应的错误信息说明,详细错误码信息请参考错误码

创建支持自动扩缩容的通道

您还可以创建支持自动扩缩容的通道,可以根据通道的流量情况自动为您扩充或缩减分片数量。示例如下。

  1. Token认证,具体操作请参考Token认证
  2. 发送“POST https://dis的Endpoint/v2/{project_id}/streams”。
  3. 在Request Header中增加“X-Auth-Token”。
  4. 在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来完成映射,示例如下。

  1. Token认证,具体操作请参考Token认证
  2. 发送“POST https://dis的Endpoint/v2/{project_id}/streams”。
  3. 在Request Header中增加“X-Auth-Token”。
  4. 在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,表示通道创建成功。

    若请求失败,则会返回错误码及对应的错误信息说明,详细错误码信息请参考错误码