回答編集履歴
3
dsasadsadsa
test
CHANGED
@@ -1,26 +1 @@
|
|
1
|
-
結局、以下の点などから後述の変更前のやり方は止めました。
|
2
|
-
・適切なカラム選定が困難
|
3
|
-
・カラム構成によって都度カスタマイズ必要
|
4
|
-
・値毎のレコード数によっては複数カラム必要
|
5
|
-
|
6
|
-
ハッシュ生成も考慮しましたが、非常に膨大なレコードの場合に必ずしもメモリに乗りきると断言できないので今回は不採用としました。
|
7
|
-
|
8
|
-
|
1
|
+
////////////////////dsa
|
9
|
-
|
10
|
-
```sh
|
11
|
-
sort 対象csv > 出力ファイル
|
12
|
-
uniq -d 出力ファイル
|
13
|
-
```
|
14
|
-
ご提案いただいたやり方からファイルが分割されている前提を排除した形です。
|
15
|
-
|
16
|
-
そういえばパイプのバッファに乗るかは試してません。
|
17
|
-
さっと調べた感じ、やはりメモリに乗りきらないと駄目っぽいので一旦ストレージに出力するのが妥当かと思います。
|
18
|
-
|
19
|
-
ご助力いただきましてありがとうございました。
|
20
|
-
|
21
|
-
変更前:
|
22
|
-
1.処理可能なサイズに分割します。
|
23
|
-
2.適度なグルーピングが可能なカラムを指定します。
|
24
|
-
3.分割した各ファイル内で指定のカラムの値(以降、指定キーと記載)毎に更に分割します。分割後のファイル名等で指定キーが特定できる様にします。
|
25
|
-
4.指定キー毎にファイルをマージします。
|
26
|
-
5、指定キーが異なるレコードは絶対に重複しないので、項番4で作成したファイル毎に重複判定をします。
|
2
修正
test
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
sort 対象csv > 出力ファイル
|
12
12
|
uniq -d 出力ファイル
|
13
13
|
```
|
14
|
-
ご提案いただいたやり方からファイル
|
14
|
+
ご提案いただいたやり方からファイルが分割されている前提を排除した形です。
|
15
15
|
|
16
16
|
そういえばパイプのバッファに乗るかは試してません。
|
17
17
|
さっと調べた感じ、やはりメモリに乗りきらないと駄目っぽいので一旦ストレージに出力するのが妥当かと思います。
|
1
追記
test
CHANGED
@@ -1,6 +1,24 @@
|
|
1
|
-
ファイル数多くてごちゃごちゃしそうですが、一旦パケットの概念にキーを設ける方向で考えてみます。
|
2
|
-
|
1
|
+
結局、以下の点などから後述の変更前のやり方は止めました。
|
2
|
+
・適切なカラム選定が困難
|
3
|
+
・カラム構成によって都度カスタマイズ必要
|
4
|
+
・値毎のレコード数によっては複数カラム必要
|
3
5
|
|
6
|
+
ハッシュ生成も考慮しましたが、非常に膨大なレコードの場合に必ずしもメモリに乗りきると断言できないので今回は不採用としました。
|
7
|
+
|
8
|
+
最終的に、sort が一時ファイルを利用してマージソートを行うことで、メモリに乗りきらないサイズのファイルでもソートできることを知り、以下の様にしました。
|
9
|
+
|
10
|
+
```sh
|
11
|
+
sort 対象csv > 出力ファイル
|
12
|
+
uniq -d 出力ファイル
|
13
|
+
```
|
14
|
+
ご提案いただいたやり方からファイルの分割を排除した形です。
|
15
|
+
|
16
|
+
そういえばパイプのバッファに乗るかは試してません。
|
17
|
+
さっと調べた感じ、やはりメモリに乗りきらないと駄目っぽいので一旦ストレージに出力するのが妥当かと思います。
|
18
|
+
|
19
|
+
ご助力いただきましてありがとうございました。
|
20
|
+
|
21
|
+
変更前:
|
4
22
|
1.処理可能なサイズに分割します。
|
5
23
|
2.適度なグルーピングが可能なカラムを指定します。
|
6
24
|
3.分割した各ファイル内で指定のカラムの値(以降、指定キーと記載)毎に更に分割します。分割後のファイル名等で指定キーが特定できる様にします。
|