22

ElasticSearch で一括インデックス サイズを計算する式が必要だと思います。おそらく、以下はそのような式の変数です。

  • ノード数
  • シャード/インデックスの数
  • 原稿サイズ
  • ディスク書き込み速度
  • LAN速度

誰かが数式を知っているか使っているのだろうか。そうでない場合、人々はどのようにバルクサイズを決定しますか? 試行錯誤で?

4

7 に答える 7

9

これには黄金律はありません。ドキュメントから抽出:

1 回の一括呼び出しで実行する「正しい」数のアクションはありません。さまざまな設定を試して、特定のワークロードに最適なサイズを見つける必要があります。

于 2013-08-28T13:57:54.177 に答える
9

ESバルク API のドキュメントをよくお読みください: https://www.elastic.co/guide/en/elasticsearch/guide/current/indexing-performance.html#_using_and_sizing_bulk_requests

  • 1 KiB で試して、20 KiB で試してから、10 KiB で試して、という二分法
  • ドキュメント数ではなく、KiB (または同等のもの) のバルク サイズを使用してください。
  • データを一括で送信し (ストリーミングなし)、可能であれば冗長な情報 API URL を渡します
  • 可能であれば、データ内の余分な空白を削除してください
  • 検索インデックスの更新を無効にし、後で有効に戻します
  • すべてのデータ ノードにわたるラウンド ロビン
于 2016-11-08T10:34:50.413 に答える
7

この情報は、Java API の BulkProcessor クラスから取得しました。デフォルトは 1000 アクションまたは 5MB で、フラッシュ間隔を設定することもできますが、これはデフォルトでは設定されていません。デフォルト設定をそのまま使用しています。

Java API を使用している場合は、BulkProcessor を使用することをお勧めします。

于 2013-11-25T15:05:44.807 に答える
3

私の場合、一度に 100,000 を超えるレコードを挿入することはできませんでした。1,300 万から始めて 500,000 に減らし、成功しなかった後、1,000、次に 10,000、そして 100,000 と反対側から始めました。

于 2019-08-21T01:08:03.383 に答える