を改行区切りJSONのようなものはありません書くことではないか、JSONを区切り。あなたが求めているのは、JSONオブジェクトを1行に分けて保存することです。
:これは
たくさん簡単に処理する並列なりますので、保管するこの方法が使用されているAzureのストリーム解析を含む多くのビッグデータとイベント処理製品で使用、ハイブ、Googleのビッグクエリなど
です
- 読み込み時には、実際にテキスト全体を解析せずに、1つのファイルを行単位で簡単に分割し、異なるスレッドや作業者に割り当てることができます。
- テキスト全体を解析するのを待つことなく、行を個別に処理することができます。これにより、例えば非同期操作やデータフローを利用して同時に読み込みと解析を行うことができます。
- 書き込み時に、複数のスレッドが異なるファイルにデータを書き込むことができ、すべてのファイルを1つのファイルにマージできます。 ディスクに書き込む場合でも、OSとディスクのバッファリングと操作のオーバーヘッドは、sendind X操作を同時に実行すると、X操作を順次実行するよりも速く終了することができます。
- 各ワーカー/スレッドは、新しいレコードを直接書き込むことができます。パーサーは、ファイルを生成するためにすべてのレコードにアクセスする必要があります。このため
は、パーサがそれをサポートしていても、このようなファイルを生成するためのパーサを使用することをお勧めないです。シングルスレッドの実装は単純に遅すぎるため、すべてのレコードを書き出してから書き出す必要があります。
パフォーマンスを向上させるには、複数のファイルに書き込むことができます。別々のディスクに書き込み、最後にすべてのファイルを1つにまとめることができます。書き出す前に、すべてのレコードをメモリにロードするのではなく、生成されたときに各レコードを書き込むこともできます。
現在動作しているコードがある場合は、何を尋ねていますか?解決に役立つ具体的な問題は何ですか? – dbc
@dbcより良い方法があるかどうかを知りたいので。リストのコレクションをループするのではなく、コレクションをJsonシリアライザに渡す方法があるかどうかを知りたいのであれば、必要な方法でjsonをフォーマットできます。 –
@JonClarke リストを新しい行区切りのJSONにフォーマット/保存することができるのであれば興味がありますか? 現時点では、C#オブジェクトをループしてシリアライズすることも同じことを行います。 –