Объявлено о выходе SciDB 11.06, первого стабильного релиза проекта по созданию свободной СУБД для использования в области обработки научных данных, полученных в результате экспериментов и наблюдений. В качестве примеров областей, в которых может использоваться СУБД, называется хранение и анализ наблюдений в оптической и радио астрономии, сейсмологии, генетике, океанографии, геологии, климатических и экологических наблюдениях. Кроме научного применения SciDB может использоваться для обработки статистики работы различных сенсоров в нефтедобывающей отрасли и медицинских учреждениях, выполнения финансовой аналитики. СУБД спроектирована для анализа огромных массивов данных (тысячи петабайт) и изначально поддерживает кластеризацию, масштабируясь от одного сервера до десятков тысяч узлов. Код SciDB распространяется в рамках лицензии GPLv3.
Примечательно, что инициатором проекта SciDB выступил Майкл Стоунбрейкер, создатель СУБД Ingres, VoltDB и PostgreSQL, а в разработку были вовлечены российские научные учреждения, такие как НИИСИ РАН и ГАИШ МГУ (сотрудники данных организаций давно участвуют в разработке СУБД PostgreSQL). SciDB не похожа на классические СУБД и в ущерб поддержке некоторых привычных возможностей оптимизирована для обработки и анализа "сырых" данных, которые интенсивно читаются, но почти не изменяются. СУБД не рассчитана на обработку транзакций в реальном времени (OLTP), не поддерживает ACID (атомарность, непротиворечивость, изоляция, долговечность) и журналирование, обеспечивая транзакции лишь на минимальном уровне.
Возможности SciDB сосредоточены вокруг сложной аналитики, для которой стандартная реляционная модель оказывается неэффективной - хранилище оптимизировано для единовременной записи мало структурированных данных и их последующего интенсивного чтения. Вместо добавления отдельных строк, применяется подход загрузки сразу больших порций данных. Хранение данных организовано в виде многомерных вложенных массивов, для обработки которых вместо SQL задействованы языки AQL (Array Query Language) и AFL (Array Functional Language).
AQL напоминает SQL, но предназначен для формирования запросов к многомерным массивам вместо множеств, т.е. позволяющий учитывать соседние позиции элементов при помощи оператора REGRID, выполняющего действия сходные с MapReduce. Для обработки данных внутри СУБД подготовлен язык AFL, которые позволяет создавать встраиваемые процедуры. Пример обработки данных подробно описан в данной статье.
Важной особенностью SciDB является наличие поддержки версионного контроля данных и учета всех операций над ними, что позволяет отследить все манипуляции, выполняемые над данными, и при необходимости в точности повторить аналитический запрос (над тем же набором данных в состоянии на момент прошлого запроса) или выполнить его в измененном виде (откорректировать алгоритм). Подобный подход, в сочетании с гибкими средствами обмена данными (экспорт не только данных, но и истории операций над ними), позволяет сторонним исследователям на своих локальных системах повторять эксперименты других групп. Аналитические дополнения к SciDB можно разрабатывать на языках, подобных C++ и Python. Присутствуют готовые модули для интеграции с такими вычислительными пакетами, как R, Matlab и IDL, позволяя использовать уже существующие алгоритмы обработки данных.
|