predix总和查询非负数只有

问题描述:

我有一个时间序列数据集,它既有负数也有非负数。有一个值(-999)表示云中的nan值。我想要做的是,我想要使用一个总和查询,将考虑负数。查询时有没有办法省略负数?predix总和查询非负数只有

+0

你能提供一个MWE吗? – juanmah

+0

@juanmah。什么是MWE抱歉? – shahidammer

+0

https://en.wikipedia.org/wiki/Minimal_Working_Example – juanmah

如果我正确理解你的问题,你正在寻找一个Predix Time Series查询将返回所有的标签读取的总和,但是从结果排除任何-999值。

如果是这样,查询的身体可能是这样的:

{"start": "1w-ago", 
"tags": [{ 
     "name": "STACK", 
     "filters": {"measurements": {"values": -999, "condition": "gt"}}, 
     "aggregations": [{"type": "sum", "sampling": {"datapoints": 1}}] 
     }] 
} 

我写了一个小测试脚本与PredixPy SDK演示场景和结果,如果这是对你有帮助。

# Run this is a new space to create services 
import predix.admin.app 
app = predix.admin.app.Manifest() 
app.create_uaa('stack-admin-secret') 
app.create_client('stack-client', 'stack-client-secret') 
app.create_timeseries() 

# Populate some test data into time series 
tag = 'STACK' 
values = [-999, -5, 10, 20, 30] 

ts = app.get_timeseries() 
for val in values: 
    ts.send(tag, val) 

# Query and compare against expected result 
expected = sum(values[1:]) 
response = ts.get_datapoints(tag, measurement=('gt', -999), aggregations='sum') 
result = response['tags'][0]['results'][0]['values'][0][1] 
print(expected, result) 

您可能还需要在未来要考虑的是,当数据被摄入使用质量属性,这样,而不是在值超过-999更大的过滤可以查询质量是好还是不确定的。

{"start": "1w-ago", 
"tags": [{"name": "STACK", 
      "filters": {"qualities": {"values": ["3"]}}, 
      "aggregations": [{"type": "sum", "sampling": {"datapoints": 1}}] 
     }] 
} 

希望有所帮助。