現在、データ形式の変換に関する仕事に取り組んでいます。10GB のような大きなファイルがあります。私が実装した現在のソリューションは、このファイルを 1 行ずつ読み取り、各行の形式を変換してから、出力ファイルに出力することです。変換プロセスがボトルネックであることがわかりました。だから私はこれを並行してやろうとしています。
各行は完全な単位であり、他の行とは何の関係もありません。明細内の特定の値が需要を満たさないため、一部の明細が破棄される場合があります。
今、私は2つの計画を持っています:
1 つのスレッドが入力ファイルから 1 行ずつデータを読み取り、その行をキューに入れ、複数のスレッドがキューから行を取得し、フォーマットを変換してから、その行を出力キューに入れ、最後に出力スレッドが出力キューから行を読み取ります。出力ファイルに書き込みます。
現在、複数のスレッドが入力ファイルの異なる部分からデータを読み取り、行を処理して、出力キューまたはファイル ロックを介してファイルに出力しています。
皆さん、アドバイスをください。ほんとうにありがとう。
前もって感謝します!