Как вставить 20 миллионов записей в базу данных NoSQL
Опубликовано: 2022-11-24Существуют различные способы вставки 20 миллионов записей в базу данных NoSQL. Один из способов — использовать функцию массовой загрузки базы данных. Это потребует, чтобы данные были в определенном формате, который может понять база данных, и это был бы наиболее эффективный способ загрузки данных. Другой способ — использовать сценарий или приложение для вставки данных по одной записи за раз. Это будет более медленный процесс, но не потребует, чтобы данные были в определенном формате.
Может ли MongoDB обрабатывать миллионы записей?
Для обработки миллионов записей в режиме реального времени следует использовать MongoDB и ElasticSearch. Было бы также выгодно использовать эти структуры и понятия в большом наборе данных .
Благодаря оптимизации массивных вставок MongoDB мы можем загружать 50 миллионов записей быстрее на 33%! На странице установки Github вы найдете код для всех этих программ. Я протестировал свой Macbook Pro со скоростью исходящего канала 25–35 Мбит/с и скоростью соединения 25–35 Мбит/с. В этом эксперименте возможно, что результаты будут отличаться от результатов, полученных на готовом к работе EC2. Платформа тестирования данных Kaggle — отличный выбор для тестирования данных , поскольку она подготовила наборы данных. yelp_academic_dataset_review.json, файл размером 5 ГБ, содержит 6,9 миллиона записей. После того, как узлы прочитали файл, Mongo потребовалось 2,5 часа, чтобы записать 1 миллион записей.
Этот инструмент рекомендуется для создания не более 2 миллионов точек данных. Сущность буфера Node.js не может содержать более 2 ГБ файлов. Совершенно логично, что здесь следует использовать Streams. В этом примере мы можем вставить 100 000 последовательно с небольшой задержкой. На вставку вкладыша ушло 29 минут. Поскольку EventEmitter используется во всех потоках, дело обстоит именно так. Это использование ЦП увеличилось до 40%, что на 10% больше, чем при последовательной вставке 100 КБ.
IOPS увеличился почти вдвое с 50 до 100, а количество подключений увеличилось с 40 до 60. Он должен перебирать каждую папку, читать файл и сохранять там счетчик длины массива отзывов. Если этот подход будет хорошо работать в будущем, его можно будет применить к более поздним вставкам; не торопитесь, чтобы увидеть, как это работает. В этом разделе мы рассмотрели, сколько времени потребуется, чтобы прочитать 51936 папок и вставить 63 миллиона записей. Мы должны знать, сколько папок было прочитано, чтобы достичь следующего миллиона записей, потому что вставка данных может быть распараллелена позже. Системе требуется около полутора часов, чтобы вставить 63 миллиона записей. Ранее мы предсказывали, что это будет на 33% быстрее!
Мы загрузили почти 45 ГБ данных в течение полутора часов. Число операций ввода-вывода в секунду составляло 125 за весь период, а количество подключений в большинстве случаев оставалось около 100. Теперь, когда результаты готовы, я думаю, я могу начать планировать будущее. InsertMany позволяет вставить 1 миллион записей менее чем за минуту. Для загрузки от 1 до 10 метров, скорее всего, потребуется Stream API для распараллеливания вставок. Так как ЦП и IOPS кластера очень тяжелые, производительность приложения может сильно пострадать. Запустите сценарий расписания, чтобы определить, сколько операций/процессов может выполняться одновременно.
MongoDB имеет ряд преимуществ перед другими системами хранения файлов, а также является отличным выбором для больших файлов. Во-первых, большие файлы можно легко хранить в базе данных. Кроме того, база данных способна обрабатывать большое количество объектов. Наконец, база данных масштабируется по горизонтали, что позволяет ей обрабатывать больший объем данных, не перегружаясь. Если вы хотите хранить большие файлы в базе данных, MongoDB — отличный выбор. Его использование имеет множество преимуществ по сравнению с другими вариантами хранения и масштабируемости.
Каков максимальный размер документа MongoDB?
Максимальный размер документа MongoDB составляет 16 мегабайт.
Как вставить миллионы записей в MongoDB
Предполагая, что у вас запущен сервер MongoDB и созданы база данных и коллекция, вы можете вставлять записи, используя метод insert(). Этот метод может принимать либо массив документов, либо один документ.
Чтобы вставить один документ, используйте следующий синтаксис:
db.коллекция.вставка(
{
имя: «Джон Доу»
}
)
Чтобы вставить несколько документов, используйте следующий синтаксис:
db.коллекция.insert([
{
имя: «Джон Доу»
},
{
имя: «Джейн Доу»
}
])
У вас есть несколько вариантов. Можно создать отдельную коллекцию для каждого идентификатора устройства, а затем запросить этот идентификатор отдельно. Если у вас много устройств, это может быть дорого. Если вы хотите искать все документы в коллекции, вы можете сделать то же самое с одной и той же коллекцией для всех устройств. Стоимость этой услуги может быть непомерно высокой, если у вас большое количество устройств. Третий вариант — создать сегментированную коллекцию. Нагрузка будет распределена по Mongo, что приведет к более быстрой обработке запросов . Если вы хотите создать коллекцию с использованием параметра сегментированной коллекции, обязательно установите для параметра сегментов значение true.
Mongodb: система управления базами данных Nosql
MongoDB — это система управления базами данных NoSQL, созданная для обработки документов. Он может обрабатывать широкий спектр файлов данных с ограничением по умолчанию в 100 000 индексных ключей на документ. Таким образом, платформа MongoDB способна хранить большие объемы данных без перегрузки. Массовая вставка — удобная функция в MongoDB. Это может быть полезно, если у вас есть много данных для добавления, потому что он может вставлять несколько документов одновременно.
Предел массовой вставки MongoDB
Версия MongoDB 3.6 в настоящее время дает 100 000.
Метод массовой вставки позволяет одновременно вставлять несколько документов в MongoDB. В качестве параметра метод вставки генерирует массив документов. Пользователи не обязаны включать все поля в свой запрос. В этом примере давайте воспользуемся командной строкой для вставки нескольких документов с помощью массовой вставки MongoDB. Массовая вставка числа выполняется с помощью метода Bulk.insert(). Этот метод, появившийся после версии 2.6, аналогичен неупорядоченной массовой вставке. Сначала мы создаем упорядоченный список автомобилей с именем carbulk1, затем вставляем документы, выполняя для них метод execute. Эта Java-программа впервые демонстрирует выполнение различных массовых операций с помощью команд оболочки.
Есть ли у MongoDB предел?
MongoDB поддерживает глубину вложенности 100 уровней, поэтому размер документов может достигать 16 МБ. База данных MongoDB может содержать не более 20 ГБ данных.