ES-indexの一括操作

1. バッチクエリ
GET /_mget
2. バッチ書き込み

POST /_bulk POST /<index>/_bulk {
    
    "action": {
    
    "metadata"}} {
    
    "data"}

知らせ:

バルク API には、JSON の構文に関する厳しい要件があります。削除を除き、各操作には 2 つの JSON 文字列 (メタデータとビジネス データ) が必要で、各 JSON 文字列は分割できず、同じ JSON 文字列も分割する必要があり、そうでない場合はレポートが返されます。エラー;

一括操作では、いずれかの操作が失敗しても他の操作には影響しませんが、返された結果には例外ログが表示されます。

3. インデックス操作タイプ
create: データの PUT 時に現在のデータがすでに存在する場合、データは上書きされます。PUT 中に操作タイプ create が追加された場合、この時点でデータがすでに存在する場合は、データがすでに存在しているため失敗を返します。強制 操作タイプが作成として指定されている場合、ES は更新操作を実行しません。例: PUT /pruduct/_create/1/ (旧バージョンの構文は PUT /pruduct/doc/1/create ) は、インデックス プロダクトに ID 1 のデータを強制的に作成することを意味します。ID 1 のデータが既に存在する場合、 、失敗を返します。
delete: ドキュメントを削除します。ES は遅延削除メカニズム、つまりマーク削除によってドキュメントを削除します。(lazy delete 原則)
インデックス: ES では書き込み操作を Index と呼びます。Index は動詞、つまりインデックス データは ES でデータを作成するためのインデックスであり、書き込まれたデータは「インデックス データ」とも呼ばれます。作成または完全置換更新が可能です
部分更新を実行(完全置換、部分置換)
上記 4 種類の操作はすべて書き込み操作です。ES へのすべてのデータの書き込みはプライマリ シャードで行われ、データがプライマリに書き込まれると、対応するレプリカ シャードに同期されます。ES にデータを書き込むには、単一データ書き込みとバッチ書き込みの 2 つの方法があります。ES では、データを一括書き込みするための独自の API _bulk が提供されます。基礎となる原則については、私の「Elasticsearch の基礎となる原則」で詳しく説明しています。

長所と
短所 長所: 通常の Json 形式のデータ操作と比較して、追加のメモリ消費がなく、パフォーマンスが向上する 大量のデータのバッチ書き込みによく使用されます 短所: 可読性が悪く、スマート プロンプトがない可能性があり
ます
使用シナリオ
MySQL から ES にデータを一度に書き込むなど、大量のデータを扱うバッチ操作では、バッチ書き込みにより ES へのリクエストの数が減り、メモリのオーバーヘッドが減り、スレッドの占有が減少します。

おすすめ

転載: blog.csdn.net/qq_38747892/article/details/129669618