tblsがデータソースとしてBigQuery / Amazon Redshiftに、出力フォーマットとしてxlsx / PlantUMLに対応した etc.
前回のエントリからtblsにいくつか機能追加をしたので、v.1.15.2時点での現状報告です。
BigQueryを bq://
でサポート
家庭内の要望によりtblsのBigQuery対応を進めています
— k1LoW (@k1LoW) 2019年5月11日
データセット単位でドキュメント化できるようになりました。
認証情報として環境変数 GOOGLE_APPLICATION_CREDENTIALS
を設定するか、以下のようにDSNのクエリにJSONファイルを指定してください。
$ tbls doc bigquery://project-id/dataset-id?creds=/path/to/google_application_credentials.json
以下は bigquery-public-data:bitcoin_blockchain
をドキュメント化したサンプルです。
tbls/sample/bigquery_bitcoin_blockchain at master · k1LoW/tbls · GitHub
Amazon Redshiftを rs://
でサポート
もともとtblsでもpostgres://
の指定で、Amazon Redshiftでもドキュメントを出力していたようなのですが、機能追加の結果長らく壊れていたようでした。
そこでスキームを redshift://
に分離してサポートすることにしました。
ただ、いまだにAmazon Redshiftの検証環境を用意できていないので、 watarukura さんのサポートを受けてトライアンドエラーで対応しました。
ありがとうございます!
Excel出力に対応
tblsに禁断のエクセル出力機能が搭載されてしまった...
— k1LoW (@k1LoW) 2019年4月25日
外部の人にスキーマ情報を共有するのに、ポータブルなExcelファイルでの出力が欲しくなってしまい、つい作ってしまいました。
以下のように tbls out
コマンドで出力可能です。
$ tbls out mysql://dbuser:dbpass@hostname:3306/dbname -t xlsx -o schema.xlsx
PlantUMLフォーマットでの出力に対応
PlantUMLちょっとわかってきた
— k1LoW (@k1LoW) 2019年5月26日
今週末はちょっと疲れていたので、数時間で完全理解!わりとゴツいKubernetesハンズオン!!と簡単なOSSメンテナンス業(holiday_jp-* の修正とか)とこれをやっていました。
Excelと同様に tbls out
コマンドで出力可能です。
$ tbls out mysql://dbuser:dbpass@hostname:3306/dbname -t plantuml -o schema.puml
PlantUMLのオンラインサーバ で出力したのが以下の画像です。
PlantUMLって、私は使ってこなかったのですが、!define
での関数定義などできて面白いですね。
RedmineでプラグインがあったりChromeエクステンションがあったりと、結構使われているみたいなので誰かに刺さる機能だったらいいなと思います。
ドキュメントの充実
tbls doc
以外の機能も増えてきたので、READMEを充実させてみました。
tbls/README.md at master · k1LoW/tbls · GitHub
tbls lint
という データベーススキーマとドキュメントにLintをかける という便利機能もあったりするのですが、これはまた別のエントリで紹介したいと思います。
ロゴができました
tblsにロゴマークができたhttps://t.co/mcMnnI1CKz
— k1LoW (@k1LoW) 2019年5月6日
今回は自分で作らずに依頼してみました。気に入っています。
というわけで
Qiitaでもtblsの便利Tipsや便利ツールの紹介があったりして嬉しい限りです(まだ半分は私のエントリですが)。
ぜひ使ってみてください。
もし「ちょっと試してみようかな」と思った方は
あなたが使っているデータベースに接続できる環境で以下のコマンドを試してみてください。
テンポラリに tbls
コマンドが使えるようになります。
$ source <(curl -sL https://git.io/use-tbls) You can use `tbls` command in this session. $ tbls doc my://root:mypass@localhost:33308/testdb 👈あなたのデータベースのDSNを指定してください