時系列データをうまいこと取り回す方法をいろいろと検討していて,今日はinfluxdbとchronografを試してた.これは2010年の為替の様子です.
dbの中身はこんなクエリでこんな結果が返ってくる状況
> select MEAN("OpenBid") from candle where '2016-09-23T00:00:00+09:00' < time AND time < '2016-09-24T00:00:00+09:00' GROUP BY "instrument", time(1d) name: candle tags: instrument=CAD_JPY time mean ---- ---- 2016-09-22T00:00:00Z 2016-09-23T00:00:00Z 77.28651111988425 name: candle tags: instrument=EUR_JPY time mean ---- ---- 2016-09-22T00:00:00Z 2016-09-23T00:00:00Z 113.13053859380965 name: candle tags: instrument=USD_JPY time mean ---- ---- 2016-09-22T00:00:00Z 2016-09-23T00:00:00Z 100.96978221722053
なんか秒間2000〜4000データポイントぐらいのペースで打ち込んでいたのだけれど(過去のデータなので,最短5秒間隔で保存されたものを6時間分ぐらいまとめてbulkインサートしてる),4GB/2コアのVMを2013年のMacBookPro(物理2コア) で動かしてると結構な勢いでoom-killerが走って,基本的にはSystemdによって復活するのだけれど,その間のデータを取り逃がしたりしがちなので大変.
今回はメトリクスの収集ツールというよりは時系列データの学習と検証につかうデータセットを作るために使いたいと思っていて,aggregationが強力なので便利そう〜っとおもってガッとやってみたけれど,本当にこんなことでいいのか,という気持ちになってきた.
というか,そういう目的なので RQ とか CQ 使っていい感じにデータを減らしとくとかもやらないし,もったいないな〜って気持ちになってきています.