2016-08-21 5 views
1

ジャクソンストリーミングAPIとオブジェクトジャンクション変換用ジャクソンマッパーの使い方を読んだことがあります。ジャクソンストリーミングAPIとジャクソンマッパー

ストリーミングAPIは最も強力ですが、マッパーは使いやすく、わかりやすいです。

私の質問は、Streaming APIがマッパーよりも強力で、大きなスプリングプロジェクトでの使用の方が優れていることです。

+0

ファイルの内容全体をメモリにロードするのは良い考えですが、ファイルを1行ずつ読み込んで1行ずつ処理するのが良いのはいつですか?私はそれが主にファイルのサイズ、同時に処理するファイルの数、利用可能なメモリ、および2つの可能な解決策の相対的な難しさに依存すると言いたいと思います。あなたはしませんか? JSONと同じです。 –

+0

はい、それはデータのサイズに依存しますが、どちらの場合でもディスクに書き込む必要がありますので、どこに違いがありますか。また、どのようにストリーミングAPIがマッパーより強力です。 –

+0

JSONをディスクに保存しなければならない理由は分かりませんが、以前のコメントは理解できていないようです。 500MBのメモリがある場合は、メモリが600MBのJSONをロードしてから、600MBをディスクに書き込むことはできません。 1MBあたり1MBをロードし、次のディスクをロードする前に各MBをディスクに書き込むと正常に動作します。 –

答えて

1

ジャクソンマッパー:

ジャクソンマッパーを使用しているとき、私たちはJavaオブジェクトとして全体をメモリにJSONドキュメントをロードします。非常に大きなデータセットがある場合、これは問題になる可能性があります。たとえば、非常に大きなプロジェクトでマッパーを使用する場合、メモリの制限はわずか512MBですが、JSONのサイズは600MBです。この場合、アプリケーションがクラッシュします。このような状況では、Streaming APIの使用が推奨されます。

ジャクソンストリーミングAPI:ジャクソンストリーミングAPIを使用したときに名前がストリーミングAPIを示唆するよう

、我々はトークンすなわちによってJSONデータトークンを読み込むことができますがずつ消費することができますJSONトークンのストリームとしてJSON形式の文書を扱います1つはメモリに問題がありません。しかし、メモリ要件がそれほど多くない場合は、マッパーは高速で効率的であるために推奨されます。

質問の後半部分、

はどのようにマッパーよりも強力なAPIをストリーミングされますか?

さて、jsonドキュメントはトークンのストリームとして扱われるため、私たちの要件に従ってトークンを操作して使用することができます。マッパーは、フェッチとストアの機能のみを提供します。 Streaming APIは低レベルであり、開発者に多くのパワーを与えます。

低レベルのAPIは使いにくく、時には混乱することがありますが、マッパー機能は使いやすいです。