2008-10-22 5 views
2

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

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

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

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

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

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

То, что я не увлекаюсь, - это решения «blobs-in-rel-db». Кажется, что это взломать и не позволяет эволюционировать данные, индексировать FT и т. Д.

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

ответ

-1

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

0

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

+0

Данные полуструктурированы, но структуры, как правило, не соответствуют никакому другому документу/файлу. – 2008-10-22 22:44:02

1

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

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

1

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^