كيفية إدراج 20 مليون سجل في قاعدة بيانات NoSQL

نشرت: 2022-11-24

هناك طرق مختلفة لإدراج 20 مليون سجل في قاعدة بيانات NoSQL. تتمثل إحدى الطرق في استخدام ميزة التحميل المجمع لقاعدة البيانات. قد يتطلب ذلك أن تكون البيانات بتنسيق معين يمكن لقاعدة البيانات فهمه وسيكون الطريقة الأكثر فعالية لتحميل البيانات. هناك طريقة أخرى تتمثل في استخدام برنامج نصي أو تطبيق لإدراج البيانات في سجل واحد في كل مرة. ستكون هذه عملية أبطأ ولكنها لن تتطلب أن تكون البيانات بتنسيق معين.

هل يستطيع Mongodb التعامل مع ملايين السجلات؟

الائتمان: freecodecamp.org

لمعالجة ملايين السجلات في الوقت الفعلي ، يجب عليك استخدام MongoDB و ElasticSearch. سيكون من المفيد أيضًا استخدام هذه الهياكل والمفاهيم في مجموعة بيانات كبيرة .

من خلال تحسين إدخالات MongoDB الضخمة ، يمكننا تحميل 50 مليون سجل بسرعة أكبر بنسبة 33٪! صفحة إعداد Github هي المكان الذي ستجد فيه رمز كل هذه البرامج. لقد اختبرت جهاز Macbook Pro الخاص بي بسرعة الارتباط الصاعد من 25 إلى 35 ميغابت في الثانية وسرعة الاتصال من 25 إلى 35 ميغابت في الثانية. في هذه التجربة ، من الممكن أن تختلف النتائج عن تلك التي تم الحصول عليها على EC2 جاهز لإنتاجه. تعتبر منصة اختبار بيانات Kaggle خيارًا ممتازًا لاختبار البيانات لأنها أعدت مجموعات بيانات. yelp_academic_dataset_review.json ، ملف 5 جيجا بايت ، يحتوي على 6،9 مليون سجل. بعد قراءة العقد للملف ، استغرقت مونجو 2.5 ساعة لكتابة مليون سجل.

يوصى باستخدام هذه الأداة لإنشاء ما لا يزيد عن مليوني نقطة بيانات. لا يمكن أن يحتوي كيان المخزن المؤقت Node.js على أكثر من 2 غيغابايت من الملفات. من المنطقي تمامًا استخدام Streams هنا. يمكننا إدخال 100 كيلو متتالية في هذا المثال مع تأخير بسيط. استغرق إدخال الملحق 29 دقيقة. نظرًا لاستخدام EventEmitter في جميع التدفقات ، فهذه هي الحالة. زاد استخدام وحدة المعالجة المركزية هذا إلى 40٪ ، و 10٪ أكثر من الإدراج التسلسلي 100 كيلو بايت.

تضاعف IOPS تقريبًا من 50 إلى 100 ، وزادت الاتصالات من 40 إلى 60. يجب أن تتكرر على كل مجلد ، وقراءة الملف ، وحفظ عداد طول مصفوفة المراجعات هناك. إذا كان هذا الأسلوب يعمل بشكل جيد في المستقبل ، فيمكن تطبيقه على عمليات الإدراج اللاحقة ؛ خذ وقتك لترى كيف يعمل. في هذا القسم ، نظرنا في المدة التي ستستغرقها قراءة 51936 مجلدًا وإدخال 63 مليون سجل. يجب أن نعرف عدد المجلدات التي تمت قراءتها من أجل الوصول إلى المليون سجل التالية لأن إدراج البيانات يمكن موازاة ذلك لاحقًا. يستغرق النظام حوالي ساعة ونصف لإدخال 63 مليون سجل. توقعنا سابقًا أنه سيكون أسرع بنسبة 33٪ من ذلك!

قمنا بتحميل ما يقرب من 45 جيجابايت من البيانات في غضون ساعة ونصف الساعة. كان IOPS 125 طوال الفترة ، وبقيت الاتصالات حوالي 100 معظم الوقت. الآن بعد أن ظهرت النتائج ، أعتقد أنه يمكنني البدء في التخطيط للمستقبل. يسمح لك InsertMany بإدراج مليون سجل في أقل من دقيقة. للتحميل بين 1 و 10 أمتار ، من المرجح أن يكون Stream API مطلوبًا لموازاة الإدخالات. نظرًا لأن وحدة المعالجة المركزية العنقودية و IOPS ثقيلة جدًا ، فقد يتأثر أداء التطبيق بشكل كبير. قم بتشغيل برنامج نصي للجدول لتحديد عدد العمليات / العمليات التي يمكن تنفيذها في وقت واحد.

يتمتع MongoDB بعدد من المزايا مقارنة بأنظمة تخزين الملفات الأخرى بالإضافة إلى كونه اختيارًا ممتازًا للملفات الكبيرة. للبدء ، يمكن بسهولة تخزين الملفات الكبيرة في قاعدة البيانات. علاوة على ذلك ، فإن قاعدة البيانات لديها القدرة على معالجة عدد كبير من الكائنات. أخيرًا ، قاعدة البيانات قابلة للتطوير أفقيًا ، مما يسمح لها بمعالجة كمية أكبر من البيانات دون أن تطغى عليها. إذا كنت ترغب في تخزين ملفات ضخمة في قاعدة بيانات ، فإن MongoDB هو خيار ممتاز. هناك العديد من المزايا لاستخدامه على خيارات التخزين وقابلية التوسع الأخرى.

ما هو الحجم الأقصى لوثيقة مونغودب؟

الائتمان: brain-mentors.com

الحد الأقصى لحجم مستند MongoDB هو 16 ميغا بايت.

كيفية إدراج الملايين من السجلات في Mongodb

بافتراض أن لديك خادم MongoDB قيد التشغيل ولديك قاعدة بيانات ومجموعة تم إنشاؤها ، يمكنك إدراج السجلات باستخدام طريقة insert (). يمكن أن تأخذ هذه الطريقة إما مصفوفة من المستندات أو مستندًا واحدًا.
لإدراج مستند واحد ، استخدم بناء الجملة التالي:
db.collection.insert (
{
الاسم: "جون دو"
}
)
لإدراج مستندات متعددة ، استخدم بناء الجملة التالي:
db.collection.insert ([
{
الاسم: "جون دو"
} ،
{
الاسم: "جين دو"
}
])

لديك بعض الخيارات. من الممكن إنشاء مجموعة منفصلة لكل معرف جهاز ثم الاستعلام عن هذا المعرف بشكل منفصل. إذا كان لديك الكثير من الأجهزة ، فقد يكون هذا مكلفًا. إذا كنت تريد البحث عن جميع المستندات في مجموعة ، يمكنك فعل الشيء نفسه مع نفس المجموعة لجميع الأجهزة. قد تكون تكلفة هذه الخدمة باهظة الثمن إذا كان لديك عدد كبير من الأجهزة. الخيار الثالث هو إنشاء مجموعة مجزأة. سينتشر الحمل عبر Mongo ، مما يؤدي إلى معالجة أسرع للاستعلام . إذا كنت تريد إنشاء المجموعة باستخدام خيار المجموعة المُقسمة ، فتأكد من ضبط خيار الأجزاء على "صحيح".

Mongodb: نظام إدارة قواعد بيانات Nosql

MongoDB هو نظام إدارة قواعد بيانات NoSQL مصمم للتعامل مع المستندات. يمكنه التعامل مع مجموعة كبيرة من ملفات البيانات ، بحد افتراضي يبلغ 100000 مفتاح فهرس لكل مستند. وبالتالي فإن منصة MongoDB قادرة على تخزين كمية كبيرة من البيانات دون أن تثقل كاهلها. يعد الإدخال بالجملة ميزة ملائمة في MongoDB. يمكن أن يكون مفيدًا إذا كان لديك الكثير من البيانات لإضافتها لأنه يمكنه إدراج مستندات متعددة في وقت واحد.

حد إدراج Mongodb بالجملة

ينتج إصدار MongoDB 3.6 حاليًا 100000.

تسمح طريقة الإدراج المجمع بإدراج مستندات متعددة في وقت واحد في MongoDB. كمعامل ، يقوم التابع insert بإنشاء مصفوفة من المستندات. لا يُطلب من المستخدمين تضمين جميع الحقول في استعلامهم. في هذا المثال ، دعنا نستخدم سطر الأوامر لإدراج مستندات متعددة باستخدام إدراج MongoDB بالجملة. يتم إدخال رقم مجمع باستخدام طريقة Bulk.insert (). تشبه هذه الطريقة ، التي تم تقديمها بعد الإصدار 2.6 ، طريقة الإدراج المجمع غير المرتب. نقوم أولاً بإنشاء قائمة مرتبة بالسيارات باسم carbulk1 ، ثم نقوم بإدخال المستندات عن طريق تنفيذ طريقة التنفيذ عليها. يوضح برنامج Java هذا كيفية تشغيل مجموعة متنوعة من العمليات المجمعة باستخدام أوامر shell لأول مرة.

هل لدى Mongodb حد؟

يدعم MongoDB عمق متداخل يصل إلى 100 مستوى ، لذا يمكن أن يصل حجم المستندات إلى 16 ميجا بايت. لا يمكن أن تحتوي قاعدة بيانات MongoDB إلا على 20 جيجابايت كحد أقصى من البيانات.