2016-12-22 21 views
3

私はKinesis Firehose用のJava APIを使用しており、可能であればputRecordBatch()を利用しています。しかし、私のアプリケーションでは、たまにレコードを1つだけ送信することがあり、メモリを待つ余裕がありません。Kinesis Firehose putRecordとputRecordBatch

しかし、私のコードは、私が各操作の成功/失敗の数を追跡しているので、それよりも少し複雑です。 putRecordBatchは、送信されたレコードのセットから失敗したサブミットの数を表すintを返します。 putRecord()が成功するか、例外をスローするのに対して、2つの失敗は2つです。

私はどこでもputRecordBatch()を使用したいと思いますが、ドキュメントには複数のレコードを送信する必要がある場合にのみ使用するように指定されています。

これは少し長めのことかもしれませんが、ここで誰もこのAPIの経験がありますか?具体的にはこれらの方法はありますか?あなたが思っていることをやって、putRecordBatch()をどこでも使ったことがありますか?レコードセットが1であっても?

答えて

0

説明しているものを正確に設定しました。通常、バッチコールを送信するが、時にはputRecordBatch()を使用して1つのレコードしか送信しない状況です。ドキュメントの私の理解から、あなたはただ一つのレコードを送信したい場合、実際にそれを要求するのではなく、putRecordを使用するべきであることを明確にしているようです。私がputRecordBatch()を使用して見ているパフォーマンス上の利点から、1レコードを送信する必要がある場合はうまく動作します。すべての送信にputRecordBatch()を使用することが大丈夫であると確信しています。

+0

ありがとう@dizzyf、私は十分な時間があれば、私は合理的なスケールで、常にputRecordBatchを使用することに負の副作用がないことを確認したいと思います。私の使用事例では、私は一度に1つのレコードを送信し、時々レコードのバッチを送信しています。私は、私のアプリケーションが時間の10%未満を行うと推定しています。 – matthewcummings516

+0

@ matthewcummings516ちょうどこれまでのフォローアップ:FWIW、我々は最後の月のputRecordBatch()を+負の副作用なしで実行してきました。エラーもパフォーマンスも一流です。 – dizzyf

+0

優秀、ありがとう@dizzyf – matthewcummings516

関連する問題