scidb.ru-about

Scidb.ru

Введение

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

Отметим общие проблемы современной науки, связанные с увеличивающимся потоком данных (сейчас это сотни терабайтов, в ближайшие 10 лет - это десятки-сотни петабайтов):

  • количество "сырых" данных только увеличивается и их необходимо хранить вечно, так как может потребоваться их переобработка;
  • очень сложная процедура получения научных данных из "сырых" данных. Развитие сенсоров только увеличивает разрыв между "сырыми" данными и научными данным, и зачастую требуются большие вычислительные ресурсы для получения научных данных;
  • Научные данные часто хранятся в двух видах - метаданные в БД и данные где-то в файловой системе (современные БД не приспособлены для эффективной работы с терабайтами бинарных данных), требуется поддерживать их целостность. Для доступа и обработки исходных данных научным коллективам приходится разрабатывать свои программные системы под каждую конкретную задачу. При таком подходе очень трудно поддерживать версионность данных, историю их изменений, получение научных результатов из "сырых" данных, что нарушает один из основных принципов науки - повторяемость научных результатов;
  • сложная организация проектов - много участников, разные источники финансирования, что определяет необходимость поддержки определенной политики доступа к данным;
  • распределенность данных - данные хранятся в разных научных центрах для локализации трафика, по физическим причинам, резервирование данных, масштабирование нагрузок;
  • очень трудно отслеживать изменяемость данных, например, изменилась процедура обработки "сырых" данных, добавились новые данные, итд; Данные должны сопровождаться информацией о происхождении (источник, автор, качество,..). Это очень важно, так как в науке нередки запросы, в которых участвуют данные из разных архивов и надо быть уверенным, что, например, устраивает качество данных. Это называется data provenance, lineage, pedigree. Очень важный аспект data provenance - это query inversion. Представим, что у вас на сайте публикуется автоматически сгенеренный по базе данных график чего-то, и в одно прекрасное утро вы видите какие-то важные изменения и естественное желание ученого узнать из-за чего это произошло заставляет его рыться в базе, программах, разного рода логах поступления данных, работы коллег итд. Это безумно тяжелая работа ! Более строго можно сказать так: Найти какие записи в БД (изменения в каких записях) повлияли на туплы в результате работы запроса, т.е. - это обратная задача к обычному запросу.
  • Аннотирование данных - это возможность хранить пометки разной степени подробности - на уровне таблицы, на уровне конкретного значения.
  • популярные задачи анализа данных, поиска зависимостей в сверхбольших базах данных являются крайне неэффективными в силу немасштабированности архитектуры классических СУБД;
  • очень большое разнообразие типов данных и запросов - трехмерные объекты, временные ряды, треки элементарных частиц и т.д.;
  • нет поддержки работы с данными,которые имеют погрешность измерений;
  • требование получения "быстрых" результатов ("Early Science");

Еще одна особенность современных научных экспериментов - это сочетание распределенного хранилища данных с необходимостью доступа к высокопроизводительным вычислительным комплексам для получения научных данных и их анализа. Такие вычислительные комплексы в настоящее время в основном используются для решения расчетных задач, не требующих работы со сверхбольшими данными. Однако, и в задачах численного моделирования появились требования к возможности сохранения текущего состояния в СУБД, например, расчет космологической эволюции Вселенной требует сотни гигабайт для сохранения одного "слепка" Вселенной. Подобные расчеты ведутся на распределенных кластерах с тысячами процессоров и возможность работы с такими данными в СУБД позволяет проследить историю эволюции отдельных объектов Вселенной (частицы, звезды, галактики, скопления галактик…).

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

Организация хранения и доступа к очень большим научных данных на современном этапе

Что такое очень большие базы данных ? Следует различать базы данных как хранилища метаданных, которые содержат очень большое количество записей с активным доступом и базы данных, ориентированных на архивное хранение очень больших бинарных объектов.

  • На сегодня официально анонсирована самая большая в мире база данных с активным доступом - Yahoo Everest, которая на май 2008 года имела хранилище размером более 2 Pb, несколько триллионов записей, с ежедневным поступлением около 24 млрд событий и более 1/2 миллиарда пользователей в месяц. В 2009 году база данных доросла до 10Pb. Интересно отметить, что Yahoo Everest - это свободная СУБД PostgreSQL с распределенным вертикально-ориентированным хранилищем и поддержкой кластеризации. В 2010 году стало известно, что Yahoo рассматривает переход на Hadoop. Из планируемых научных экспериментов выделяются
  • Большой Адронный Коллайдер (LHC, http://lhc.web.cern.ch/lhc/), который ежегодно будет производить около 15 Pb данных, распределенное хранилище будет состоять из примерно 200 центров данных по всему миру
  • большого телескопа для обзора неба (LSST, http://www.lsst.org), с диаметром зеркала 8.4 метра и матрицей размером 3.2 Гп (гига-пикселей). Ожидается наполнение БД в 49 миллиардов объектов (256 атрибутов), 2.8 триллиона источников (56 атрибутов). К 2025 году ожидается накопить 14 Pb данных !
  • Российский Космический Эксперимент "Лира" (КЭ Лира), который разрабатывается в ГАИШ-МГУ совместно с РосКосмос, планирует получение около 400 терабайтов сырых данных для получения многополосной высокоточной фотометрии звезд всего неба, в результате которого будет проведен большой ряд однородных наблюдений более 400 миллионов звезд.

Гигантские объемы данных полностью исключили традиционный раннее способ работы - загрузка данных на сервер для обработки. Причем, основная проблема состоит даже не в стоимости хранилища, а в стоимости каналов связи.

Современные научные эксперименты представляют собой сложный комплекс уникальных приборов, требующих специализированных методов обработки получаемых "сырых" данных, практически всегда несовместимых друг с другом.

Совершенно очевидно, что старый подход, когда необходимые данные просто скачивались тем или иным способом на компьютер для обработки, совершенно непригоден. Требуется новая технология, которая позволяет передавать программы в центры данных, там их исполнять и предоставлять пользователю только результаты. Новый подход требует соглашений о том, как находить ресурсы (центры данных), каким образом и в каком виде эти данные надо передавать, какие программные интерфейсы необходимы для написания программ и какова политика использования ресурсов.

Для организации процесса обработки данных (pipeline), который может быть очень трудоемким, поисковых задач требуется доступ к GRID центрам, что также требует определенных соглашений (см. проект GRIST, http://grist.caltech.edu).

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

Отметим, что требуется обеcпечить прежде всего не интерактивную работу с данными, а программный доступ к ним, чтобы можно было автоматизировать рутинные работы обработки наблюдений, поиска данных.

Проблемы развития баз данных

Что изменилось ?

  • Много данных - порог петабайтных БД преодолен
  • Данные стали разными, новые запросы - многомерные данные, запросы не ограничиваются операциями сравнения, например, найти 10 самых похожих изображений.
  • Много запросов, другие требования к производительности и расширяемости - новые технологии (AJAX), динамические документы, увеличилось кол-во запросов, требование выполнение десятые доли секунды
  • Клиенты стали другими - раньше были операторы, сейчас в основном это бездушные клиенты, большей частью через http, большой уровень конкурентности
  • Компьютерные технологии изменились
    • Классические RDBMS <- system R
      • 1 большой $$$$ компьютер (mainframe)
      • БД не помещалась в оперативную память - дисковые структуры, индексы
      • Треды как квазипаралелльность
    • Компьютерный мир изменился
      • «Железо» дешевое, много RAM, много ядер
      • Распределенность: кластеры-датацентры
      • Быстрые и широкополосные сети

Что делается ?

  • Добавляются новые расширения на основе встроенных средств расширяемости. Например, СУБД PostgreSQL имеет GiST, GIN, с помощью которых сильно улучшена работа со множествами, реализован полнотекстовый поиск.
  • Создаются специализированные СУБД, ориентированные на специфические типы данных, специфические условия. Например, в связи с появлением дешевых сенсоров возникла необходимость в работе с потоками данных, когда сами данные не важны, а интересны только агрегаты, такие как средняя температура, и т.д. Традиционные СУБД имеют большие накладные нагрузки (транзакционность, хранение на диске,..). Пример потоковых данных - StreamBase (http://www.streambase.com/) Другой пример - встроенные (embedded) СУБД (sqlite, tinyDB) используются в специализированных приборах. Появились XML базы данных для хранения слабо-структурированных данных (http://en.wikipedia.org/wiki/XML_database). Документо-ориентированные БД ( http://en.wikipedia.org/wiki/Document-oriented_database) работают не с таблицами с фиксированными полями, а с записями, которые содержат произвольное количество пар (ключ,значение).
  • СУБД используют в кластерах для масштабирования. Современная тенденция - это использование полностью независимых дешевых компьютеров. Промежуточный слой (middleware) между приложением и кластером отвечает за маршрутизацию запросов и результатов. Такая схема позволяет легко масштабировать и следить за сохранностью данных. Пример Sequoia(http://community.continuent.com/community/sequoia),uni/cluster для PostgreSQL, MySQL (http://www.continuent.com/). \ Другой подход - это использование технологии Cloud Computing для масштабирование как по хранилищу, так и по числу процессоров, например PostgreSQL Plus компании EnterpriseDB.
  • Специализированные сервера с использование сопроцессоров (FPGA), например XtreemeData http://www.xtremedatainc.com/, модифицированный PostgreSQL, интегрированный в FPGA, для аналитических систем (OLAP)(прокачивает данные 1Tb/min)
  • Модифицируется ядро СУБД для поддержки параллелизма (AsterData, GreenPlum), что позволяет один запрос выполнять на нескольких компьютерах. Приложение - аналитические базы данных (OLAP).
  • СУБД упрощаются до поддержки типа данных (ключ,значение), нет поддержки соединений, результаты запросов передаются приложению, где и происходит окончательные вычисления. Примеры - Google BigTable (http://labs.google.com/papers/bigtable.html), Amazon SimpleDB (http://www.amazon.com/SimpleDB-AWS-Service-Pricing/b?ie=UTF8&node=342335011), HyperTable (http://hypertable.org/). Намеренная простота таких БД компенсируется великолепной масштабированностью как по дисковому хранилищу, так и по процессорам. Список NoSQL баз данных сейчас насчитывает около 40 баз данных.

Тем не менее, как считает видный участник DB-сообщества Майкл Стоунбрейкер, все это являются полумерами и требуется кардинальные изменения в технологии СУБД, а именно - изменение принципа хранения данных. Он считает, что эра обычных больших СУБД общего назначения прошла (http://www.databasecolumn.com/2007/09/one-size-fits-all.html) и требуется совершенно новые подходы для создания современной БД, которая с самого начала будет ориентирована на распределенность, параллельное исполнение запросов, компрессию, ориентацию на хранение по атрибутам, высокую доступность, линейное масштабирование с использование кластеров независимых серверов.

Традиционные СУБД хранят данные в виде записей, которые содержать все атрибуты (колонки). При чтении с диска поднимается вся запись, даже если запрашивается только один атрибут. Подобных накладных расходов можно избежать при хранении атрибутов отдельно - атрибутно-ориентированное (column-oriented) хранение. Их-за одинаковой природы данных они очень хорошо сжимаются, следовательно занимают меньше места на диске и требуют меньшее количество операций ввода-вывода, которые очень медленны и "убивают" всю производительность. Несмотря на то, что соединения нескольких таблиц для такого хранения представляется очень сложным, оказывается, что можно использовать алгоритмы поиска по сжатым данным и откладывать материализацию записей как можно дальше, что приводит к лучшей производительности, чем при традиционном хранении. Пример - Vertica (http://www.vertica.com/), распределенная ( GRID), аналитическая БД с вертикальным хранилищем - коммерциализия C-store (http://db.lcs.mit.edu/projects/cstore/)

Проблемы хранения очень больших научных баз данных

Анализ текущего состояния

Практически во всех областях науки ученые сталкиваются с задачами хранения и анализа больших объемов данных. При этом, данные могут быть как результатами экспериментов, так и полученными при численном моделировании. Анализ терабайтов и даже петабайтов научных данных становятся повседневными задачами.

Обычно, из-за низкой производительности современных систем, исходные данные научных наблюдений хранятся вне каких-либо СУБД, и только метаданные индексируются в базе данных. Для доступа и обработки исходных данных научным коллективам приходится разрабатывать свои программные системы под каждую конкретную задачу. При таком подходе очень трудно поддерживать версионность данных, историю их изменений, получение научных результатов из "сырых" данных, что нарушает один из основных принципов науки - повторяемость научных результатов.

Еще одна особенность современных научных экспериментов - это сочетание распределенного хранилища данных с необходимостью доступа к высокопроизводительным вычислительным комплексам для получения научных данных из результатов эксперимента и их анализа. Такие вычислительные комплексы в настоящее время в основном используются для решения расчетных задач, не требующих работы со сверхбольшими данными. Однако, и в задачах численного моделирования появились требования к возможности сохранения текущего состояния в СУБД, например, расчет космологической эволюции Вселенной требует сотни гигабайт для сохранения одного "слепка" Вселенной. Подобные расчеты ведутся на распределенных кластерах с тысячами процессоров и возможность работы с такими данными в СУБД позволяет проследить историю эволюции отдельных объектов Вселенной (частицы, звезды, галактики, скопления галактик…).

Сложившаяся ситуация в больших научных проектах была оценена ведущими учеными из разных наук,представителями коммерческих компаний и разработчиками в области СУБД (систем управления баз данных) на серии конференций XLDB 2007,2008,2009 гг, в результате чего возник проект SciDB под руководством профессора MIT Майка Стоунбрейкера и его коллег из крупнейших университетов США. Основная цель проекта - разработка в кратчайшие сроки СУБД для нужд больших научных и промышленных проектов, в которых требуется анализ сверхбольших объемов данных (сотни и тысячи петабайт), масштабируемая на тысячи серверов.

Новая СУБД для больших объемов научных данных

Система SciDB разрабатывается в первую очередь исходя из требований больших научных проектов и имеет ряд принципиальных отличий от существующих СУБД. SciDB разрабатывается как система для хранения и анализа сырых и производных научных данных. Некоторые основные функции традиционных баз данных не поддерживаются в SciDB, позволяя системе более эффективно обрабатывать аналитические запросы. Например, так как исходные данные фактически не обновляются, в SciDB не предусмотрена эффективная поддержка больших объемов транзакций, что позволяет избежать серьезных накладных расходов. Наконец, SciDB – проект с открытым исходным кодом и бесплатной лицензией на использование, что отвечает требованиям большинства заказчиков. Открытый код позволяет экономить средства заказчиков на масштабные внедрения системы, а открытый процесс разработки обеспечивает высокое качество технических решений. Кроме того, открытость СУБД обеспечивает технологическую независимость и возможность обмена данными между разными научными коллективами.

Кроме привычных функций систем управления базами данных, в SciDB присутствуют новые механизмы работы с данными, специально разработанные для анализа научных данных. Модель данных SciDB представляет из себя многомерные вложенные массивы, таким образом ученым не надо моделировать свои данные как таблицы записей, что в свою очередь ведет к более простой формулировке аналитических запросов и на порядки увеличивает производительность системы. Так как в SciDB будут хранится данные полученные с приборов, SciDB поддерживает погрешность измерений на уровне модели данных и языка запросов. Наконец, SciDB изначально разрабатывается для работы на большом спектре вычислительных систем, от переносного ПК до больших кластеров и суперкомпьютеров. Таким образом, ученые смогут работать с данными в одной среде, например отлаживая аналитические алгоритмы на персональных компьютерах используя небольшую выборку данных, а отлаженные запросы без изменений запускать на высоко-производительных кластерах. Также, SciDB интегрируется с популярными вычислительными пакетами программного обеспечения, такими как R, Matlab и другие, что позволит ученым использовать уже готовые алгоритмы обработки данных при переходе на SciDB.

Новизна

Основные характеристики разрабатываемой СУБД:

  • хранение "сырых" данных, их обработка происходит в самой СУБД с помощью пользовательских процедур для обеспечения версионности и истории изменения данных (новая идея) - полноценная поддержка полного цикла работы с научными данными;
  • Модель описания научных данных - это многомерный вложенный массив (новая идея);
  • Вертикальное (поатрибутное) хранение данных для компрессии и уменьшения операций ввода-вывода;
  • Сохранность данных за счет репликации части данных на разных узлах системы;
  • Масштабируемость СУБД от ноутбука до x1000 серверов для хранения x10 петабайтов;
  • Расширяемость типов данных и запросов;
  • Отказ от поддержки транзакций. Для научных данных не нужны транзакции (WORM - Write Once Read Many), которые сильно усложняют архитектуру СУБД и вносят существенные расходы на их поддержание. ACID - традиционная архитектура, в сетевом окружении это невозможно (см. CAP теорему Брюера http://www.julianbrowne.com/article/viewer/brewers-cap-theorem и ссылку на оригинальную статью) - невозможно добиться одновременно целостности (Consistency) данных, доступности (Availability) данных и распределенности (Partitioning). В наших условиях, когда мы не можем обойтись без распределенности данных (слишком много их), надо выбирать между целостностью и доступностью. Доступность данных тоже является важным условием для науки, а требование целостности смягчается до условия 'eventual consistency' (когда-нибудь, не прямо сейчас), что вполне достаточно для научных данных в силу WORM.

Полноценная поддержка полного цикла работы с научными данными

Как упоминалось раньше, из-за недостатков существующих СУБД, большинство научных проектов, в которых встает задача анализа больших объемов данных, осуществляют обработку и анализ исходных данных вне системы управления базами данных. SciDB решает эту проблему, обеспечивая эффективное и удобное хранилище исходных данных и широкий набор инструментов для обработки и анализа данных. Версионное хранилище и учет всех преобразований данных позволяет пользователям SciDB получить точную информацию о версиях данных и о всех вычислениях, произведенных над исходными данными. Это позволяет эффективно устранять ошибки в алгоритмах переработки данных, отслеживать процесс переработки исходных данных при получении подозрительных результатов, и в точности повторять вычисления над исходными данными. При этом SciDB работает без каких-либо ограничений, как на суперкомпьютерном кластере, так и на персональном компьютере, что позволит ученым работать в одной и той же среде со своими данными. После переработки исходных данных, SciDB позволяет делиться полученными результатами, осуществлять выборки и выполнять аналитические запросы широкому кругу коллег, при этом соблюдая произвольный политику доступа как к данным, так и полученным результатам.

Сотрудничество с ведущими научными проектами

SciDB разрабатывается в тесном сотрудничестве с ведущими научными проектами – потенциальными заказчиками системы. В научный совет SciDB входят ученые от различных направлений науки, включая: астрономию, нанотехнологии, генетику, сейсмологию, ядерную физику, метеорологию, и др. При этом, два проекта, LSST (Large Synaptic Survey Telescope) и российский космический проект ЛИРА (многоцветный фотометрический обзор всего неба до 16-17 звездной величины), предоставили детальные требования для использования SciDB в своих системах и часть исходных данных. Следовательно, система SciDB разрабатывается прямо под требования заказчиков и проходит апробирование на реальных задачах уже в процессе разработки.

Космический Эксперимент "Лира"

Цель КЭ - это первый российский высокоточный многоцветный фотометрический обзор звезд всего неба до 16-17 звездной величины, над которым работают ГАИШ-МГУ (Государственный Астрономический институт им. П.К. Штернберга, Московский Государственный Университет им. М.В.Ломоносова) и ОАО РКК "Энергия" контракт No.351-8623/07 от 05.06.2007 г.. В обзор войдут около 400 млн. звезд. Уникальная методика наблюдений позволит получить точность измерения блеска для звезд предельной величины около 1%, а для ярких звезд (ярче 12 зв. величины) - 0.1%. Измерения будут вестись в 10 спектральных полосах от 0.2 до 1.0 мкм (т.е. в оптическом и близком УФ и ИК диапазонах) с борта Российского сегмента МКС. Ожидаемый старт проекта - 2013 год. На протяжении 5 лет ожидается получить около 400 Тб данных, для хранения и обработки которых потребуется масштабируемое распределенное хранилище и мощный вычислительный кластер для получения научных данных их наблюдений и решения задач поиска закономерностей (data mining). Кроме того, планируется предоставить доступ к данным международному научному сообществу.

Уникальность проекта "Лира":

  • Единственный в мире обзор всего неба в 10 полосах от ультрафиолета до ближнего ИК-диапазона
  • Высокая фотометрическая точность наблюдений
  • Высокая однородность наблюдений

В результате выполнения проекта будут получены важнейшие научные результаты:

  • Высокоточный многоцветный каталог фотометрических стандартов для атмосферных и внеатмосферных наблюдений
  • Многоцветный каталог переменных звезд объемом больше 30 миллионов звезд
  • Построена трехмерная структура нашей Галактики (по межзвездному поглощению в ультрафиолете)
  • Получены данные о физических характеристиках повехности астероидов

Текущий статус SciDB и планы развития

  • Сформированы международные команды исследователей и разработчиков под руководством крупнейших авторитетов в области баз данных (Стоунбрейкер,ДеВитт,Майер и другие)
  • Разработан прототип системы, который был представлен на крупнейших международных конференциях SIGMOD 2009 (Providence, USA) , VLDB 2009 (Lyon, France)
  • На основе прототипа в первом квартале 2010 года планируется первая публичная версия SciDB для ознакомления научной общественностью.
  • Ведутся периодические телефонные конференции для выработки совместных планов работы над следующей версией SciDB
  • Американские исследователи и разработчики получили частичное финансирование от американских научных фондов
  • К 2012 году планируется начало тестирование SciDB в проекте LSST

Российская команда разработчиков SciDB

Российские разработчики (НИИСИ РАН) приняли участие уже на самом раннем этапе работы над SciDB и заняли лидирующие позиции среди сновных разработчиков.

В дальнейшем к команде присоединились ведущие российские разработчики (ГАИШ МГУ) крупнейшей СУБД PostgreSQL, имеющие опыт не только в разработке СУБД, но и участия в крупных научных проектах и работе с очень большими базами данных. ГАИШ МГУ в рамках подготовки КЭ "Лира" работает над списком научных задач, выработкой требований, а также располагает серьезной инфраструктурой, необходимой для разработки и тестирования СУБД.