首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在KairosDB/OpenTSDB中查询

在KairosDB/OpenTSDB中查询
EN

Stack Overflow用户
提问于 2015-08-18 02:20:55
回答 1查看 511关注 0票数 2

我有300万条记录,其中包括:

代码语言:javascript
复制
~/Abharthan/kairosdb$ head -10 export.txt
    {"name": "meterreadings", "timestamp":"1359695700","tags": {"Building_id":"1","building_type":"ElementarySchool","meter_type":"temperature","unit":"F"},"value":"34.85"}
    {"name": "meterreadings", "timestamp":"1359695700","tags": {"Building_id":"2","building_type":"Park","meter_type":"temperature","unit":"F"},"value":"0"}
    {"name": "meterreadings", "timestamp":"1359695700","tags": {"Building_id":"3","building_type":"Industrial","meter_type":"temperature","unit":"F"},"value":"0.07"}
    {"name": "meterreadings", "timestamp":"1359695700","tags": {"Building_id":"4","building_type":"RecreationCenter","meter_type":"temperature","unit":"F"},"value":"0"}
    {"name": "meterreadings", "timestamp":"1359695700","tags": {"Building_id":"5","building_type":"Park","meter_type":"temperature","unit":"F"},"value":"2.2"}
    {"name": "meterreadings", "timestamp":"1359695700","tags": {"Building_id":"6","building_type":"CommunityCenter","meter_type":"temperature","unit":"F"},"value":"31.41"}
    {"name": "meterreadings", "timestamp":"1359695700","tags": {"Building_id":"7","building_type":"Office","meter_type":"temperature","unit":"F"},"value":"0"}
    {"name": "meterreadings", "timestamp":"1359695700","tags": {"Building_id":"8","building_type":"ElementarySchool","meter_type":"temperature","unit":"F"},"value":"10.88"}
    {"name": "meterreadings", "timestamp":"1359695700","tags": {"Building_id":"9","building_type":"ElementarySchool","meter_type":"temperature","unit":"F"},"value":"42.27"}
    {"name": "meterreadings", "timestamp":"1359695700","tags": {"Building_id":"10","building_type":"ElementarySchool","meter_type":"temperature","unit":"F"},"value":"10.14"}

这是每栋建筑每小时收集一次building_id计量读数的一年读数。

我的起始数据时间戳是: 1359695700,结束时间戳是: 1422853200。我想查询这个DB以获得以下内容:

代码语言:javascript
复制
Query hourly average for one building(say building_id:100) for one year (output expected of 8760 points)
Query monthly sum for one building for one year (output expected of 12 points)

为了获得上述两个查询的结果,我编写了以下两个查询:

Query1:

{ "start_absolute":1359695700,"end_absolute":1422853200,“指标”:[{“标签”:{“Building_id”:“100”},“名称”:“计量”,“聚合器”:{“名称”:“avg”,“align_sampling”:真,“抽样”:{“值”:“1”,“单位”:“小时”} 答复: 200 {“查询”:[{“sample_size”:70168,“结果”:[{“名称”:“计量”,“group_by”:{“名称”:“类型”,“键入”:“数字”},“标签”:{“Building_id”:“100”,"building_type":"MiddleSchool",“meter_type”:“温度”,“单位”:“F”}"values":[1359695700,42.45377343113282,1360800000,36.42662912912908,1364400000,41.12510250000007,1368000000,54.915547499999946,1371600000,65.07990000000015,1375200000,55.8904375,1378800000,47.33335249999986,1382400000,38.952450000000034,1386000000,41.99267000000001,1389600000,41.28209500000009,1393200000,40.31645895895911,1396800000,40.758327499999915,1400400000,54.05608750000002,1404000000,63.410385,1407600000,65.38089749999993,1411200000,45.99822500000001,1414800000,39.669450137465724,1418400000,39.039874999999945,1422000000,41.795917721519]}]}]}

查询2:

{ "start_absolute":1359695700,"end_absolute":1422853200,“指标”:[{“标签”:{“Building_id”:“100”},“名称”:“计量”,“聚合器”:{“名称”:“和”,“align_sampling”:真,“抽样”:{“值”:“1”,“单位”:“月份”} 答复: 200 {“查询”:[{“sample_size”:70168,“结果”:[{“名称”:“计量”,“group_by”:{“名称”:“类型”,“类型”:“数字”},“标签”:{“Building_id”:“100”,"building_type":"MiddleSchool",“meter_type”:“温度”,“单位”:“F”},“值”:[13596957,3337957.5700005]}]}}

我没有得到我所期望的,我是不是错过了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-18 20:03:41

答案很简单,正如我前面指出的,这是一个可能的问题:-) cf。Kairosdb error metric[0](name=abcd).tag[xyz].value may not be empty

KairosDB具有毫秒精度-- KairosDB中的所有时间戳都是Unix毫秒。

但是您的时间戳以Unix秒为单位,这是您的问题所在。

因此,在数据采集和查询中,您需要将所有时间戳乘以1000。

例如,query2要求在1970年1月16日至1970年1月17日之间的不到24小时内提供所有样本,因为你在一个月内得到的结果只有一个。

例如,数据采集:

代码语言:javascript
复制
{"name": "meterreadings", "timestamp":"1359695700000","tags": {"Building_id":"1","building_type":"ElementarySchool","meter_type":"temperature","unit":"F"},"value":"34.85"}
    {"name": "meterreadings", "timestamp":"1359695700000","tags": {"Building_id":"2","building_type":"Park","meter_type":"temperature","unit":"F"},"value":"0"}

...And查询:

代码语言:javascript
复制
{ "start_absolute":1359695700000, "end_absolute":1422853200000, "metrics":[{"tags":{"Building_id":["100"]},"name":"meterreadings","aggregators":[{"name":"sum","align_sampling":true,"sampling":{"value":"1","unit":"months"}}]}]}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32062552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档