10GBのCSVファイルのソートが遅いのはなぜですか?at TECH
10GBのCSVファイルのソートが遅いのはなぜですか? - 暇つぶし2ch12:デフォルトの名無しさん
23/08/09 07:21:27.86 Bb1AJAu+.net
>>1
速いと感じるか遅いと感じるかは個人の感覚の問題
何秒なら速いのか、何と比較して速いのか
他人が遅いというから遅いとか小学生かよ

13:デフォルトの名無しさん
23/08/09 07:46:15.85 Aj0Whal0.net
>>12
じゃあ君は速いとでも?w

14:デフォルトの名無しさん
23/08/09 07:47:25.44 Aj0Whal0.net
CSVのソートが遅いのは社会的共同体の中で自然に共有されうる普遍的事実である

15:デフォルトの名無しさん
23/08/09 10:35:23.16 ZMTba8c6.net
まぁRDBMS使った方がいいわな

16:デフォルトの名無しさん
23/08/09 11:06:02.05 qEKEd4/l.net
何をつかっても遅いものは遅いw

17:デフォルトの名無しさん
23/08/09 15:27:00.04 a25ApkGr.net
実装次第で遅くなりそうなケースだな
フレームワークとコピペだけで戦ってきたやつには荷が重いだろう

18:デフォルトの名無しさん
23/08/09 16:22:02.52 coMLMuQp.net
jsonやmessagepackよりは速いかも知れないな

19:デフォルトの名無しさん
23/08/10 00:02:20.56 gjwqjVE1.net
10GBはファイルの大きさであって、データの件数ではないんだよな

20:デフォルトの名無しさん
23/08/10 01:18:52.99 qMn8aig+.net
10GB のデータをソートするには、
並べ替えた途中経過のデータも持っておく必要があるから、
100GBぐらいのメモリが必要なのでは?
メモリが少ないと、途中経過のデータをハードディスクに保存して、
メモリを空けないといけない。スワップ

21:デフォルトの名無しさん
23/08/10 01:20:23.88 lIBN6+0k.net
>>19
レコード数を3とする、ソートせよ

22:デフォルトの名無しさん
23/08/10 02:07:49.13 ljCEt4I+.net
ソートのキーだけでいい

23:デフォルトの名無しさん
23/08/10 10:55:32.60 AypbHuiV.net
メモリーに乗りそうな大きさに分割してソートして
それをマージソートするのが一番早いんじゃね?

24:デフォルトの名無しさん
23/08/10 11:29:41.03 YYBOmFjO.net
>>21
レコード数が1でソートの必要がないかも知れない。

25:デフォルトの名無しさん
23/08/10 11:33:16.87 YYBOmFjO.net
>>1
検索早くないのでは?要するにただのテキストの塊なので grep コマンドとか使って検索できるってだけのことで、その状態ではインデックスなしの全検索だから遅くなると思う。

26:デフォルトの名無しさん
23/08/10 20:54:16.43 TWiH3Zx3.net
10GBのファイルを書き換えながらソートしているのかな?

27:デフォルトの名無しさん
23/08/13 12:14:40.57 mxfdwtiA.net
Diskのデフラグ並みだな

28:デフォルトの名無しさん
23/08/16 10:29:29.77 g5j2pEtW.net
ゲッ!!(/||| ̄▽)y-ξ⌒◇ヾ( ̄  ̄;)ジュッ

29:デフォルトの名無しさん
23/08/27 20:18:09.89 m39XqcII.net
(  Д ) ゚ ゚

30:デフォルトの名無しさん
23/09/01 20:23:04.85 MSzaVfqT.net
どないやねん、意味がわからん

31:デフォルトの名無しさん
23/09/12 12:29:39.47 QOX8wfhQ.net
何行何列か示せと

32:デフォルトの名無しさん
23/09/12 12:38:34.37 A3YXlMvb.net
>>31
1億行、125列

33:デフォルトの名無しさん
23/09/12 12:46:05.28 DJD1APYm.net
こんな頭の悪いスレ上げるのはなぜですか?

34:デフォルトの名無しさん
23/09/12 14:42:44.77 A3YXlMvb.net
なぜ下げるんだい?

35:デフォルトの名無しさん
23/09/12 14:59:33.38 BQ9Iu4K/.net
なんで10GBもあるデータをCSVで管理しようと思ったんだろうな

36:デフォルトの名無しさん
23/09/12 17:11:08.62 zmLL4dpk.net
10GBもあるデータをCSVにしようとした訳ではなく
何も考えずにCSVで管理してたらいつの間にか10GBになったんだろう

37:デフォルトの名無しさん
23/09/12 18:09:26.28 BQ9Iu4K/.net
そっかw

38:デフォルトの名無しさん
23/09/14 15:11:27.86 Ur1UGoF9.net
>>32
俺だったらなんでも良いからまずRDBに入れちゃうかも。
内容にもよるだろうが、とりあえずSQLiteとかな。

39:デフォルトの名無しさん
23/09/15 19:50:24.13 V4ggyvBY.net
巨大なデータをSQLiteで処理するためのメモ
URLリンク(fan)ぶろぐs.jp/scripts/archive/11/0

40:デフォルトの名無しさん
23/09/15 20:30:51.52 mLRMgWkC.net
やさいい

41:デフォルトの名無しさん
23/09/27 20:16:21.16 PKUrAitV.net
まず各ブロック当たり1000行とかに分ける。ブロック単位でソートする。
1.ブロックA/B を連結してAB間でソート。  B=全体の数/2
2.ブロックA+1, B+1 で連結してソート
3. ブロックA+全体の数/2- 1(前半最後まで)、ブロックB+前半最後までを連結してソート
4.今度は全体の前半で1-3 風にブロックソート。後半~最後までで1-3 風にブロックソート
5. 前半~前半+3/4 でブロックソート、前半+2/4~前半+4/4 でブロックソート、
 ......
・・・・
ってのを大昔 BASIC で作ったのですが、なぜかデータがゼロに
なってしまうバグが出て作るのを止めてしまいました。ちゃんちゃん。駄目じゃん俺。

42:デフォルトの名無しさん
23/10/04 21:29:03.45 ja1//dn8.net
だいたいデータの入れ替えに時間が掛かるんだよな
メディアがHDDとかだと尚更
普通はインデックスで実データを間接参照させるんだが
まあ、やって無いんだろうなぁ

43:デフォルトの名無しさん
23/10/05 11:43:25.54 AvBTKCCq.net
速度を優先するなら固定長CSVの採用をオススメする
各行へのランダムシークが出来るし並び替えに必要な行の入れ替えも可能になる
最近のutf-8などを使いたい場合は文字数での管理が難しくなるがあくまでもストレージ上でのサイズを基準にして
クラスタサイズも考慮し列サイズを決めていこう
検索性能を上げるには外部インデックスを作るしかないだろう
ファイルサイズは100倍ぐらいに増えるかもしれないが単純なファイルキャッシュだけで下手なDBでは敵わない速度が出せるだろう

44:デフォルトの名無しさん
23/10/08 19:41:45.47 Unktq8Si.net
>>32
125列のレコードが1億行あったらカンマだけで10GB超えるんだが

45:デフォルトの名無しさん
23/10/12 21:43:44.24 5lP2cmIF.net
ひとつが100MBくらいのファイルになるように
ディレクトリ構造でB木をつくって(アンバランスでもOK)
個々にソートしたものを最後に結合

46:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch