2017-06-07 17 views
0

私は現在、ElasticsearchのScroll APIで悩んでおり、大量のデータを取得して手動で処理するために使用したいと考えています。処理は外部ライブラリによって実行され、scriptとして容易に含めることができるタイプではありません。ElasticsearchでScroll APIのサイズを増やす際に考慮する必要がある点は何ですか?

現時点でうまくいくように見えますが、私は、このような処理を行うためにスクロールサイズを微調整する際に考慮する必要があることを考えていました。スクロール・サイズを大きくすると、操作のレイテンシが減少することがわかります。大きなスクロールサイズではスループットが低下すると思われますが、この仮説が正しいかどうかはわかりません。また、私が今考えていない他の結果があるかどうかはわかりません。

要約すると、Elasticsearchのスクロールサイズを変更すると、特にパフォーマンスにどのような影響がありますか?結果が取得される各バッチごとに処理されるシナリオではどのような影響がありますか?

ありがとうございます!

答えて

0

私が知っているのは、?scroll=Xパラメータによって制御されるスクロールコンテキストを解放しないように、バッチ処理を十分に処理できることです。

クエリのすべてのデータを消費すると仮定すると、スクロールはネットワークとサードパーティのアプリのパフォーマンスに基づいて調整する必要があります。私。

  • あなたのアプリは、ストリームのような方法でデータを処理できる場合は、より大きなチャンクが(最初のフルES応答を待っている)のバッチでアプリの処理データであれば
  • 優れている、バッチサイズの上限は、処理を保証しなければなりません
  • 時間<スクロールリリースタイムは、あなたが悪いのネット​​ワーク環境で作業する場合は、以下のバッチサイズは、切断された接続のオーバーヘッドを処理した方がよい/一般
  • を再試行し、それが一部のネットワーク/ ESのCPUオーバーヘッドを排除して、より大きなバッチは、明らかに優れている
+0

一般的に、大規模なスクロールのサイズは、常に(悪いネットワーク環境を除いて)より良いと言いますか?その場合、Scroll APIのデフォルトサイズは最大10(または任意の大きい(r)値)に設定されないのはなぜですか? – monkeyshrines

+0

はい、あなたのネットワークを傷つけない限り、より大きなチャンクが得られます(他のES消費者のスループットも考慮する必要があります)。デフォルトのスクロールサイズに関しては、デフォルトの検索結果 'from/size'との整合性のために作られたと思います。デフォルトでは10です。おそらく、ページングのためのいくつかの "共通のUXセンス" – Slam

+0

それは理にかなっています。ありがとうございました! – monkeyshrines

関連する問題