Инструмент просмотра / запроса данных для слабо структурированных данных - PullRequest
0 голосов
/ 10 февраля 2010

У меня есть набор статистических данных (размером около 100M), который организован в пары ключ-значение, некоторые значения являются просто числами (например, как возраст человека или вес), а некоторые являются иерархическими (например, как занятость человека - он может иметь набор записей занятости, каждая из которых снова содержит пары ключ / значение и т. д.). Реальные данные не совсем такие, но структура похожа.

Мне нужно запросить эти данные с произвольным набором критериев - то есть я могу спросить что-то вроде «где 20 старейших работали 3 года назад» или «какова сумма всех зарплат для всех людей, которые когда-либо работали в компании» X на срок более года "или" расскажите мне все, что вы знаете о людях, которые недавно нашли новую работу "и т. Д.

Я могу запрограммировать каждый отдельный запрос довольно легко, но поскольку их может быть много, и они все время меняются, становится утомительно программировать каждый запрос заново, поэтому вопрос в том, существует ли существующий инструмент, который облегчит мне задачу? делать такие запросы (если у него хороший графический интерфейс, это бонус :). Нечто подобное SQL не будет работать хорошо, потому что поля данных на самом деле не являются фиксированными, и заставить работать иерархию в SQL будет слишком много проблем ИМХО. Так есть ли инструмент, который я мог бы использовать относительно легко для этой задачи (то есть не изучать для этого совершенно новый язык - тогда мне лучше остановиться на ручном кодировании запросов)?

1 Ответ

0 голосов
/ 14 февраля 2010

Возможно, вы захотите взглянуть на MongoDB. Это хранилище данных JSON, поэтому оно по существу работает с парами ключ / значение, и вы можете вкладывать JSON в JSON. Он использует JavaScript в качестве языка запросов. Конечно, вам нужно преобразовать данные в JSON, но это не сложно.

Другим вариантом может быть графовая база данных, такая как Neo4j. Каждая запись является узлом, и вы можете определить отношения между узлами (визуализируются как ребра).

Я не думаю, что у любого из них есть какой-либо графический интерфейс, но их довольно легко запросить. MongoDB использует JS с привязками, которые можно использовать для вызова БД. Neo4j использует Java, но есть некоторые привязки для других языков.

SQL-запросы могут быть сложными, но они будут работать. Я также добавлю PostgreSQL в качестве опции, поскольку он несколько объектно-ориентирован, но я больше знаком с остальными.

...