ElasticSearch で一括インデックス サイズを計算する式が必要だと思います。おそらく、以下はそのような式の変数です。
- ノード数
- シャード/インデックスの数
- 原稿サイズ
- 羊
- ディスク書き込み速度
- LAN速度
誰かが数式を知っているか使っているのだろうか。そうでない場合、人々はどのようにバルクサイズを決定しますか? 試行錯誤で?
ElasticSearch で一括インデックス サイズを計算する式が必要だと思います。おそらく、以下はそのような式の変数です。
誰かが数式を知っているか使っているのだろうか。そうでない場合、人々はどのようにバルクサイズを決定しますか? 試行錯誤で?
これには黄金律はありません。ドキュメントから抽出:
1 回の一括呼び出しで実行する「正しい」数のアクションはありません。さまざまな設定を試して、特定のワークロードに最適なサイズを見つける必要があります。
ESバルク API のドキュメントをよくお読みください: https://www.elastic.co/guide/en/elasticsearch/guide/current/indexing-performance.html#_using_and_sizing_bulk_requests
この情報は、Java API の BulkProcessor クラスから取得しました。デフォルトは 1000 アクションまたは 5MB で、フラッシュ間隔を設定することもできますが、これはデフォルトでは設定されていません。デフォルト設定をそのまま使用しています。
Java API を使用している場合は、BulkProcessor を使用することをお勧めします。
私の場合、一度に 100,000 を超えるレコードを挿入することはできませんでした。1,300 万から始めて 500,000 に減らし、成功しなかった後、1,000、次に 10,000、そして 100,000 と反対側から始めました。