2017-11-25 118 views
3

我有一個時間序列數據集,它既有負數也有非負數。有一個值(-999)表示雲中的nan值。我想要做的是,我想要使用一個總和查詢,將考慮負數。查詢時有沒有辦法省略負數?predix總和查詢非負數只有

+0

你能提供一個MWE嗎? – juanmah

+0

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

+0

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

回答

2

如果我正確理解你的問題,你正在尋找一個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}}] 
     }] 
} 

希望有所幫助。