Header Ads

Header ADS

When and Why we use " _bulk " in the query

 🔹 _bulk কি?

👉 _bulk হলো এমন API যেটা দিয়ে একসাথে অনেকগুলো operation (insert/update/delete) করা যায়।


1️⃣ কেন _bulk ব্যবহার করা হয়?

🚀 1. Performance (সবচেয়ে বড় reason)

ধরো তুমি 1000টা data insert করছো।

❌ Without _bulk:

1000 বার API call করতে হবে 😵

✅ With _bulk:

1 বার API call 😎

👉 Result:

  1. Faster

  2. Less network overhead

  3. Efficient


⚡ 2. Large Data Handling

Real-world example:

  1. e-commerce site → 10,000 products upload

  2. log system → প্রতি second এ হাজার হাজার log

👉 এসব ক্ষেত্রে _bulk ছাড়া practically possible না।


🔄 3. Batch Processing

  1. CSV / Excel import

  2. Database migration

  3. Data sync (SQL → OpenSearch)

👉 সবসময় _bulk use করা হয়।


2️⃣ কখন _bulk ব্যবহার করবো?

✅ Use _bulk when:

  • অনেক data একসাথে insert করতে হবে

  • batch update/delete করতে হবে

  • data migration করতে হবে

  • log ingestion (real-time data stream)


❌ Use _bulk না যখন:

  • single document insert/update

  • simple testing

👉 তখন use করো:

POST index/_doc








 Important Best Practice 🔥

  1. 1000–5000 docs per batch → best

  2. খুব বড় batch (10k+) দিলে memory issue হতে পারে

  3. Always use _bulk for production


🔚 Final Summary

_bulk = high performance + batch operation API

👉 Simple rule:

  • 1–2 data → normal API

  • 100+ data → _bulk API


💡 Mentor Insight (Very Important)

OpenSearch powerful কারণ:
👉 এটা search engine + data pipeline tool

আর _bulk হলো সেই pipeline এর main engine 🔥



***  Batch Operation 




🔹 1️⃣ Basic Syntax of _bulk API

POST _bulk
{ "action": { "metadata" } }
{ "data" }
{ "action": { "metadata" } }
{ "data" }
...

🔹 2️⃣ Real Example (Insert)

POST _bulk
{ "index": { "_index": "products", "_id": 1 } }
{ "name": "laptop", "price": 50000 }
{ "index": { "_index": "products", "_id": 2 } }
{ "name": "mobile", "price": 15000 }

🔹 3️⃣ Available Actions

Bulk API তে ৪টা action ব্যবহার করা যায়:

ActionUse
index     insert / replace document
createinsert only (if id exists → error)
updateupdate document
deletedelete document

🔹 4️⃣ Example with All Actions

POST _bulk
{ "index": { "_index": "products", "_id": 1 } }
{ "name": "laptop" }

{ "create": { "_index": "products", "_id": 2 } }
{ "name": "mobile" }

{ "update": { "_index": "products", "_id": 1 } }
{ "doc": { "price": 55000 } }

{ "delete": { "_index": "products", "_id": 2 } }

🔹 5️⃣ Important Rules ⚠️

✅ Rule 1: NDJSON format

action line
data line
action line
data line

✅ Rule 2: delete এর ক্ষেত্রে data লাগে না

{ "delete": { "_index": "products", "_id": 1 } }

✅ Rule 3: newline must be maintained

  1. প্রতিটা JSON object আলাদা line এ থাকতে হবে

  2. comma (,) ব্যবহার করা যাবে না


🔹 6️⃣ SQL vs OpenSearch

SQLOpenSearch
INSERT multiple rows_bulk + index
UPDATE_bulk + update
DELETE_bulk + delete

🔚 Final Summary

POST _bulk
{ action }
{ data }

👉 মনে রাখার shortcut:
action → data → action → data


💡 Mentor Tip

  1. _bulk = batch operation

  2. production এ huge data handle করার জন্য must use

  3. format ভুল হলে পুরো request fail হতে পারে











Powered by Blogger.