বাল্ক ডেটা লোড করার জন্য সর্বোত্তম অনুশীলন

এই পৃষ্ঠায় mongoimport মতো টুল ব্যবহার করে Cloud Firestore বাল্ক ডেটা লোড করার সর্বোত্তম পদ্ধতিগুলো বর্ণনা করা হয়েছে।

Cloud Firestore একটি অত্যন্ত ডিস্ট্রিবিউটেড সিস্টেম যা আপনার ব্যবসার চাহিদা মেটাতে স্বয়ংক্রিয় স্কেলিং সুবিধা প্রদান করে। Cloud Firestore সিস্টেমের উপর প্রাপ্ত লোডের উপর ভিত্তি করে আপনার ডেটাকে গতিশীলভাবে বিভক্ত ও একত্রিত করে।

কোনো পূর্ব-কনফিগারেশন ছাড়াই লোড-ভিত্তিক বিভাজন স্বয়ংক্রিয়ভাবে সম্পন্ন হয়। অন্যান্য ডকুমেন্ট ডেটাবেসের তুলনায় Cloud Firestore লোড-ভিত্তিক বিভাজন সিস্টেমের কিছু গুরুত্বপূর্ণ ও অনন্য বৈশিষ্ট্য রয়েছে, যা আপনার ডেটা মডেল করার সময় মনে রাখা জরুরি।

Cloud Firestore ডিস্ট্রিবিউটেড প্রকৃতির কারণে কিছু ডিজাইনগত সিদ্ধান্তে পরিবর্তনের প্রয়োজন হতে পারে, বিশেষ করে সেইসব ওয়ার্কলোডের ক্ষেত্রে যেগুলো এমন ডেটাবেসের জন্য অপ্টিমাইজ করা হয়েছিল যেখানে প্রাইমারি রেপ্লিকাটি রাইট থ্রুপুটের ক্ষেত্রে একটি বাধা (বটলনেক) হিসেবে কাজ করে।

সর্বোত্তম অনুশীলন

যেসব ওয়ার্কলোড একটি সিঙ্গেল থ্রেডেড ক্লায়েন্টে বিপুল পরিমাণ ডেটা প্রসেস করে, তা একটি প্রতিবন্ধকতা তৈরি করতে পারে। ক্লায়েন্টরা বাল্ক লোড ডেটার জন্য সিঙ্গেল থ্রেডিং ব্যবহার করতে পারে, কারণ এক্ষেত্রে ক্লায়েন্ট এবং সার্ভারের থ্রুপুট প্রায় সমান থাকে। একটি Cloud Firestore ডেটাবেস অনেক বেশি প্যারালালিজম সামলাতে পারে, কিন্তু এর জন্য ক্লায়েন্টদেরকে সমান্তরালভাবে রিকোয়েস্ট পাঠানোর জন্য কনফিগার করতে হয়।

mongoimport

mongoimport টুল ব্যবহার করার সময়, অনুরোধগুলি ডিফল্টরূপে ক্রমানুসারে করা হয়। Cloud Firestore এ লোড হওয়ার সময় উন্নত করতে, --numInsertionWorkers ফ্ল্যাগ ব্যবহার করে ওয়ার্কারের সংখ্যা নির্ধারণ করুন। আপনার ক্লায়েন্টের আকারের উপর ভিত্তি করে সঠিক সেটিংটি টিউন করার প্রয়োজন হতে পারে, তবে আমরা সাধারণত কমপক্ষে 32 দিয়ে শুরু করার পরামর্শ দিই।

অ্যাসিঙ্ক প্রোগ্রামিং

MongoDB-উপযোগী অপারেশন ব্যবহার করে নিজের সফটওয়্যার তৈরি করার সময়, আপনি নিম্নলিখিত উপায়ে প্যারালালিজম উন্নত করতে পারেন:

  • অ্যাসিঙ্ক ফ্রেমওয়ার্ক : অ্যাসিঙ্ক ফ্রেমওয়ার্ক ব্যবহার করে আপনি সমান্তরালভাবে অনুরোধগুলি প্রক্রিয়া করতে এবং সেগুলিতে সাড়া দিতে পারেন। আপনার ডাটাবেসে কল করার সময় কোনও জটিল পুলিং বা কিউইং তৈরি করার প্রয়োজন হয় না। প্রতিটি অনুরোধ প্রবাহ স্বাধীন সংযোগ ব্যবহার করতে পারে এবং সমান্তরালভাবে তাদের ডাটাবেস কল করতে পারে।
  • সমান্তরাল কম্পিউট পরিষেবা ব্যবহার করুন : Cloud Run মতো পরিষেবা ব্যবহার করে, আপনার সিস্টেম ডেটা প্রসেস করার জন্য প্রয়োজনীয় কম্পিউটেশন ওয়ার্কারের সংখ্যা বাড়াতে পারে।

ক্ষণস্থায়ী ব্যর্থতা

Cloud Firestore মতো একটি বৃহৎ ডিস্ট্রিবিউটেড সিস্টেম নিয়ে কাজ করার সময়, আপনি নেটওয়ার্কের সাময়িক সমস্যা বা কোনো ডকুমেন্টে বিরোধের মতো ক্ষণস্থায়ী ব্যর্থতার সম্মুখীন হতে পারেন।

একসাথে বিপুল পরিমাণ তথ্য লোড করার সময়, বৃহত্তর বাল্ক লোড অপারেশনটি ব্যর্থ না করে ব্যর্থ রাইটগুলোর জন্য একটি রিট্রাই কৌশল বজায় রাখা গুরুত্বপূর্ণ।