Cara Memasukkan 20 Juta Catatan Ke Dalam Basis Data NoSQL

Diterbitkan: 2022-11-24

Ada berbagai cara untuk memasukkan 20 juta record ke dalam database NoSQL. Salah satu caranya adalah dengan menggunakan fitur pemuatan massal dari database. Ini akan membutuhkan data dalam format tertentu yang dapat dipahami database dan akan menjadi cara paling efisien untuk memuat data. Cara lain adalah dengan menggunakan skrip atau aplikasi untuk memasukkan data satu record pada satu waktu. Ini akan menjadi proses yang lebih lambat tetapi tidak memerlukan data dalam format tertentu.

Bisakah Mongodb Menangani Jutaan Catatan?

Kredit: freecodecamp.org

Untuk memproses jutaan record secara real-time, Anda harus menggunakan MongoDB dan ElasticSearch. Ini juga akan menguntungkan untuk menggunakan struktur dan konsep ini dalam kumpulan data yang besar .

Dengan mengoptimalkan sisipan MongoDB yang masif, kami dapat memuat 50 juta rekaman lebih cepat sebesar 33%! Halaman Pengaturan Github adalah tempat Anda akan menemukan kode untuk semua program ini. Saya menguji Macbook Pro saya dengan kecepatan uplink 25–35 Mbps dan kecepatan koneksi 25–35 Mbps. Dalam percobaan ini, ada kemungkinan bahwa hasilnya akan berbeda dari yang diperoleh pada EC2 prod-ready. Platform pengujian data Kaggle adalah pilihan yang sangat baik untuk menguji data karena telah menyiapkan kumpulan data. yelp_academic_dataset_review.json, file 5 GB, berisi 6,9 juta catatan. Setelah node membaca file, butuh 2,5 jam bagi Mongo untuk menulis 1 juta record.

Alat ini direkomendasikan untuk menghasilkan tidak lebih dari 2 juta titik data. Entitas buffer Node.js tidak dapat berisi lebih dari 2GB file. Masuk akal jika Stream harus digunakan di sini. Kami dapat memasukkan 100k berurutan dalam contoh ini dengan sedikit penundaan. Butuh 29 menit untuk memasukkan sisipan. Karena EventEmitter digunakan di semua aliran, inilah masalahnya. Penggunaan CPU ini telah meningkat menjadi 40%, 10% lebih banyak dari penyisipan 100k berurutan.

IOPS hampir dua kali lipat dari 50 menjadi 100, dan koneksi meningkat dari 40 menjadi 60. IOPS harus mengulang setiap folder, membaca file, dan menyimpan penghitung panjang larik ulasan di sana. Jika pendekatan ini bekerja dengan baik di masa mendatang, ini dapat diterapkan pada penyisipan selanjutnya; luangkan waktu Anda untuk melihat cara kerjanya. Di bagian ini, kami melihat berapa lama waktu yang diperlukan untuk membaca 51936 folder dan memasukkan 63 juta catatan. Kita harus tahu berapa folder yang dibaca untuk mencapai jutaan record berikutnya karena penyisipan data bisa diparalelkan nantinya. Sistem membutuhkan waktu sekitar satu setengah jam untuk memasukkan 63 juta catatan. Kami sebelumnya telah memperkirakan bahwa ini akan menjadi 33% lebih cepat dari itu!

Kami memuat hampir 45GB data dalam waktu satu setengah jam. IOPS adalah 125 untuk seluruh periode, dan sebagian besar koneksi tetap sekitar 100. Sekarang setelah hasilnya masuk, saya kira saya bisa mulai merencanakan masa depan. InsertMany memungkinkan Anda memasukkan 1 juta catatan dalam waktu kurang dari satu menit. Untuk memuat antara 1 dan 10 meter, Stream API kemungkinan besar akan diperlukan untuk memparalelkan sisipan. Karena CPU cluster dan IOPS sangat berat, kinerja aplikasi bisa sangat menurun. Jalankan skrip jadwal untuk menentukan berapa banyak operasi/proses yang dapat dijalankan secara bersamaan.

MongoDB memiliki sejumlah keunggulan dibandingkan sistem penyimpanan file lainnya selain menjadi pilihan yang sangat baik untuk file besar. Untuk memulai, file besar dapat dengan mudah disimpan dalam database. Selain itu, basis data memiliki kapasitas untuk memproses sejumlah besar objek. Terakhir, basis data dapat diskalakan secara horizontal, memungkinkannya menangani jumlah data yang lebih besar tanpa menjadi kewalahan. Jika Anda ingin menyimpan file besar dalam database, MongoDB adalah pilihan yang sangat baik. Ada banyak keuntungan menggunakannya dibandingkan opsi penyimpanan dan skalabilitas lainnya.

Berapa Ukuran Maksimum Dokumen Mongodb?

Kredit: brain-mentors.com

Ukuran maksimum untuk dokumen MongoDB adalah 16 megabita.

Cara Memasukkan Jutaan Catatan Di Mongodb

Dengan asumsi Anda menjalankan server MongoDB dan membuat database dan koleksi, Anda dapat menyisipkan record menggunakan metode insert() . Metode ini dapat berupa kumpulan dokumen atau satu dokumen.
Untuk menyisipkan satu dokumen, gunakan sintaks berikut:
db.collection.insert(
{
nama: “John Doe”
}
)
Untuk menyisipkan banyak dokumen, gunakan sintaks berikut:
db.collection.insert([
{
nama: “John Doe”
},
{
nama: “Jane Doe”
}
])

Anda punya beberapa pilihan. Dimungkinkan untuk membuat koleksi terpisah untuk setiap id perangkat dan kemudian menanyakan ID tersebut secara terpisah. Jika Anda memiliki banyak perangkat, ini bisa mahal. Jika Anda ingin mencari semua dokumen dalam sebuah koleksi, Anda dapat melakukan hal yang sama dengan koleksi yang sama untuk semua perangkat. Biaya layanan ini mungkin sangat mahal jika Anda memiliki banyak perangkat. Opsi ketiga adalah membuat koleksi pecahan. Muatan akan tersebar di seluruh Mongo, menghasilkan pemrosesan kueri yang lebih cepat . Jika Anda ingin membuat koleksi menggunakan opsi koleksi sharded, pastikan untuk menyetel opsi shard ke true.

Mongodb: Sistem Manajemen Basis Data Nosql

MongoDB adalah sistem manajemen basis data NoSQL yang dibangun untuk menangani dokumen. Itu dapat menangani berbagai file data, dengan batas default 100.000 kunci indeks per dokumen. Platform MongoDB dengan demikian mampu menyimpan sejumlah besar data tanpa menjadi terbebani. Memasukkan massal adalah fitur yang nyaman di MongoDB. Ini dapat berguna jika Anda memiliki banyak data untuk ditambahkan karena dapat memasukkan banyak dokumen sekaligus.

Batas Sisipan Massal Mongodb

Versi MongoDB 3.6 saat ini menghasilkan 100.000.

Metode penyisipan massal memungkinkan banyak dokumen dimasukkan sekaligus ke dalam MongoDB. Sebagai parameter, metode insert menghasilkan array dokumen. Pengguna tidak diharuskan menyertakan semua bidang dalam kueri mereka. Dalam contoh ini, mari gunakan baris perintah untuk menyisipkan banyak dokumen menggunakan penyisipan massal MongoDB. Memasukkan nomor secara massal dilakukan dengan menggunakan metode Bulk.insert(). Metode ini, yang diperkenalkan setelah versi 2.6, mirip dengan penyisipan massal tanpa urutan. Kami pertama-tama membuat daftar mobil yang dipesan dengan nama carbulk1, lalu memasukkan dokumen dengan menjalankan metode eksekusi pada dokumen tersebut. Program Java ini mendemonstrasikan cara menjalankan berbagai operasi massal menggunakan perintah shell untuk pertama kalinya.

Apakah Mongodb Memiliki Batas?

MongoDB mendukung kedalaman bersarang 100 level, sehingga ukuran dokumen bisa sebesar 16 MB. Basis data MongoDB hanya dapat berisi maksimal 20 GB data.