Bigtable用のインタラクティブなCLIクライアント"btcli"を書いた

Posted on

Motivation

仕事でBigtableを使用しているが、標準のクライアント cbt の機能がシンプルなため、もう少しリッチなクライアントが欲しかった。

そこでmysqlに対するmycli的な位置づけを目指して自作クライアントを書いた。

作ったもの

https://github.com/takashabe/btcli

tty

機能

  • コマンドやテーブル名を入力するとき、mycliのようにインタラクティブな補完が可能
  • cbtで実行可能な読み込み系のコマンドはほぼ実装済み
  • big-endian値をデコードして読み込み可能
  • columns familyや最新いくつのversionだけを取得することが可能

※ createtableなどのwrite系コマンドは個人的に使用頻度が低いのでまだ未実装

使用感

普段仕事ではBigtableを使っており、手元のクライアントはcbtからbtcliに乗り換えた。控えめに言って便利である。

細かいところで表示が冗長だったりhistoryが使いづらかったりするが、それも今後の改善点としたい。