PartiQLを実行するTUIツールをGoで作ってみた
こんにちは、CX事業本部のうらわです。
先日発表されたPartiQLを実行するTUIツールをGoで作ってみたのでご紹介します。
PartiQLについては弊社ブログ記事をご参照ください。
初めて作ったTUIツールですが、既存の素晴らしい作品と素晴らしいライブラリを参考にすることで1日で「とりあえる動くもの」は作れました。TUIツール作りはGoの勉強のモチベーションが高まるのでおすすめです。
つくったもの
QueryパネルにSQLを入力してEnterキーを押すとResultsパネルに結果が表示する、という単純なつくりです。
今はSELECT文以外のSQLは実行後にResultパネルに何も表示されません(これは追々良い感じにしたい)。
エラーの場合はAWS CLIのエラーメッセージを色など加工して表示しています。
実装について
- PartiQLはGoのSDKは未対応なので、AWS CLIでクエリを実行しています。TUIツールを起動する前にあらかじめ
aws configure
でプロファイルの設定が必要です。 -
AWS CLIの実行結果(標準出力)を頑張って加工してテーブル表示させています。
-
実行結果をテーブル表示するために、 標準出力 → JSON文字列 → JSON → DynamoDB Attribute Value → mapの配列 というかなり面倒な手順でデータを加工しています。もっとさくっと変換する方法があるのかもしれないですが今のところは上記の流れで落ち着いています…。
参考にしたTUIツール
(ほとんどの)実装は個人的に使用している以下のTUIツールを参考にしています。
https://github.com/skanehira/pst
使用したライブラリ
上記の参考にしたTUIツールでも使用しているライブラリです。コードのコメントを見れば大体どんなことができるかわかります。wikiに実装例も載っています。
今後について
今後は以下のような機能を実装していきたいと思います。
- SQL実行履歴の保存(今は都度入力しないといけない)
- goroutineによる非同期処理化(AWS CLIの実行で操作をブロックしない)
- 見栄え改善(色など)
コードはこちらです。