BitArts Blog

ロードバイク通勤のRubyプログラマで伊豆ダイバー。の個人的なブログ。

CSVファイルにSQLできるツールが便利だった

この手のツールはいくつかあるようなのですが、今回「q」というのを使ってみました。

http://harelba.github.io/q/

内部的にSQLite3を使っているようで、サブクエリやJOINもできる本格的なSQLが使えます。 RDBのテーブルを適当にCSV出力したものを手元で加工するのに非常に便利でした。

何かと便利に使えそうなので、MacならHomebrewでサクッと入れておくと良いでしょう。

% brew install q

ですがbrewで入れただけだと、僕の環境では次のようなエラーが出てしまいました。

% q
Traceback (most recent call last):
  File "/usr/local/bin/q", line 49, in <module>
    from six.moves import configparser, range, filter
ImportError: No module named six.moves

Pythonのsixというモジュールが必要なようです。次のようにインストールしたら解消しました。

% pip install six

使ってみます。

オプションは-Hで1行目がヘッダであることを明示。-d','でカンマ区切り(CSV)であることを明示します。

2つのCSVファイルをJOINして新しいCSVファイルに書き出すなんてこともできて便利!

% q -H -d',' "
SELECT l.created_at, u.full_name, l.url
FROM logs.csv l
INNER JOIN users.csv u ON u.id = l.user_id
ORDER BY l.created_at ASC
" > access_log.csv