Cómo insertar 20 millones de registros en una base de datos NoSQL

Publicado: 2022-11-24

Hay varias formas de insertar 20 millones de registros en una base de datos NoSQL. Una forma sería usar la función de carga masiva de la base de datos. Esto requeriría que los datos estén en un formato específico que la base de datos pueda entender y sería la forma más eficiente de cargar los datos. Otra forma sería usar un script o una aplicación para insertar los datos un registro a la vez. Este sería un proceso más lento pero no requeriría que los datos estén en un formato específico.

¿Mongodb puede manejar millones de registros?

Crédito: freecodecamp.org

Para procesar millones de registros en tiempo real, debe usar MongoDB y ElasticSearch. También sería ventajoso utilizar estas estructuras y conceptos en un gran conjunto de datos .

¡Al optimizar las inserciones masivas de MongoDB, podemos cargar 50 millones de registros más rápido en un 33 %! La página de configuración de Github es donde encontrará el código para todos estos programas. Probé mi Macbook Pro con una velocidad de enlace ascendente de 25 a 35 Mbps y una velocidad de conexión de 25 a 35 Mbps. En este experimento, es posible que los resultados difieran de los obtenidos en un EC2 listo para usar. Una plataforma de prueba de datos Kaggle es una excelente opción para probar datos porque tiene conjuntos de datos preparados. yelp_academic_dataset_review.json, un archivo de 5 GB, contiene 6,9 ​​millones de registros. Después de que los nodos leyeron el archivo, Mongo tardó 2,5 horas en escribir 1 millón de registros.

Esta herramienta se recomienda para generar no más de 2 millones de puntos de datos. Una entidad de búfer de Node.js no puede contener más de 2 GB de archivos. Tiene mucho sentido que Streams se use aquí. Podemos insertar 100k secuenciales en este ejemplo con un ligero retraso. Se necesitaron 29 minutos para insertar el inserto. Debido a que EventEmitter se usa en todas las transmisiones, este es el caso. Este uso de CPU ha aumentado al 40 %, un 10 % más que una inserción secuenciada de 100k.

Las IOPS casi se han duplicado de 50 a 100, y las conexiones han aumentado de 40 a 60. Debe iterar sobre cada carpeta, leer el archivo y guardar el contador de revisiones de la longitud de la matriz allí. Si este enfoque funciona bien en el futuro, se puede aplicar a inserciones posteriores; tómese su tiempo para ver cómo funciona. En esta sección, analizamos cuánto tiempo llevaría leer 51936 carpetas e insertar 63 millones de registros. Debemos saber cuántas carpetas se leyeron para llegar al siguiente millón de registros porque la inserción de datos se puede paralelizar más tarde. El sistema tarda aproximadamente una hora y media en insertar 63 millones de registros. ¡Anteriormente habíamos predicho que sería un 33% más rápido que eso!

Cargamos casi 45 GB de datos en una hora y media. El IOPS fue de 125 durante todo el período y las conexiones se mantuvieron alrededor de 100 la mayor parte del tiempo. Ahora que tengo los resultados, supongo que puedo comenzar a planificar para el futuro. InsertMany le permite insertar 1 millón de registros en menos de un minuto. Para cargar entre 1 y 10 metros, lo más probable es que se requiera Stream API para paralelizar las inserciones. Debido a que la CPU del clúster y las IOPS son tan pesadas, el rendimiento de la aplicación puede verse muy afectado. Ejecute un script de programación para determinar cuántas operaciones/procesos se pueden ejecutar simultáneamente.

MongoDB tiene una serie de ventajas sobre otros sistemas de almacenamiento de archivos, además de ser una excelente opción para archivos grandes. Para empezar, los archivos grandes se pueden almacenar fácilmente en la base de datos. Además, la base de datos tiene la capacidad de procesar una gran cantidad de objetos. Finalmente, la base de datos es escalable horizontalmente, lo que le permite manejar una mayor cantidad de datos sin sobrecargarse. Si desea almacenar archivos masivos en una base de datos, MongoDB es una excelente opción. Existen numerosas ventajas al usarlo sobre otras opciones de almacenamiento y escalabilidad.

¿Cuál es el tamaño máximo del documento Mongodb?

Crédito: cerebro-mentors.com

El tamaño máximo de un documento MongoDB es de 16 megabytes.

Cómo insertar millones de registros en Mongodb

Suponiendo que tiene un servidor MongoDB ejecutándose y tiene una base de datos y una colección creada, puede insertar registros utilizando el método insert(). Este método puede tomar una matriz de documentos o un solo documento.
Para insertar un solo documento, utilice la siguiente sintaxis:
db.colección.insertar(
{
nombre: "Juan Pérez"
}
)
Para insertar varios documentos, utilice la siguiente sintaxis:
db.colección.insertar([
{
nombre: "Juan Pérez"
},
{
nombre: "Jane Doe"
}
])

Tienes pocas opciones. Es posible crear una colección separada para cada ID de dispositivo y luego consultar esa ID por separado. Si tiene muchos dispositivos, esto puede ser costoso. Si desea buscar todos los documentos de una colección, puede hacer lo mismo con la misma colección para todos los dispositivos. El costo de este servicio puede ser prohibitivo si tiene una gran cantidad de dispositivos. La tercera opción es crear una colección fragmentada. La carga se distribuirá en Mongo, lo que dará como resultado un procesamiento de consultas más rápido . Si desea crear la colección con la opción de colección fragmentada, asegúrese de establecer la opción de fragmentos en verdadero.

Mongodb: un sistema de gestión de base de datos Nosql

MongoDB es un sistema de gestión de base de datos NoSQL construido para manejar documentos. Puede manejar una amplia gama de archivos de datos, con un límite predeterminado de 100 000 claves de índice por documento. Por lo tanto, la plataforma MongoDB es capaz de almacenar una gran cantidad de datos sin sobrecargarse. La inserción masiva es una característica conveniente en MongoDB. Puede ser útil si tiene muchos datos para agregar porque puede insertar varios documentos a la vez.

Límite de inserción masiva de Mongodb

La versión MongoDB 3.6 actualmente produce 100.000.

Un método de inserción masiva permite insertar varios documentos a la vez en MongoDB. Como parámetro, el método de inserción genera una matriz de documentos. Los usuarios no están obligados a incluir todos los campos en su consulta. En este ejemplo, usemos la línea de comandos para insertar varios documentos mediante la inserción masiva de MongoDB. La inserción de un número de forma masiva se logra mediante el método Bulk.insert(). Este método, que se introdujo después de la versión 2.6, es similar a la inserción masiva desordenada. Primero creamos una lista ordenada de autos con un nombre carbulk1, luego insertamos los documentos ejecutando el método de ejecución en ellos. Este programa Java demuestra cómo ejecutar una variedad de operaciones masivas usando comandos de shell por primera vez.

¿Mongodb tiene un límite?

MongoDB admite una profundidad anidada de 100 niveles, por lo que los documentos pueden tener un tamaño de hasta 16 MB. La base de datos MongoDB solo puede contener un máximo de 20 GB de datos.