大規模データ取り扱いの注意

ここ最近延々と大規模な数のファイルを扱い続けてきたので,その時学んだことなど.

1フォルダ内のファイル数は一万程度に

現行のファイルシステムは大規模な数のファイルを扱うには,使い物になりません.10万を超えるようなファイルを入れた途端ディレクトリ内のファイル構造の取得だけでシステムががが.

xargsのPオブションは超重要

Pオプションはxargsでマルチプロセスで実行するためのオプションです.CPUを効率的に使うためには並列化が重要です.

ストリームエディタは必須

大規模ファイル集合と言えば,大規模データ.(例えば大規模ファイル集合のファイルリストとか)大規模データを扱うにはストリームエディタが必須です.WindowsではQXエディタ,Shell上ではhead,tail,moreなどがおすすめです.

やっぱり最後はデータベース

大規模ファイル集合に対する操作の出力をどう扱うかは本当に難しいですが,多いのは結果に対する統計処理等だと思われます.大規模データを扱う際のメモリの問題,検索速度の問題を一挙に解決してくれるのがデータベースです.データベースに格納できるデータはがんがんデータベースに入れることをおすすめします.おすすめのデータベースは組み込みDBとしてもサーバ用途のDBとしても使えるH2データベース.