記事化するのもちょっと恥ずかしいただのExcelの一機能、、、でもこれを発見したときちょっと感動してしまったでご紹介。
Background
とあるシステムのデータベースをAmazon RDS for MySQLで構築・運用。
トラブルシューティングのための調査対応で、EC2インスタンスから mysql
コマンドでDB接続しコマンドを実行。
記号と空白できれいに整形されたレコードセットは目で見る分には親切なものの・・・
+-------------------------------+-------------+-----------------+--------------+-----------+
| table_name | data_length | max_data_length | index_length | data_free |
+-------------------------------+-------------+-----------------+--------------+-----------+
| ar_internal_metadata | 16384 | 0 | 0 | 0 |
| attachments | 74022912 | 0 | 36257792 | 7340032 |
| auth_sources | 16384 | 0 | 16384 | 0 |
| boards | 16384 | 0 | 32768 | 0 |
| changes | 16384 | 0 | 16384 | 0 |
| changeset_parents | 16384 | 0 | 32768 | 0 |
...
Problem
記号と空白できれいに整形されたレコードセットをExcelファイルに貼り付けたい。
- ふつうにコピー&ペーストはもちろんNG。
- RDSはマネージドサービスなので
select into outfile
文によってサーバー上にファイルを書き出すわけにもいきません。 -
mysql
コマンドをバッチモードで利用して、SQL実行結果を含む標準出力をsed
で加工しTAB区切りのテキストにしてからExcelに貼り付ける・・・ということも可能ですが、すでに目にしているものをすぐに利用できないのは悔しいです。 - 言うまでもないことですが、こうしたアドホックなクエリ実行の一々についてDatePipelineやAthenaなど構築にも運用にもコストがかかるものを使いたくないです。
Solution
「テキストファイルウィザード」を利用する。
以上で、簡単&キレイにExcelのシートにクエリ実行結果が貼り付けられました🙌