Базы данных, которые могут обрабатывать полуструктурированные данные? - PullRequest
2 голосов
/ 22 октября 2008

Кроме CouchDB и собственных баз данных XML (таких как eXist ), какие базы данных могут хранить и запрашивать неструктурированные и полуструктурированные данные?

Мне было передано много данных в разных форматах (XML, JSON, YAML, CSV, некоторые пользовательские форматы), с которыми мне нужно объединиться и работать, но разработка схемы в реляционной базе данных займет много времени и сложно.

В основном я смотрю на решения с открытым исходным кодом. Кроме того, в какой-то момент я бы хотел как-то сделать эти данные доступными.

Я понимаю, что будут некоторые издержки при преобразовании всех этих данных в общий формат для работы. Есть несколько хороших вариантов на фронте XML: eXist-db и BerkeleyDB-XML, кажется, имеют хорошую поддержку XQuery.

Кроме того, CouchDB, несмотря на свою молодость, выглядит многообещающе благодаря простому формату «документа».

Другие пути, на которые я смотрел, - это OODBMS, такие как ZODB и db4o; написать несколько простых сценариев синтаксического анализа, а затем просто сохранить полученный объект записи «как есть». Проблема заключается в том, чтобы опрашивать их потом; У OODBMS, похоже, нет хорошей истории механизмов запросов.

Что меня не интересует, так это решения типа "blobs-in -alal-db". Выглядит как хак и не учитывает эволюцию данных, индексацию FT и т. Д.

Есть ли другие решения, с которыми я не сталкивался?

Ответы [ 5 ]

1 голос
/ 31 января 2009

Если вы хотите что-то очень общее, вы можете использовать RDF-магазин. С помощью RDF вы строите график, который оказывается хорошей абстракцией для полуструктурированных данных. Вы просто даете графику структуру, присущую вашим данным. В этом контексте интересным может быть документ Запрос данных RDF из перспективы базы данных графиков (или слайды ).

Более простым способом является более непосредственная работа с абстракцией графа с использованием базы данных графов, подобной neo4j . Это проект с открытым исходным кодом (и я являюсь его частью). Графическая база данных не привязывает ваши данные к конкретному приложению, как это обычно делают OODB. И это также не заставляет вас использовать статические схемы, в которые вы должны вписать свои данные.

1 голос
/ 22 октября 2008

Большинство современных СУБД поддерживают тип данных xml, представьте, что документ xml - это значение в поле таблицы, а XPath / XQuery позволяет получить данные из значения. Аналогично, вы можете использовать тип данных CLOB для представления большого блока символов (то есть неструктурированного документа); в этом случае Oracle, SQL Server и другие имеют расширения для выполнения текстового поиска в этих полях.

Круто то, что эти полу / неструктурированные средства поиска реализованы как операторы, доступные из sql, так что вы можете смешивать результаты этих поисков с вашими структурированными запросами; поддержание согласованного реляционного представления для клиентских приложений. В паре проектов мы хранили собственные XML-данные внутри БД Oracle и использовали стандартные представления SQL для проецирования данных в структурированном виде.

0 голосов
/ 22 октября 2008

IBM DB2 версии 9 поддерживает PureXML .

0 голосов
/ 22 октября 2008

Если вы действительно храните неструктурированные данные - или вы не планируете индексировать на основе структуры документа - тогда я думаю, что полнотекстовая поисковая система, такая как Lucene , будет вам полезна. На developerWorks есть более старая, но информативная статья по обработке XML с помощью Lucene.

0 голосов
/ 22 октября 2008

Microsoft SQL Server имеет тип столбца XML, начиная с 2005 года.

...