对于表结构,例如包含一个int密钥(反映以纪元为单位的时元精度)和价格。如何使用时间间隔将其降采样为开放的高低封闭行(ohlc条)组。分钟?
答案 0 :(得分:0)
我将通过使用多查询来解决该问题,该查询比单独运行每个查询要快得多。您希望为其构建OHLC条的每个期间都会有四个查询。以下伪代码给出了一个粗略的解决方案,其中省略了一些可以在GridDB的MultiQuery documentation中找到的细节。
一段时间内的时间段:
queries.add("select min(price) where epoch > period.start and epoch < period.end")
queries.add("select max(price) where epoch > period.start and epoch < period.end")
queries.add("select * where epoch > period.start order by epoch asc limit 1")
queries.add("select * where epoch < period.end order by epoch desc limit 1")
fetch_all(queries)
while i < len(queries)
for metric in ['low', 'high', 'open', 'close']:
query = queries[i]
rs = query.get_rs()
while rs.has_next():
bars[period[p].start][metric] = rs.next()
i=i+1
p=p+1
*请注意,尽管尚不支持纳秒精度。