Я начинающий программист в соответствующих областях этого вопроса, поэтому, если это возможно, было бы полезно избегать предположения, что я уже знаю много.
Я пытаюсь импортировать набор данных OpenLibrary в локальную базу данных Postgres. После того, как он будет импортирован, я планирую использовать его в качестве начального начального числа для приложения Ruby on Rails, которое будет содержать информацию о книгах.
Наборы данных OpenLibrary доступны здесь в измененном формате JSON:
http://openlibrary.org/dev/docs/jsondump
Мне нужна только очень базовая информация для моего приложения, намного меньше, чем то, что указано в дампах. Я только пытаюсь узнать названия книг, имена авторов и отношения между книгами и авторами.
Ниже приведены две типичные записи из их набора данных: первая для автора и вторая для книги (кажется, что они имеют запись для каждого издания книги). Кажется, что записи начинаются с первичного ключа, а затем с типом, прежде чем включать фактический дамп базы данных JSON.
/ a / OL2A / type / author {"name": "U. Venkatakrishna Rao", "personal_name": "U. Venkatakrishna Rao", "last_modified": {"type": "/ type / datetime", "значение": "2008-09-10 08: 44: 01.978456"}, "ключ": "/ a / OL2A", "дата рождения": "1904", "тип": {"ключ": "/ тип / author "}," id ": 99," revision ": 3}
/ b / OL345M / type / edition {"publishers": ["Проект исследований в области социальных наук, кафедра географии, Университет Дакки"], "pagination": "ii, 54 p.", "Title": «Землепользование в районе Фаядабада», «lccn»: [«sa 65000491»], «subject_place»: [«Восточный Пакистан», «Регион Дакка»], «number_of_pages»: 54, «languages»: [{"comment ":" initial import "," code ":" eng "," name ":" English "," key ":" / l / eng "}]," lc_classification ": [" S471.P162 E23 "]," publish_date ":" 1963 "," publish_country ":" pk "," key ":" / b / OL345M "," авторы ": [{" birth_date ":" 1911 "," name ":" Nafis Ahmad "," key ":" / a / OL302A "," personal_name ":" Nafis Ahmad "}]," publish_places ": [" Dacca, East Pakistan "]," by_statement ":" [by] Нафис Ахмад и Ф. Карим Хан. "," oclc_numbers ": [" 4671066 "]," members ": [" Хан, Фазле Карим, соавтор. "]," subject ": [" Землепользование - Восточный Пакистан - регион Дакка. "]}
Размер несжатых дампов огромен: около 2 ГБ для списка авторов и 18 ГБ для списка изданий книг. OpenLibrary не предоставляет никаких инструментов для этого, они предоставляют простой неоптимизированный скрипт Python для чтения примеров данных (который, в отличие от реальных дампов, представлен в чистом формате JSON), но они оценивают, если он был изменен для использования на их реальных данных, он будет займет 2 месяца (!), чтобы закончить загрузку данных.
Как я могу прочитать это в базу данных? Я предполагаю, что мне нужно написать программу для этого. На каком языке и каких-либо указаниях о том, как мне это сделать, чтобы закончить в разумные сроки? Единственный язык сценариев, с которым у меня есть опыт, это Ruby.