查询数据

    InfluxDB返回一个json值,你查询的结果在result列表中,如果有错误发送,InfluxDB会在error这个key里解释错误发生的原因。

    1. {
    2. "results": [
    3. {
    4. "statement_id": 0,
    5. "series": [
    6. {
    7. "name": "cpu_load_short",
    8. "columns": [
    9. "time",
    10. "value"
    11. ],
    12. "values": [
    13. [
    14. "2015-01-29T21:55:43.702900257Z",
    15. 2
    16. ],
    17. [
    18. "2015-01-29T21:55:43.702900257Z",
    19. 0.55
    20. ],
    21. "2015-06-11T20:46:02Z",
    22. 0.64
    23. ]
    24. ]
    25. ]
    26. }
    27. ]
    28. }

    在一次API调用中发送多个InfluxDB的查询语句,可以简单地使用分号分隔每个查询,例如:

    1. {
    2. "results": [
    3. {
    4. "statement_id": 0,
    5. "series": [
    6. {
    7. "name": "cpu_load_short",
    8. "columns": [
    9. "time",
    10. "value"
    11. ],
    12. "values": [
    13. [
    14. "2015-01-29T21:55:43.702900257Z",
    15. 2
    16. ],
    17. [
    18. "2015-01-29T21:55:43.702900257Z",
    19. 0.55
    20. [
    21. "2015-06-11T20:46:02Z",
    22. 0.64
    23. ]
    24. }
    25. ]
    26. },
    27. {
    28. "statement_id": 1,
    29. "series": [
    30. {
    31. "name": "cpu_load_short",
    32. "columns": [
    33. "time",
    34. "count"
    35. ],
    36. "values": [
    37. [
    38. "1970-01-01T00:00:00Z",
    39. 3
    40. ]
    41. ]
    42. }
    43. ]
    44. }
    45. ]
    46. }

    查询数据时的其他可选参数

    时间戳格式

    在InfluxDB中的所有数据都是存的UTC时间,时间戳默认返回RFC3339格式的纳米级的UTC时间,例如2015-08-04T19:05:14.318570484Z,如果你想要返回Unix格式的时间,可以在请求参数里设置epoch参数,其中epoch可以是[h,m,s,ms,u,ns]之一。例如返回一个秒级的epoch:

    认证

    InfluxDB里面的认证默认是关闭的,查看章节了解如何开启认证。

    最大行限制

    可选参数max-row-limit允许使用者限制返回结果的数目,以保护InfluxDB不会在聚合结果的时候导致的内存耗尽。

    在1.2.2版本中,max-row-limit参数默认被设置为了0,这表示说对于返回值没有限制。

    这个最大行的限制仅仅作用于非分块(non-chunked)的请求中,分块(chunked)的请求还是返回无限制的数据。

    分块(chunking)

    可以设置参数chunked=true开启分块,使返回的数据是流式的batch,而不是单个的返回。返回结果可以按10000数据点被分块,为了改变这个返回最大的分块的大小,可以在查询的时候加上参数,例如返回数据点是每20000为一个批次。

      InfluxQL