简介

最近更新时间:2020-11-17 17:12:05

CTSDB 支持 HTTP 协议进行数据写入和查询等操作。提供的 HTTP API 是 RESTful API,对资源的请求方式是通过向资源对应的 URI 发送标准的 HTTP 请求,例如 GET 用来获取资源,POST 用来新建资源(也可以用于更新资源),PUT 用来更新资源,DELETE 用来删除资源等。

用户通过 HTTP API 几乎可以实现所有的数据操作。CTSDB 通过提供 VPC 网络隔离和访问时提供用户名和密码的身份认证方式来保证数据的安全性,通过 JSON 格式的结构体进行数据交换,每个请求都会返回一个标准的 HTTP 响应状态码和响应内容。若操作失败,用户可以根据响应内容获取到具体错误信息。

通过 RESTful API 接口连接实例方式请参见 连接实例

命名规则

CTSDB 中 metric(表)、tags(维度列)、fields(数据列) 的命名应简明扼要,tags、fields 详细介绍可参见 请求内容

  • metric 命名规则:允许使用小写英文字母、数字、 _(下划线) 、 - (短划线)、 .(圆点)的组合,且不能以 .(圆点)、_(下划线) 或 -(短划线)开头。长度为1到200个字符。
  • metric 中 tags 和 fields 命名规则:允许大小写英文字母、数字、_(下划线)、-(短划线)、 .(圆点)的任意组合,且不能以 .(圆点)开头。长度为1到255个字符。

系统限制

  • metric 中 tags 和 fields 限制:metric 中字段总数不超过1000。
  • 批量写入 metric 时写入点限制:建议单次 bulk 条数在1000 - 5000之间,物理大小在1MB - 15MB大小之间。

系统默认规则

  • 写入数据时新增字段处理:如果您往 metric 表写入数据时有未定义的新增字段,CTSDB 默认会将新增字段存储为 tags。您也可通过修改 metric 的 options 选项的 default_type 字段来修改,修改 metric 请参考 更新 metric
    • 若新增字段为整型,则 CTSDB 将其存储为 long 类型。
    • 若新增字段为小数,则 CTSDB 将其存储为 float 类型。
    • 若新增字段为字符串,则 CTSDB 将其存储为 string 类型,其长度为 max_string_length,超过部分会被系统丢弃,max_string_length 的长度可自定义,默认为256个字符,修改请参考 更新 metric
  • 日期与时间处理:日期与时间在 CTSDB 中以 UTC 格式存储,因此,查询数据时涉及时间范围的查询请通过 time_zone 参数来指定时区,其格式为 ISO 8601 UTC 偏移(例如 +01:00 或 -08:00),具体时区需根据实例所处的地域来确定,一般国内地域是东八区。具体请参考 常用查询示例

连接实例

CTSDB 实例目前只提供 VPC 网络下的连接方式。您可以通过控制台连接实例,也可以通过 RESTful API 接口连接实例,通过 API 接口连接实例时需要提供 root 帐号的密码,以确保安全性。

CURL 连接实例创建表示例如下,其中${user:password}是实例的用户名和密码,${vip}:${vport}是实例的 IP 和 Port,${metric_name}是新建的表名称。

curl -u ${user:password} -H 'Content-Type:application/json' -X PUT ${vip}:${vport}/_metric/${metric_name} -d'
{ 
    "tags": {
        "region": "string",
        "set":  "long",
        "host": "string"
    },
    "time": {
         "name": "timestamp",
         "format": "epoch_second"
    },
    "fields": {
        "cpu_usage":  "float"
    },
    "options": {
        "expire_day": 7,
        "refresh_interval": "10s",
        "number_of_shards": 5,
        "number_of_replicas": 1,
        "rolling_period": 1
    }
}'
目录