为Influxdb设计RESTful API

4
我正在设计influxdb的RESTful API,但我不知道哪种模式更好,以及实现group_bysumcount和选择端点的更好方法。

样例数据结构

Measurement(table): record 

time        user_id   aaa_id  bbb_id  ccc_id  duration

1460678400        1        1       1       1        30      
1460678401        1        2       1       1        11      
1460678402        2        1       3       1         1      
1460678403        3        1       1       4        24      
...

哪个是终端节点?

我不知道哪个更好

GET /api/aaas/<aaa_id>/records
GET /api/bbbs/<bbb_id>/aaas/<aaa_id>/records

或者

GET /api/records

with parameters ?aaa_id=<aaa_id>
                ?aaa_id=<aaa_id>&bbb_id=<bbb_id>

计数和求和的实现

由于记录有很多数据,我只想让API返回duration字段的计数和总和,而不是每个单独的记录。以下是我目前的想法,但我不知道是否有更好的方法来实现这一点。

GET /api/records/statistic
GET /api/aaas/<aaa_id>/records/aggregate

按组统计

我想实现SELECT count(duration) from record group by user_id, aaa_id,但不知道如何使API更加易读。

1个回答

0

请查看以下示例

1)测量(表格):记录

  1. /record - 获取该测量的点
  2. /record?opr=sum&field=duration - 获取持续时间的总和
  3. /record?opr=sum&field=duration&stime=&etime= - 获取时间范围内持续时间的总和
  4. /record?opr=sum&field=duration&groupby - 按每个用户分组获取持续时间的总和

使用上述的opr参数,您可以提供像count、sum、avg、min、max等值。

field参数:您可以提供单个字段名称或字段列表。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接