続 カッコの付け方

AWSを始めとしたクラウドコンピューティング全般と、唯一神emacsにおける()の付け方についてだらだら書きます

visidataでそこそこでかい生データをCLIでさくっと見る

もうこれ系の仕事について18年になる。よその業界の人から見ると「なんかパソコン使ってやる人」にひとくくりにされそうだが、職場によって結構やってることは違った。
そんな中でも振り返ってみるとそこそこでかい単ファイル(csv)を見る機会は結構あって、その都度なんかいいのないかと探していた気がするが多分これでいいんじゃね?

github.com

やりたいこと・できること

  • そこそこの規模のデータをさくっとみたい
  • CLI最強、GUIなんかいらん

そんなひとには良い。公式にもあるが、ガチ分析には向かん。
あと追加の言い訳。今の時代はS3みたいなオブジェクトストレージにそこそこのサイズで切片化してファイルを置くのが正義です。単ファイルのごついCSVは時代に逆行する。切片化したデータを読む場合は、ぱっと調べた感じは visidataはプラグインで対応するらしい。

GitHub - ajkerrigan/visidata-plugins: Custom plugins for https://github.com/saulpw/visidata/

用途は異なるが、大は小を兼ねると考えるならば、切片化されたデータは素直にjupyter/panda(ガチ分析可能)で扱えるようにdask使ったほうが楽やと思う。

docs.dask.org

チュートリアル(+おまけ)

ご丁寧にチュートリアルがついているのでやります。 An Introduction to VisiData — An Introduction to VisiData

とりあえずインストールして vdコマンドが通るようにします。 次に手持ちのデータでもいいですが、何かネタがほしいので、これもチュートリアルについてるデータをダウンロードします。 https://jsvine.github.io/intro-to-visidata/_downloads/83e70cf67e909f3ac177575439e5f3c5/faa-wildlife-strikes.csv

それで vd faa-wildlife-strikes.csv

わお、テンション爆上げ。矢印キーとかでも動かせる。

f:id:iga-ninja:20200426030049p:plain
viewer

この画面も含めたチートシートがあるので、ポイントしておきます。 https://jsvine.github.io/visidata-cheat-sheet/en/

個人的にこれは嬉しいのを書き出すと

  • c カラムを探す、いっぱいカラムがあるときにジャンプ
  • _ カラムの幅を広げる
  • / 選択している絡むの中からパターンマッチでデータを探す、Null以外のデータを見つけたいとかなら.+とかすればよろし
  • [ or ] そのカラムでソートする、あまりにデータがでかいとちょっとしんどい

つぎに何かカラムを選んでSHIFT-fを押せって書いてあるので押すと。

うお、まじか、ヒストグラム出るやんけ。

f:id:iga-ninja:20200426030053p:plain
histg
ま、あとはSHIFT-h ヘルプだけやね。

まとめ&余談

実はこれに似たコンセプトのツールって昔からたくさんあるんです。目的から考えれば、テキストにSQLを打つ的な実現できれば、用途は満たしそうだけど、その手のツールってvisidataほど敷居が低くない、というかビュワーの延長として簡易解析ができるというコンセプトが良いなと思う。機能拡張はプラグインでというのも良い。
最近テキストにSQL系のツールで見たのは、local-dockerとかsqliteRDBMSを動かしてテキストをロードするってやつだった。本物のSQLが通るのは魅力だが、やっぱりいくらdockerとかで複雑さを隠しても、ちょっとわかってらっしゃる人向けな感じはする。まあ、ちょっとわかっている人以外、本物のSQLなどいらないと考えたらこの手のツールは便利ではあるが。