Архив выступлений: 2013-2014 учебный год, весенний семестр
Аннотация доклада.
Астрономия оперирует огромными объемами данных, поток которых непрерывно увеличивается вследствие успехов технологии производства высокочувствительных в разных диапазонах электромагнитого спектра и доступных сенсоров большого размера. Спецификой астрономических данных является их привязка к координатам на небесной сфере, что усложняет поисковые алгоритмы. Следует отметить, что с математической точки зрения астрономические данные не отличаются от данных, с которыми работают геоинформационные системы. Выбор СУБД для работы с астрономическими данными, таким образом, определяется (помимо стандартных требований) способностью эффективной работы с пространственными данными. В рамках проекта Виртуальной Обсерватории в ГАИШ МГУ нами были проведены исследования по применимости свободной СУБД PostgreSQL для хранилища астрономических каталогов и обеспечения основных сервисов. На выбор PostgreSQL повлияли следующие обстоятельства:
- PostgreSQL является наиболее продвинутой и зрелой из свободно-распространяемых СУБД с либеральной лицензией BSD;
- существует большое сообщество разработчиков и пользователей СУБД, в число которых входят и авторы;
- PostgreSQL является расширяемой СУБД, что позволило нам дополнить существующую функциональность новыми возможностями, направленные на эффективную работу с пространственными данными;
- PostgreSQL широко используется для работы с пространственными данными, в частности, его расширение PostGIS является наиболее известным OSS-решением для геоинформационных систем и совместимым с известными ГИС платформами как ArcGIS, QGIS.
Сравнивалась производительность нескольких алгоритмов работы с пространственными данными (более 10^9 астрономических объектов). Тестировались два основных астрономических запросов - радиальный запрос, который находит все объекты вокруг заданной точки в круге заданного радиуса, и кросс-матч (distant-base join), который сопоставляет два набора объектов по координатам (и иным атрибутам). В процессе работы удалось серьезно улучшить производительность существующих реализаций алгоритмов и получить рекомендации по их наиболее эффективному использованию, в зависимости от вида нагрузки.