百万件くらいの データの扱い方 Unix大量ゴミファイル事件簿                        Masafumi Yokoyama百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿     Powered by Ra...
Rabbitについて     プレゼンテーションツール      実装: Ruby/GTK+          動作: PC-UNIX/Win/Mac          文章とデザインの分離             バージョン管理しやすい百万件...
テーマ          件数が多いデータの扱い方百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿     Powered by Rabbit 2.0.7
キーワードは『荷物運び』百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿   Powered by Rabbit 2.0.7
一度に運ぶ量          大量             持てない          少量             夜になっても終わらない          適量             明るいうちに終わる百万件くらいのデータの扱い方 - ...
考え方          件数が多いデータは、適量に分け          て処理する             まずは適量を見極める百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿     Powered by Rabbit 2...
具体例          大量ファイルの削除             Unixサーバー             GUIが使えない百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿     Powered by Rabbit 2.0.7
問題          ディレクトリ内の.gomiファイルを          全て削除したい百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿        Powered by Rabbit 2.0.7
状況分析     ls(dir)コマンドの末端百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿   Powered by Rabbit 2.0.7
分析結果        名前が長いファイルが大量にある             ファイル名: 210バイト             ファイル数: 10,000       #   テストデータの作り方       $   cd /tmp ; m...
(1) 普通に削除        $ ls | wc -l #ファイル数を数える        10000        $ rm *.gomi        /bin/rm: cannot execute [引数リストが長すぎます]     ...
消せな   い!百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿   Powered by Rabbit 2.0.7
原因          一度にrmコマンドに渡せる引数          には上限がある百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿        Powered by Rabbit 2.0.7
NG百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿   Powered by Rabbit 2.0.7
(2) 1ファイルずつ削除                            $   rm   gomi...gomi_0000.gomi                            $   rm   gomi...gomi_00...
徹夜百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿   Powered by Rabbit 2.0.7
NG百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿   Powered by Rabbit 2.0.7
(3) 適量ずつ削除                               $ ls | wc -l                               10000                               $ ...
(3) 適量ずつ削除        $ find . -name "*.gomi" | wc -l        10000        $ find . -name "*.gomi" | xargs rm        $ find . -...
OK!百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿   Powered by Rabbit 2.0.7
落とし穴        以下のやり方だと、rmコマンドが一        万回呼ばれる        $ find . -name "*.gomi" | xargs -i rm {}        $ find . -name "*.gomi"...
遅い        コマンドを呼ぶ回数が多いと遅くな        る        $ find . -name "*.gomi" | xargs rm        #=> 0.147秒        $ find . -name "*.g...
徹夜の恐れ百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿   Powered by Rabbit 2.0.7
適量ずつ          大量             持てない          少量             夜になっても終わらない          適量             明るいうちに終わる百万件くらいのデータの扱い方 - Un...
その他の例          DBMSのトランザクション処理             DB2では100件くらいずつコミットする             IMPORTのcommitcountオプション          プロセス数やスレッド数  ...
Upcoming SlideShare
Loading in...5
×

百万件くらいのデータの扱い方

340

Published on

件数が多いデータの扱い方について。 キーワードは『荷物運び』です。

※いわゆるビッグデータの話ではありません(Hadoopなどは千兆単位のデータを扱う)

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
340
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

百万件くらいのデータの扱い方

  1. 1. 百万件くらいの データの扱い方 Unix大量ゴミファイル事件簿 Masafumi Yokoyama百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  2. 2. Rabbitについて プレゼンテーションツール 実装: Ruby/GTK+ 動作: PC-UNIX/Win/Mac 文章とデザインの分離 バージョン管理しやすい百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  3. 3. テーマ 件数が多いデータの扱い方百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  4. 4. キーワードは『荷物運び』百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  5. 5. 一度に運ぶ量 大量 持てない 少量 夜になっても終わらない 適量 明るいうちに終わる百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  6. 6. 考え方 件数が多いデータは、適量に分け て処理する まずは適量を見極める百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  7. 7. 具体例 大量ファイルの削除 Unixサーバー GUIが使えない百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  8. 8. 問題 ディレクトリ内の.gomiファイルを 全て削除したい百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  9. 9. 状況分析 ls(dir)コマンドの末端百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  10. 10. 分析結果 名前が長いファイルが大量にある ファイル名: 210バイト ファイル数: 10,000 # テストデータの作り方 $ cd /tmp ; mkdir gomi ; cd gomi $ ruby -e 0.upto((10 ** 4) - 1) {|i| `touch #{"gomi" * 50}_#{"%04d" % i}.gomi` } $ (cd .. ; tar czf gomi.tar.gz gomi) #バックアップ $ (cd .. ; tar xzf gomi.tar.gz) #復元百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  11. 11. (1) 普通に削除 $ ls | wc -l #ファイル数を数える 10000 $ rm *.gomi /bin/rm: cannot execute [引数リストが長すぎます] $ ls | wc -l 10000百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  12. 12. 消せな い!百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  13. 13. 原因 一度にrmコマンドに渡せる引数 には上限がある百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  14. 14. NG百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  15. 15. (2) 1ファイルずつ削除 $ rm gomi...gomi_0000.gomi $ rm gomi...gomi_0001.gomi $ rm gomi...gomi_0002.gomi $ rm gomi...gomi_0003.gomi $ rm gomi...gomi_0004.gomi $ rm gomi...gomi_0005.gomi $ rm gomi...gomi_0006.gomi $ rm gomi...gomi_0007.gomi $ rm gomi...gomi_0008.gomi $ rm gomi...gomi_0009.gomi $ rm gomi...gomi_0010.gomi $ rm gomi...gomi_0011.gomi $ rm gomi...gomi_0012.gomi $ rm gomi...gomi_0013.gomi $ rm gomi...gomi_0014.gomi $ rm gomi...gomi_0015.gomi $ rm gomi...gomi_0016.gomi $ rm gomi...gomi_0017.gomi $ rm gomi...gomi_0018.gomi $ rm gomi...gomi_0019.gomi $ rm gomi...gomi_0020百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  16. 16. 徹夜百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  17. 17. NG百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  18. 18. (3) 適量ずつ削除 $ ls | wc -l 10000 $ rm *0.gomi $ rm *1.gomi $ rm *2.gomi $ rm *3.gomi $ rm *4.gomi $ rm *5.gomi $ rm *6.gomi $ rm *7.gomi $ rm *8.gomi $ rm *9.gomi $ ls | wc -l 0百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  19. 19. (3) 適量ずつ削除 $ find . -name "*.gomi" | wc -l 10000 $ find . -name "*.gomi" | xargs rm $ find . -name "*.gomi" | wc -l 0百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  20. 20. OK!百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  21. 21. 落とし穴 以下のやり方だと、rmコマンドが一 万回呼ばれる $ find . -name "*.gomi" | xargs -i rm {} $ find . -name "*.gomi" -exec rm {} ;百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  22. 22. 遅い コマンドを呼ぶ回数が多いと遅くな る $ find . -name "*.gomi" | xargs rm #=> 0.147秒 $ find . -name "*.gomi" | xargs -i rm {} #=> 14.120秒 $ find . -name "*.gomi" -exec rm {} ; #=> 18.512秒百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  23. 23. 徹夜の恐れ百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  24. 24. 適量ずつ 大量 持てない 少量 夜になっても終わらない 適量 明るいうちに終わる百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  25. 25. その他の例 DBMSのトランザクション処理 DB2では100件くらいずつコミットする IMPORTのcommitcountオプション プロセス数やスレッド数 メモリやCPUが100%で固定されない 程度に増やすと速い おわり百万件くらいのデータの扱い方 - Unix大量ゴミファイル事件簿 Powered by Rabbit 2.0.7
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×