Falconの思うままに

PASCAL好きが、気ままにマニアックなネタを

streamlitとinfluxdb連携

さて、備忘録です。

pythonでinfluxdbを扱う場合、はまったのでメモ

 

ラズパイubuntuでの事例

influxdbはJSONでnoderedからひたすらinsertしている

measurementがある前提。

この場合、time項目はinfluxdbが記録します。

これが問題の始まりでこの時刻はUTCでの記録です。

JSTの時刻になっていてもです。

なのでクエリー文字列をJSTで考えてると痛い目に会います。(涙)

JSTでの指定をUTCに直して抽出します。

すると結果は取れますが、このtimeはUTCなので表示上困ります。

なのでpandasのレベルでtimezone指定と文字列フォーマットをいれて

JSTの表記になるようにします。

クエリー文字列の元ネタはこんな感じにしておきます。

    tz=timedelta(hours=9)
    tm=time.min    
    sdt=datetime.datetime.combine(ss.dt,tm) -tz
    edt=sdt+timedelta(days=1)

表示側はpandasにて

    df.index.name="dt"
    df=df.tz_convert('Asia/Tokyo')
    df.index=df.index.strftime('%Y/%m/%d %H:%M:%S')

のようにします。

これでJSTでの日付が入ったデータセットとなり、

csvへexportしても問題なくなりました。

 

もっといい方法あれば教えてください。

ではでは。