TextQL を使って CSVデータを SQL で抽出

公開:2020/10/13
更新:2020/10/13
1 min読了の目安(約1000字TECH技術記事

何十万、何百万行といった大量の CSV データの集計や加工をする際、Excel や Numbers、スプレッドシートなどでは重すぎて処理できないときがあります。

そんなときでも TextQL なら SQL を使ってサクッとデータを抽出することが可能です。

TextQL のインストール

brew install textql

TextQL の使い方

hoge.csv を全件 SELECT する例

textql -sql "
  SELECT
    *
  FROM  hoge
" hoge.csv
  • CSV のファイル名をテーブル名として SQLを実行
  • いくつかのオプションが用意されており、それを組み合わせることで細かい設定が可能

TextQl のよく使うオプション

  -dlm string
    区切り文字の指定 (デフォルトは ',')
  -header
    インプットファイルの 1行目はヘッダ行の場合は指定
  -output-dlm string
    アウトプットファイルの区切り文字を指定 (デフォルトは ',')
  -output-file file
    ファイル名を指定 (デフォルトは 'stdout')
  -output-header
    アウトプットデータにヘッダ行を含める場合は指定
  -save-to file
    SQLite3形式で保存する場合はファイル名を指定
  -sql string
    SQLを指定
  -version
    バージョンの確認

TextQL の利用例

以下のような CSVファイルを想定

id name
1 Mat
2 Emily
3 Bob

name_list.csv という CSVファイルから id=3 のデータを抽出

textql -header -output-header -sql "
  SELECT
    id,
    name
  FROM  name_list
  WHERE id = 3
" name_list.csv

実行結果

以下結果

id name
3 Bob