この資料は Rust 製のコマンドラインツール qsv について紹介するものです。
Rustの環境構築やツールのインストール方法については以下を参照してください
CSV ファイルをインデックス化、スライス、分析、フィルタリング、リッチ化、検証、結合するための高速なコマンドラインツールです。 qsvは、人気のあるxsvユーティリティのフォークで、xsv 0.13.0の2018年5月のリリース以来、いくつかの懸案のPRをマージしています。xsvの20のコマンドの上に、多数の新機能として、30の追加コマンド、6つの適用サブコマンドと35の操作、5つのサブコマンドが追加されたものです。
GitHub - jqnatividad/qsv: CSVs sliced, diced & analyzed.
qsv のインストールは次のように行います。 CPU固有の高速化をコンパイラに利用させたい場合は、CPU最適化のセクションを参照してください。
% cargo install qsv --locked --features all_features # 2GBメモリでは失敗する
# all_features は次と同じ
# cargo install qsv --locked --features feature_capable,apply,generate,luau,fetch,foreach,python,to,self_update
# all_features から python を除いたもの
# cargo install qsv --locked --no-defaullt-features --features feature_capable,apply,generate,luau,fetch,foreach,python,to,self_update
# qsvlite
% cargo install qsv --locked --features lite # 2GBメモリでもOK
# qsvdp
% cargo install qsv --locked --features datapusher_plus
qsvにはいくつかのフィーチャーズがあり、ビルド時に指定することができます:
mimalloc
(デフォルト)
mimalloc アロケータを使用します。
詳細はメモリアロケータのセクションを参照jemallocator
jemallocアロケータを使用します。
詳細はメモリアロケータのセクションを参照apply
applyコマンドを有効にします。
このCSV変換は非常に強力ですが、依存関係が多く、コンパイル時間やバイナリサイズが大きくなります。fetch
fetchおよびfetchpostコマンドを有効にします。