さて、Streamlit使いになろうかと思ったのですが、
皆さん感じるであろう難しさに直面しました。
・フロントが遅い
・リロード処理が大変
ですね。
知ってたよ。という人いますよね(笑)
やってみないとわからないので身をもって知りました。
フロントが遅いというのは、1日分のグラフデータをDBから
取って表示するだけという画面ですが、サンプリング間隔1分の
データがず〜と時間がかかり、次の処理応答がかなり待たされます。
ハングしたかと思うくらい。いやほぼハングです。
1分に1データですから 60X24=1440点ですよね。
これ厳しいんです。
ということでデータを間引いて1/5にしてみました。
表示はできますが、グラフになるまでかなり待ちます。
ちょっと実用に投入できないです。
Noderedでトレンド表示してますが、一瞬です。
それからこのツール特有のフロントが更新されるとpython側の再実行
が起こるという特徴があります。
この対応が非常に面倒です。くせが強いですよね。
流れで書いても、再実行を考慮しないとダメダメです。
敷居が低く見えても落とし穴があります。
テキストボックスや、カレンダなど使うとそちらからの取り込みが発生します。
その処理を世の中のサンプルをみて真似するとちゃんと動かないのですよ。
微妙に不具合がでます。くせを捉えて対処するコードにしないと行けない。
わかってしまえば次から書けますが、規模が大きくなるとメンテが大変になる気が
しました。
ということで、他を探すとありました。
StreamSyncというやつです。が..Writerに名前が変わりました(汗)
まだ変わったばかりなので記事はStreamSyncで探します。
Streamlitよりかなり早いということ。なんとフロントがノーコードですが
カスタマイズ可能という点です。嘘でしょう? と思ったので
やってみました。本当です(笑)
これまでにないものです。ビジュアルエディタ搭載で、
なんとバックエンドもWeb上で書けますし。プレビュー実行もできます。
これがローカルで立ち上がります。
バック側にイベントハンドラを書いて、ビジュアルエディタで割付ができます。
変数バインド機能もあり、やっと見つけた!!感がすごいです。
ちょっと最初どうしたらいいかわからないので、サンプルを見て勉強して
Streamlitと同じ処理を書いてみました。
グラフが書けまして、初期起動の待ちは許容範囲です。
ならばとサンプリングデータを加工なしで読ませても大丈夫でした。
なかなかいいです。グラフも有名なライブラリの組み込みらしく
そっちのHelpを見ればカスタマイズ自在、CSSも当てられて、
さらに足りなければvueも使えるということ。
とりあえずは無敵じゃん! になりますね。
大規模開発になると粗がでるみたいなので、使いどころを間違わないように
使える道具の1つにします。
たいへん勉強になりました。
ではでは。