2012-01-23 17 views
5

Duplicar posibles:
Importing large json file into mongodbmejor manera de analizar un gran (500 MB) de archivos JSON y se insertan en MongoDB

Tengo un archivo JSON bastante grande (500 + MB) que' d Me gustaría editar e insertar en una base de datos en MongoDB. Intenté usar un script de Python pero falla. ¿Cuál sería la mejor forma de hacer esto?

+0

¿Es todo un documento gigante? Ay. –

+0

sí, es un archivo grande – user1165012

+0

No, quiero decir un documento MongoDB (un solo registro en el DB). Por ejemplo, no puede dividirlo y hacer varias inserciones en la colección. –

Respuesta

10

En primer lugar, es importante tener en cuenta que Mongo tiene un tamaño máximo de documento de 16 MB, explicado aquí: http://www.mongodb.org/display/DOCS/Documents Por eso Mike Christensen preguntaba si los datos dentro de su archivo eran un objeto gigante o si estaban divididos en múltiples documentos.

Si es completamente nuevo en MongoDB, le ayudará a familiarizarse con la forma en que se almacena la información en una base de datos de Mongo. En pocas palabras, una base de datos está compuesta de colecciones, que se componen de objetos similares a JSON llamados documentos, que contienen claves y valores.

Esto se explica en la sección "modelo de datos Mongo" de la página Introducción: http://www.mongodb.org/display/DOCS/Introduction

Éstos son algunos otros recursos buenos para comenzar a usar MongoDB:

http://www.mongodb.org/display/DOCS/Inserting Esto da una explicación de Mongo Documentos, cómo se ven y cómo se almacenan en una Colección.

http://www.mongodb.org/display/DOCS/Tutorial Este es un documento introductorio que contiene notas sobre cómo iniciar y ejecutar con Mongo, así como notas sobre el diseño del esquema.

http://try.mongodb.org/ Este es un tutorial interactivo, que se ejecuta directamente en su navegador web, y le dará una mejor idea de cómo se almacenan los documentos en una Colección Mongo.

http://mongly.com/ Este es un sitio web creado por un miembro muy activo de la comunidad MongoDB llamado Karl Seguin. Incluye muchos recursos que son perfectos para comenzar con Mongo, incluido "The Little MongoDB Book" y un tutorial interactivo más detallado.

http://www.mongodb.org/display/DOCS/Python+Language+Center Como mencionó trabajar con Python, este es el enlace al centro de Python Language. El controlador oficial de Python para MongoDB se llama PyMongo.

http://api.mongodb.org/python/current/ Ésta es la documentación oficial del controlador PyMongo.

Perdóname si ya has descubierto los recursos anteriores por ti mismo. Esta respuesta también es para el beneficio de cualquier otro lector que sea nuevo en MongoDB.

Ahora para abordar su pregunta real de cómo importar la información dentro de su archivo JSON.

Hay una utilidad llamada mongoimport que tomará un único archivo que contiene una cadena JSON por línea e insertará en una colección Mongo.La documentación sobre esto se puede encontrar aquí:

http://www.mongodb.org/display/DOCS/Import+Export+Tools

La advertencia es que el código para mongoimport no es muy compleja, y es posible que no crea documentos en exactamente la estructura que usted está buscando . Cuando se importan datos en una nueva colección de Mongo desde otra fuente (como un archivo JSON), la recomendación oficial es escribir una secuencia de comandos personalizada, como lo primero que intentó hacer.

¿Cuál fue exactamente el error que recibió de su script de Python? ¿Hubo un error de que el tamaño del documento era superior a 16 MB y no se pudo insertar en una colección, o Python se ahogó al intentar abrir su archivo de 500 MB? Si la respuesta es la primera, tendrá que modificar su secuencia de comandos para dividir sus documentos gigantes en otros más pequeños. Si la respuesta es la última, podríamos tener un problema más difícil de tratar. Si el error fue algo completamente distinto, publícalo y podremos solucionarlo.

Afortunadamente, los recursos que he proporcionado le permitirán comprender mejor cómo se almacenan los documentos en una colección Mongo, y cómo debe ser el archivo JSON original antes de que se pueda insertar en una base de datos de Mongo.

Finalmente, ¡gracias por probar Mongo! Bienvenido a la comunidad! Si tiene alguna pregunta de seguimiento, ¡estamos aquí para ayudarlo!

Cuestiones relacionadas