2012-01-23 8 views
5

Powiel możliwe:
Importing large json file into mongodbnajlepszym sposobem analizować duże (500mb) plik json i wstawić do MongoDB

Mam dość duży plik JSON (500 + MB), że” d Chciałbym edytować i wstawić do bazy danych w MongoDB. Próbowałem użyć skryptu Pythona, ale ulega awarii. jaki byłby najlepszy sposób na zrobienie tego?

+0

Czy cała sprawa jest jednym wielkim dokumentem? Oooo. –

+0

tak, to jeden duży plik – user1165012

+0

Nie Miałem na myśli jeden dokument MongoDB (pojedynczy rekord w DB). Np. Nie można go rozbić i wykonać wiele wstawek do kolekcji. –

Odpowiedz

10

Przede wszystkim ważne jest, aby pamiętać, że Mongo ma maksymalny rozmiar dokumentu 16 MB, wyjaśnione tutaj: http://www.mongodb.org/display/DOCS/Documents To dlatego Mike Christensen pytał, czy dane w twoim pliku były jednym wielkim obiektem, czy jest podzielone do wielu dokumentów.

Jeśli jesteś całkowicie nowy w MongoDB, pomoże Ci on poznać sposób przechowywania informacji w bazie danych Mongo. W skrócie, baza danych składa się z kolekcji, które składają się z obiektów podobnych do JSON zwanych Dokumentami, które zawierają klucze i wartości.

Jest to wyjaśnione w sekcji „model danych Mongo” strony Wstęp: http://www.mongodb.org/display/DOCS/Introduction

Oto kilka innych dobrych zasobów dla rozpoczęcie pracy z MongoDB:

http://www.mongodb.org/display/DOCS/Inserting To daje wyjaśnienie Mongo Dokumenty, jak wyglądają i jak są przechowywane w Kolekcji.

http://www.mongodb.org/display/DOCS/Tutorial Jest to wstępny dokument zawierający notatki na temat tego, jak zacząć pracę z Mongo, a także uwagi dotyczące projektowania schematów.

http://try.mongodb.org/ To interaktywny samouczek, który działa bezpośrednio w przeglądarce internetowej i zapewnia lepsze wyczucie sposobu przechowywania dokumentów w kolekcji Mongo.

http://mongly.com/ To jest strona internetowa stworzona przez bardzo aktywnego członka społeczności MongoDB o nazwie Karl Seguin. Zawiera wiele zasobów, które są idealne do rozpoczęcia pracy z Mongo, w tym "The Little MongoDB Book" i bardziej dogłębny interaktywny samouczek.

http://www.mongodb.org/display/DOCS/Python+Language+Center Ponieważ wspomniałeś o pracy z Pythonem, tutaj znajduje się link do centrum języka Python. Oficjalny sterownik Pythona dla MongoDB nazywa się PyMongo.

http://api.mongodb.org/python/current/ To jest oficjalna dokumentacja sterownika PyMongo.

Przebaczcie mi, jeśli już odkryliście powyższe zasoby na własną rękę. Ta odpowiedź jest również z korzyścią dla wszystkich innych czytelników, którzy mogą być nowi w MongoDB.

Teraz zajmiemy się faktycznym pytaniem, jak zaimportować informacje do pliku JSON.

Istnieje narzędzie o nazwie mongoimport, które pobiera pojedynczy plik zawierający jeden ciąg JSON w linii i wstawia go do kolekcji Mongo.Dokumentacja na ten temat można znaleźć tutaj:

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

Zastrzeżenie to, że kod mongoimport nie jest strasznie skomplikowane, a może się okazać, że nie tworzyć dokumenty dokładnie struktury, które szukają . Podczas importowania danych do nowej kolekcji Mongo z innego źródła (takiego jak plik JSON), oficjalną rekomendacją jest napisanie niestandardowego skryptu, tak jak po raz pierwszy próbowałeś.

Jaki dokładnie był błąd otrzymany ze skryptu Python? Czy błąd, że rozmiar dokumentu był większy niż 16 MB i nie można go było wstawić do kolekcji, czy też sam Python próbował udusić otwarcie pliku 500 MB? Jeśli odpowiedź jest pierwsza, będziesz musiał zmodyfikować swój skrypt, aby podzielić swoje gigantyczne dokumenty na mniejsze. Jeśli odpowiedź jest ta druga, możemy mieć trudniejszy problem do rozwiązania. Jeśli błąd był zupełnie inny, opublikuj go i możemy przez to przejść.

Mam nadzieję, że dostarczone przeze mnie zasoby pozwolą lepiej zrozumieć, jak przechowywane są dokumenty w Kolekcji Mongo i jak powinien wyglądać oryginalny plik JSON, zanim będzie można go wstawić do bazy danych Mongo.

Wreszcie, dzięki za wypróbowanie Mongo! Witamy w społeczności! Jeśli masz jakieś dodatkowe pytania, jesteśmy tutaj, aby pomóc!

Powiązane problemy