260 likes | 484 Views
Распределенное хранение и визуализация массивов научных данных и изображений. Дмитрий Медведев, Александр Новиков ГЦ РАН, ИКИ РАН. Примеры использования многомерных массивов. 3D / 4D / 5D /…. 1D. 2D / 3 D. Спутниковые снимки Моделирование. Наблюдения. Моделирование. Файлы.
E N D
Распределенное хранение и визуализация массивов научных данных и изображений Дмитрий Медведев, Александр Новиков ГЦ РАН, ИКИ РАН
Примеры использования многомерных массивов 3D / 4D/ 5D /… 1D 2D / 3D Спутниковые снимки Моделирование Наблюдения Моделирование
Файлы • Большинство научных данных хранится и передается в виде файлов • Существует много различных форматов файлов, которые используют похожие структуры данных(GRIB, SAO, WDC, Intermagnet, различные варианты ASCII таблиц) • К коллекции файлов сложно организовать удаленный доступ, предполагающий много различных запросов • Многие форматы не поддерживают интегрированные метаданные • Большие коллекции файлов сложно обслуживать • Удачные примеры: netCDF, HDF5
Реляционные базы данных • Удобное хранение метаданных • Простая организация удаленного доступа • Простое обслуживание • Реляционная модель плохо подходит для многомерных массивов • Реляционная модель слишком общая, для каждого набора данных приходится создавать БД с нуля
ActiveStorage • Основана на реляционной СУБД • Сочетает преимущества реляционной СУБД и непрерывных числовых массивов • Операции для работы с массивами реализованы в виде хранимых процедур
Способы организации массива в базе данных 1), 2) 3) 0 1 2 3 1) Традиционная РСУБД 0,0,A[0,0], 0,1,A[0,1], 0,2,A[0,2], 0,3,A[0,3], … , 3,0,A[3,0], 3,1,A[3,1], 3,2,A[3,2], 3,3,A[3,3] строка 2) Колоночная СУБД 0,0,0,0,…,3,3,3,3, 0,1,2,3,…,0,1,2,3, A[0,0],A[0,1],A[0,2],A[0,3],A[1,0],A[1,1], … ,A[3,0],A[3,1],A[3,2],A[3,3], столбец 3)Подход, используемый в ActiveStorage 0,A[0,0],A[0,1],A[1,0],A[1,1], 1,A[0,2],A[0,3],A[1,2],A[1,3], 0,A[2,0],A[2,1],A[3,0],A[3,1], 1,A[0,2],A[0,3],A[1,2],A[1,3], блок
Архитектура существующих решений SciDB (2010) ActiveStorage (2007) RasDaMan (1999) РСУБД РСУБД Данные + метаданные Данные + метаданные ? Процедуры обработки Сервер RasDaMan Клиентская библиотека Клиентская библиотека
Разбиениемногомерного массива на блоки Целый массив Массив, разбитый на блоки 1 операция 8 операций 4 операции 4 операции • При каждой операции чтения считывается блок целиком • Блоки хранятся в виде двоичных объектов (BLOB) в ячейках таблицы • Блоки могут быть разной формы и размера
Таблица данных и таблица-указатель • Для каждого нового массива автоматически создаются две таблицы: • Таблица данных • Таблица-указатель Таблица данных хранит содержимое массивов в виде блоков. Таблица-указатель содержит информацию о размере каждого блока и его положении в целом массиве. Эта информация также дублируется внутри самого блока, в его заголовке.
Индексирование блоков блок Используется иерархическое разбиение на прямоугольные области одинакового размера. Это позволяет эффективно использовать B-tree индексирование, встроенное в СУБД.
Common Data Model Модель данных Common Data Model (CDM) используется в специализированных форматах хранения данных netCDF and HDF5. Основное назначение CDM – представление многомерных численных массивов.
Схема обработки запроса 2. Передача запроса СУБД 1. Инициализация запроса SQL Server Приложение Клиентская библиотека 3. Выбор требуемых фрагментов массив из нескольких блоков 3. Передача фрагментов массива клиенту 4. Соединение фрагментов массива
Параллельная обработка запроса SQL Server БД 1 Приложение Клиентская библиотека SQL Server БД 2
Параллельная обработка запроса 1 сервер 4 сервера
Версии ActiveStorage Сервер – Windows Клиент – Windows/Linux Сервер – Windows/Linux Клиент – Windows/Linux СУБД Microsoft SQL Server 2008 СУБД PostgreSQL CLR PL/Java Клиентская библиотека .NET Клиентская библиотека Java Клиентская библиотека Java
Приложения • Глобальный реанализ погоды NCEP/NCAR • Спутниковые снимки DMSP (ночные огни) • База данных метеонаблюдений NCDC ISD
Глобальный реанализ погоды NCEP/NCAR • Постоянно обновляемые данные на сетке • Реальные наблюдения используются как исходные данные для моделирования • 74 параметра • 5000 файлов netCDF , размер одного файла 30 – 500 MB • Время: • 1948 – 2008 • каждые 4 часа • Сетки двух видов: • Регулярная сетка, 2.5 x 2.5 градуса • Гауссова сетка T62, 192 x 94
Глобальный реанализ погоды NCEP/NCAR • Типичные запросы: • Карта температур на район в определенный момент времени (2D-массив) • Временной ряд температур в одной точке за длительный период (1D-массив)
Структура базы данных NCEP/NCAR Weather Reanalysis Database Group: “ns5” Group: “ns2” Group: “ns4” Group: “ns1” Group: “ns3” “time” “time” data data data data “lat” data “lat” data “lon” “lon” “level” ns1 – 3D массив, регулярная сетка ns2 – 3D массив, гауссова сетка ns3, ns4, ns5 – 4D массив, регулярная сетка
Спутниковые снимки DMSP F10, 1992 4801 x 21001 • Карты стабильных ночных огней • 18 лет (1992 - 2009) • Покрытие – Россия • Разрешение ~1км/пиксел Разница огней Московской области 1992, 2009 F16, 2009 4801 x 21001
Интерфейс к спутниковым снимкам с использованием Bing Maps http://poseidon.wdcb.ru/maps/bing/MapAppTestPage.aspx http://poseidon.wdcb.ru/maps/google
NCDC Integrated Surface Database Наземные станции Корабли Мобильные устройства Буи • 1901 – 2008 • 30 миллионовсенсоров • 1.7 миллиардовнаблюдений • 470 000 ASCII файлы, упакованные GZip. • 50 GBупакованные; 400 GBраспакованные. Control data section Mandatory data section Section marker Additional data section 0189010020999992007022817004+80050+016250FM-12+000899999V0202201N008019999999N0090001N1+00631+00541098651ADDGA1031+003009999KA1120N+99999... date time lat lon Group marker Parameter group Структура исходных файлов
Проблемные данные Станции Траектории • Много сравнительно небольших одномерных массивов (временной ряд для каждой станции) • Поиск по координатам станций и времени • Моменты измерений для каждой станции различные • Длинный одномерный массив. • Поиск по 3-м параметрам: широта, долгота, время Нужно дополнительное индексирование!