Научные вызовы СУБД и система SciDB Павел Велихов Sunday, April 24, 2011
Jun 16, 2015
Научные вызовы СУБД и система SciDBПавел Велихов
Sunday, April 24, 2011
Sunday, April 24, 2011
e-Science
Наука организуется вокруг данных
Крупные проекты по сбору и диссеминации данных
LHC Grid: 50+ стран, 200+ институтов
Open Grid, Virtual Observatory, GEON Grid, PDB...
Sunday, April 24, 2011
Пример: PDB (SDSC)
Sunday, April 24, 2011
Лавина данных
Раньше bottleneck был в получении данных
Сенсорные технологии перевернули картину
Сейчас bottleneck = анализ полученных данных
Sunday, April 24, 2011
Лавина данных
Физика высоких энергий - LHC: 15 Pb/год
Астрономия - LSST: 6 Pb/год
Астрономия - ЛИРА: 200-300 Tb
Науки о земле: сотни Tb (например LIDAR)
Геномика: сотни Tb с секвенсеров
Sunday, April 24, 2011
Проект ЛИРА
Sunday, April 24, 2011
Сложные сенсоры
На примере астрономии
Как было раньше
ПЗС матрица
ЛИРА
Sunday, April 24, 2011
Хранение и обработка данных
Надо хранить самые сырые данные
Процедура извлечения научных данных должна быть прозрачной и повторимой
Sunday, April 24, 2011
Анализ
Анализ численных рядов
Поиски в окрестностях точек
N^2 и N^3 алгоритмы
ковариация, PCA, SVD
Sunday, April 24, 2011
Современные СУБД
Реляционная модель или noSQL
Плохо масштабируются
High Availability - сложно дается
Закрытый код, дорогие лицензии
Почти ни один крупный проект не использует СУБД
Sunday, April 24, 2011
Кто как хранит
данные в файлах, немного метаданных в СУБД
LHC
сырые в файлах, вторичные в СУБД
PanSTARRS, LSST
доморощенные системы
Yahoo, Google, Amazon, и другие
Все в СУБД
Wallmart, eBay, SDSS
Sunday, April 24, 2011
SciDB
Sunday, April 24, 2011
SciDB
Проект стартовал в 2008 г
Основатели проета:
Stonebraket, DeWitt, Becla и др.
Международная комманда, 5 российских разработчиков
Sunday, April 24, 2011
Mike StonebrakerIngres
PostgresIllustraCoheraVerticaVoltDB
Sunday, April 24, 2011
Цели SciDB
“OLAP” для науки
Система с открытым кодом
Качество коммерческих продуктов
Масштабируемость до петабайт
Sunday, April 24, 2011
Большая цельСырые данные
SciDBХранение, обработка,
анализ
Воспроизводимые научные результаты
Sunday, April 24, 2011
Модель данных SciDBi
j A : int B : float C : float D : nested
Sunday, April 24, 2011
Вертикальное хранение
a1 a2 a3
a4 a5 a6
a7 a8 a9
b1 b2 b3
b4 b5 b6
b7 b8 b9
c1 c2 c3
c4 c5 c6
c7 c8 c9
Sunday, April 24, 2011
Хранение
Чанк как единица хранения и обработки
Чанки большие - десятки-сотни мегабайт
Иногда подразделяются на подчанки для cpu cache (мегабайты)
Sunday, April 24, 2011
Транзакционность
Научные данные не меняются
Изменения только как новая версия
Навигация между версиями
Sunday, April 24, 2011
Транзакционность
Eventually consistent
COW и Delta
Избегаем большого количества замков, лога, управления буфферами
Избегаем накладных расходов современных СУБД
latching, locking, logging, buffer management
Sunday, April 24, 2011
Анализ данных
AQL и AFL
AFL: filter( subsample(A, 10, 100), x > 0.5 )
Специфические операторы: subsample, regrid
Sunday, April 24, 2011
Subsample
Sunday, April 24, 2011
Regrid i
jSrc
u
vTgt
assign: (u,v) -> { (i,j) }aggregate: f (assign(u,v)) -> tgt
Sunday, April 24, 2011
Пример запроса
S: <x:float>[i,j]T: <z:float>[u,v]regrid(
S,T,assign: subsample(s, [k-10,l-10,k+10,l+10])agg: sum( x * ae-(i-b)^2/2c^2)
Sunday, April 24, 2011
Конвейерное выполнение
Пример: subsample
интерфейс: getChunk( attribute, pos )
пересылаем вниз: getChunk( attribute, pos + offset)
если чанк внутри окна опрератора, передаем вверх
иначе: распаковываем, обрезаем, передаем вверх
Sunday, April 24, 2011
Параллелизм в SciDB
core
overlap
Sunday, April 24, 2011
Параллелизм в SciDB
Оптимизатор запроса расчитывает хватит ли overlap для запроса
Докидывает доп. данные оператором Scatter-Gather
Sunday, April 24, 2011
Параллелизм
f
g
f*g
core
overlap
Свертка: f*g
Sunday, April 24, 2011
Параллелизм
Также: распределение по колонкам и столбцам, и блочно-циклическое как в ScaLAPACK
Send, Recive как в MPI
Sunday, April 24, 2011
Дополнительные возможности
Uncertainty - арифметика интервалов
Provenance
отслеживание результатов
playback
Sunday, April 24, 2011
Расширяемость
User Defined Types - модель PostgreSQL
UDF - произвольные функции над массивами
Интерфейсы к Python, R, Matlab(?)
Sunday, April 24, 2011
Статус
Сентябрь 2009 демонстрация прототипа на VLDB
Январь 2011 - выпуск версии 0.75
Май 2011 - выпуск версии 1.0
Sunday, April 24, 2011
Немного о структуре
SciDB Inc.
paradigm4НБД
Non-profit
Sunday, April 24, 2011
Q&A
Sunday, April 24, 2011