2006 г.
Управление научными данными в следующем десятилетии
Джим Грей, Дэвид Лью, Мария Нието-Сантистебан, Алекс Шейли, Дэвид Девитт, Герд Хебер
Перевод: Сергей Кузнецов
Оригинал: Jim Gray, David T. Liu, Maria Nieto-Santisteban, Alex Szalay, David J. DeWitt, Gerd Heber. Scientific Data Management in the Coming Decade, SIGMOD Record, Vol. 34, No. 4, Dec. 2005
Наука с интенсивной обработкой данных – новая парадигма
Научные инструменты и компьютерное имитационное моделирование порождают громадные объемы данных, для анализа и организации которых требуются новые научные методы. Каждый год объемы данных почти удваиваются. Поскольку новые научные инструменты обладают исключительной точностью, так же быстро улучается качество данных. Для анализа этих данных с целью нахождения тонких эффектов, упущенных в предыдущих исследованиях, требуются алгоритмы, которые одновременно могут работать с огромными наборами данных и обнаруживать при этом очень тонкие эффекты – нужно находить иголки в стоге сена, а также находить сами очень мелкие стога сена, которые остались необнаруженными при предыдущих замерах.
"Сырые" данные, полученные от инструментов и в результате моделирования, обрабатываются конвейерами, которые производят стандартные продукты данных. По терминологии NASA1, сырые данные уровня 0 выверяются и исправляются до наборов данных уровня 1, которые комбинируются с другими данными, порождая наборы данных уровня 2. Большая часть аналитической работы происходит с этими наборами данных уровня 2, а в случае обнаружения аномалий производится "спуск" к данным уровня 1.
Мы полагаем, что в науке большинство новых результатов получается, когда данные анализируются новыми способами. Поэтому в этой статье мы концентрируемся на исследовании данных, интерактивном анализе данных и интеграции данных на уровне 2.
Средства анализа данных не поспевают за нашими возможностями собирать и хранить данные. Многие ученые завидуют времени карандаша и бумаги, когда все данные помещались в рабочей тетради, а анализ выполнялся при помощи логарифмической линейки. Тогда все было проще; можно было полностью сконцентрироваться на научных проблемах без потребности одновременно становиться профессионалом в области информационных технологий с опытом использования загадочных компьютерных средств анализа данных.
Наибольшей брешью анализа данных является этот человеко-машинный интерфейс. Как нам вернуть ученому контроль над своими данными? Как нам построить средства анализа, являющиеся интуитивными и усиливающими интеллект ученого, а не обременяющими его. Реальная проблема состоит в создании интеллектуальной рабочей тетради, которая раскрывает данные и облегчает их фиксацию, организацию, анализ, визуализацию и публикацию.
Эта статья посвящается уровню данных и анализа данных внутри такой интеллектуальной рабочей тетради. Мы утверждаем, что эта интеллектуальная рабочая тетрадь будет обращаться к данным, предоставляемым научными центрами, и будет обеспечивать сообщество средства анализа и вычислительными ресурсами для исследования огромных архивов данных.
Новые методы анализа данных
Потребности в инструментальных средствах и вычислительных ресурсах для выполнения научного анализа данных возрастают даже быстрее объема данных. Это является следствием трех явлений. (1) Для многих усложненных алгоритмов для анализа каждого байта требуется большее число команд. (2) Многие алгоритмы анализа являются суперлинейными, часто требуя для обработки N точек данных N2 или N3 времени. И (3) пропускная способность ввода-вывода отстает от емкости запоминающих устройств. В последние десять лет емкость запоминающих устройств увеличилась более чем в 100 раз, а пропускная способность – только в 10 раз.
Эти три фактора – алгоритмическая сложность, нелинейность и ограничения пропускной способности – означают, что анализ выполняется все большее и большее время. Для решения этих проблем ученым потребуются улучшенные алгоритмы анализа, которые смогут работать с исключительно большими наборами данных в приближенном режиме (со временем выполнения, близким к линейному), и им потребуются параллельные алгоритмы, позволяющие использовать для решения проблемы много процессоров и много дисков, что позволит удовлетворить требования к вычислительной мощности и пропускной способности ввода-вывода.
Научные центры
При наличии петабайтных наборов данных требуется новый стиль работы. Сегодня типичный ученый копирует файлы на локальный сервер и оперирует наборами данных с использованием своих собственных ресурсов. Однако все чаще наборы данных являются настолько большими, а прикладные программы – настолько сложными, что гораздо экономичнее переместить программы к данным и передавать только вопросы и ответа, а не перемещать исходные данные и приложения в локальную систему пользователя.
Научные центры данных, обеспечивающие доступ как к данным, так и к приложениям, которые анализируют данные, развиваются как сервисные станции для некоторой научной области. В каждом из этих научных центров производится управление одним или несколькими массивными наборами данных, а также приложениями, обеспечивающими доступ к этим наборам данных, и поддерживается персонал, который понимает данные и постоянно пополняет и совершенствует наборы данных. Это можно видеть на примерах SDSS в Fermilaba, BaBar в SLACb, BIRN в SDSCc, Entrez-PubMed-GenBank в NCBId, а также многих других наборов данных. Эти центры объединяются на федеративных началах. Например, у BaBar имеется около 25 партнерских сайтов, а у CERN LHCe ожидается много партнерских сайтов Tier1. Несколько партнерских сайтов
имеется у NCBI, а SDSS является частью Международной виртуальной обсерваторииf.
Новый стиль работы в этих научных областях состоит в посылке вопросов приложениям, выполняемым в центре данных, и получении ответов, а не в массивном копировании необработанных данных на локальный сервер для дальнейшего анализа. На самом деле, имеется нарастающая тенденция к сохранению в центре данных персонального рабочего пространства (personal workspace, MyDB) и размещению в нем ответов. Это минимизирует перемещение данных и способствует сотрудничеству группы ученых, производящих совместный анализ. Эти персональные рабочие пространства также служат развитию коллаборации разных групп аналитиков данных. В долговременной перспективе персональные рабочие пространства в центре данных могли бы помогать публикации данных – как научных результатов экспериментов или исследований, так и программ, использованных для их получения – в публичных базах данных, доступных только для чтения.
Многие ученые предпочтут выполнять свою аналитическую работу в центрах данных, поскольку это избавит их от необходимости управлять локальным хозяйством данных и компьютеров. Некоторые ученые могут доставлять небольшие фрагменты данных "домой" для локальной обработки, анализа и визуализации – но будет иметься возможность делать все это в центре данных, используя персональное рабочее пространство.
Если ученый желает сопоставить данные из двух разных рабочих центров, нет другого варианта, кроме как переместить часть данных из одного места в другое. Если это становится общепринятым, эти два центра данных, вероятно, образуют федерацию, чтобы обеспечивать взаимное резервное копирование, поскольку трафик передачи данных будет оправдывать затраты на это копирование.
Для работы с петабайтными наборами данных потребуется 1000-10000 дисков и тысячи вычислительных узлов. В каждый момент времени некоторые диски и узлы будут находиться в неработоспособном состоянии. В таких системах должен иметься механизм, предотвращающий потерю данных и обеспечивающий доступность даже в условиях неполной конфигурации – требуется система самовосстановления. В этом обсуждении предполагается реплицирование данных центра данных в различных географических местоположениях. Географическая репликация обеспечивает доступность данных и предотвращает их потери. Внутри центра данных избыточность можно комбинировать с разумной стратегией разделения для защиты от сбоя на уровне котроллера или сервера. При двойном сохранении данных для обеспечения избыточности можно использовать разные организации копий (например, пространственное разделение в одной копии и разделение по времени – в другой) для повышения производительности системы. Поврежденные данные должны автоматически восстанавливаться на основе избыточных
копий без прерывания доступа к базе данных, во многом подобно тому, что сегодня делается в дисковых массивах RAID5.
Во всех этих сценариях постулируются простой доступ к данным, взаимообмен и интеграция. Чтобы это было возможно, данные должны быть самоописываемыми. Эти самоописания, или метаданные находятся в центре всех этих сценариев; они обеспечивают понимание данных общими инструментальными средствами и людьми.
Метаданные делают возможным доступ к данным
Матаданные – это описательная информация о данных, которая объясняет измеряемые атрибуты, их имена, единицы измерения, точность, формат данных и, в идеале, намного больше. Наиболее важно то, что метаданные включают информацию о происхождении данных, описывающую, как измерялись, получались или вычислялись данные.
Если данные должны анализироваться с помощью общих инструментальных средств, то эти средства должны "понимать" данные. Вы не можете просто предоставить инструменту набор байт и ожидать, что ему удастся понять, что означают эти данные. Инструменту понадобятся метаданные.
В качестве простого примера рассмотрим некоторый файл. Вы ничего не можете сказать про него – это может быть все, что угодно. Но если вам скажут, что это JPEG, то вы будете знать, что это растровое изображение в формате JPEG. Файлы JPEG начинаются с заголовка, который описывает структуру файла, а часто сообщает и модель фотокамеры, время и программу, сгенерировавшую снимок. Многим программам известно, как читать файлы JPEG, а также как производить новые файлы JPEG, которые включают метаданные, описывающие характеристики нового изображения. Аналогичные роли играют музыкальные файлы MP3 и файлы документов PDF – у каждого из них имеется стандартный формат, каждый содержит некоторые метаданные, и для каждого имеется набор приложений для обработки и генерации файлов данного класса.
Если ученым требуется читать данные, собранные другими учеными, то эти данные должны тщательно документироваться и публиковаться в формах, допускающих простой доступ и автоматическое манипулирование. В идеальном мире имелись бы мощные инструментальные средства, облегчающие фиксацию, организацию, анализ, визуализацию и публикацию данных. Эти средства осуществляли бы интеллектуальный анализ данных (data mining) и обучались бы на основе этих данных (machine learning), и было бы нетрудно создавать скрипты, описывающие потоки работ по анализу данных. Для автоматизации этих средств существенно наличие хороших метаданных. Сохранение и пополнение этих данных в процессе обработке (происхождение данных) составят основное преимущество инструментальных средств следующего поколения.
Все данные, порождаемые из научных продуктов, также должны тщательно документироваться и публиковаться в формах, допускающих простой доступ. В идеале, многие из этих метаданных должны были бы генерироваться автоматически и управляться в составе потока работ, снижая интеллектуальную нагрузку на ученого.
Семантическая конвергенция: числа в объекты
Многие научные данные представляются в форме числовых массивов, генерируемых инструментами или моделями. Выявлены простые и удобные модели данных для представления таких массивов и связей между ними. Эти модели данных могут также представлять происхождение данных и другие метаданные путем включения в файлы комментирующего текста, определений данных и таблиц данных. Хорошими примерами таких стандартов являются HDF, NetCDF и FITS. Каждый из них включает библиотеку, которая инкапсулирует файлы и обеспечивает плаформенно-независимый способ чтения подмассивов, а также создания и обновления файлов. Каждый из этих стандартов дает ученым возможность простого обмена данными. Поверх стандартов построены общие средства анализа и визуализации соответствующих высокоуровневых форматов файлов.
В то время как в коммерческом мире придерживаются стандартов реляционной модели данных и SQL, в научном сообществе ни один стандарт или инструмент не набрал аналогичной критической массы. Ведется много параллельных и конкурирующих работ по созданию таких инструментальных средств – по меньшей мере, по одной для каждой дисциплины. Обмен данными вне каждой группы является проблематичным. Поскольку обмен данным между научными дисциплинами становится все более важным, в следующем десятилетии, вероятно, появится общий, подобный HDF формат и пакет для всех наук.
В каждой дисциплине появляются определения общей терминологии (измерения и единицы измерений). Мы наиболее близко знакомы со словарем Universal Content Descriptors (UCD) астрономического сообщества, в котором определяется около тысячи астрофизических измерений, единиц измерения и понятий. Почти в каждой дисциплине ведет работа по созданию аналогичной онтологии (называемой также управляемым словарем). Это значительно облегчит построение инструментальных средств, поскольку общее согласие относительно этих понятий может помочь при разработке средств анализа. В дополнение к стандартизации, пригодные для использования компьютерами онтологии помогут построить Semantic Web: приложения станут совместимыми на семантическом уровне, а не только синтаксически совместимыми, как это возможно при использовании текущего поколения Web-сервисов на основе типизированных интерфейсов. Однако пройдет некоторое время, прежде чем появятся и будут интегрированы со средствами анализа данных высокопроизводительные процессоры онтологий общего назначения.
С другой стороны, у пользователей баз данных имеется хорошая возможность прототипирования таких приложений: схема базы данных, не являясь полной онтологией, может быть ценным фрагментом онтологии. Для реализации элементарной семантической алгебры может использоваться SQL. Интеграция XML в современных системах управления базами данных (СУБД) открывает двери для существующих стандартов RDF и OWL. Визуализация или, еще лучше, визуальное исследование представляют собой простые примеры приложений, успех которых определяется возможностью отображения вопроса, сформулированного в концептуальной среде онтологии предметной области, в запрос(ы) сервера анализа (мета)данных. В настоящее время целевым "языком ассемблера", пригодного для использования в этом процессе трансляции, является гибрид SQL и XQuery.
Метаданные делают возможной независимость данных
Разделение данных и программ является искусственным – никто не может увидеть данные без использования программ, и большинство программ управляется данными. Поэтому парадоксальным фактом является то, что сообщество управления данными уже 40 лет пытается достичь нечто, называемое независимостью данных – явное отделение программ от данных. В системах баз данных обеспечиваются два вида независимости данных, называемые физической независимостью данных и логической независимостью данных.
У физической независимости данных имеется много различных форм. Однако во всех случаях целью является возможность изменения организации физических данных без нарушения работоспособности любой прикладной программы, зависящей от старого формата данных. Одним из примеров физической независимости данных является возможность системы баз данных разделить строки некоторой таблицы между несколькими дисками и/или несколькими узлами кластера без потребности модификации какого-либо приложения. Другим важным примером физической независимости данных является отображение полей каждой строки реляционной таблицы на разные диски. Хотя в системе баз данных каждая строка может отображаться на непрерывный контейнер хранения (например, запись) одной дисковой страницы, возможен также вариант, когда крупные атрибуты таблицы, обращения к которым происходят не очень часто (соответствующие большим текстовым объектам, изображениям JPEG или многомерным массивам), хранятся в отдельных контейнерах разных дисковых страниц и/или разных томов для максимизации общей производительности системы. И снова подобные оптимизации физического хранения данных реализуются таким образом, чтобы быть совершенно прозрачными для прикладных программ, за исключением, возможно, изменения их производительности. В качестве аналога из научной области можно рассмотреть прикладную программу, в которой используется структура языка C для описания записей данных на диске, и физическая организация этих записей изменяется без потребности в переписывании и даже перекомпиляции прикладной программы (или любого другого приложения, обращающегося к тем же данным). При допущении применения таких методов физическая независимость данных позволяет добиться повышения производительности за счет распараллеливания, достигаемого путем реорганизации данных – без дополнительных усилий или с небольшими усилиями со стороны ученых.
В современных системах баз данных также обеспечивается логическая независимость данных, которая изолирует программу от изменений в логической организации базы данных – позволяя разработчиками добавлять и удалять в базе данных связи и информацию. В то время как физическая независимость данных используется для сокрытия изменений в физической организации данных, логическая независимость данных скрывает изменения в логической организации данных. Логическая независимость данных обычно поддерживается с использованием представлений (view). Представление определяет виртуальную таблицу, специфицируемую с использованием SQL-запроса над одной или несколькими базовыми таблицами и/или представлениями. Представления служат нескольким целям, включая повышение уровня безопасности (путем сокрытия атрибутов от приложений и пользователей, не обладающих истинной потребностью доступа к этим атрибутам) и улучшение производительности (путем материализации представлений, определенных с использованием сложных SQL-запросов над очень большими таблицами). Но, прежде всего, представления используются для обеспечения корректного функционирования старых программ даже при реорганизации используемой ими баз данных. Например, рассмотрим программу, корректное выполнение которой зависит от некоторой таблицы T, которую администратор желает реорганизовать путем вертикального разделения на две части, сохраняемые в таблицах T' и T''. Для сохранения работоспособности приложений, зависящих от T, администратор может определить над T' и T'' представление, соответствующее исходному определению таблицы T, что позволит старым программам продолжать корректно функционировать.
Кроме того, данные эволюционизируют. Системы переходят от использования кодировки EBCDIC к ASCII, а затем к Unicode, от проприетарных форматов плавающих чисел к формату IEEE, от марок к евро, от восьмисимвольных имен в кодировке ASCII к тысячесимвольным именам в кодировке Unicode. Важно обеспечить выполнение этих изменений таким образом, чтобы не разрушить миллионы строк существующих программ, для которых желательно видеть эти данные по-старому. Для решения этих проблем используются представления, динамически транслирующие данные в соответствующие форматы (производя преобразования между символьными и числовыми видами, между почтовыми кодами, состоящими из шести и девяти цифр, между длинными и короткими именами, и скрывая от старых программ новую информацию). Проблема двухтысячного года (преобразование двухсимвольного формата года в четырехсимвольный формат) продемонстрировала большинству организаций важность независимости данных.
Для реализации и логической, и физической независимости данных в системах баз данных используется схема. В схеме базы данных сохраняются все метаданные, включая определения таблиц и представлений, а также информация о существующих индексах и о том, как таблицы отображаются на тома внешней памяти (и узлы в среде параллельных баз данных). Для независимости данных важно отделить данные и метаданные от программ, манипулирующих этими данными. В противном случае другие программы, по существу, не могли бы найти эти метаданные, что, в свою очередь, не позволило бы нескольким программам совместно использовать общую базу данных.
Разделение программ и данных совершенствуется в объектно-ориентированном подходе. Классы данных, инкапсулирующие методы, обеспечивают независимость данных и существенно облегчают эволюцию данных без затрагивания программ. Так что эти идеи все еще развиваются. Но ключевая идея этого раздела состоит в том, что для обеспечения независимости данных существенным является наличие явного и стандартного уровня доступа к данным с четкими метаданными и явным доступом к данным.
Доступ к данными, ориентированный на множества, обеспечивает параллелизм
Как отмечалось ранее, ученые часто начинают работу с использования массивов данных, полученных от приборов или моделей. Часто эти массивы сопровождаются табличными данными, описывающими экспериментальную установку, параметры моделирования или условия окружающей среды. Данные также сопровождаются документами, разъясняющими эти данные.
Эти массивы являются аргументами многих операций, которые производят новые массивы, но, в конце концов, массивы подвергаются процедуре выделения признаков (feature extraction), которая производит объекты, являющиеся основой дальнейшего анализа. Например, необработанные астрономические данные преобразуются в объекты-каталоги звезд и галактик. Данные, поступающие из прибора для измерения скорости течения воды, преобразуются в данные временных рядов о скорости потока и качестве воды, масс-спектрограммы сыворотки крови преобразуются в записи, описывающие концентрацию пептида и белка, и необработанные данные физики высоких энергий преобразуются в события.
Большинство научных исследований включает изучение и интеллектуальный анализ (data mining) этих объектно-ориентированных табличных наборов данных. Научные форматы файлов HDF, NetCDF и FITS могут представлять табличные данные, но они обеспечивают лишь минимальные инструментальные средства для поиска в табличных данных и их анализа. Основная цель этих стандартов и инструментов состоит в том, чтобы обеспечить возможность размещения таблиц и подмассивов в адресном пространстве программных сред Fortran/C/Java/Python, в которых можно манипулировать данными с использованием языка программирования.
Этот процедурный анализ данных на основе Fortran/C/Java/Python в режиме "файл за файлом" приближается к критической точке. Лавина данных порождает миллиарды файлов и триллионы событий. В подходе, ориентированном на файлы, постулируется, что файлы объединяются в каталоги. Каталог объединяет все данные от некоторого инструмента, или данные за некоторый месяц, или данные из некоторого региона, или из данные некоторой лаборатории. Со временем каталоги становятся иерархическими. В этой модели анализ данных производится путем поиска всех уместных файлов – открытия каждого файла, извлечения нужных данных и перехода к следующему файлу. Когда все нужные данные накапливаются в памяти (или в промежуточных файлах), программа может начать их анализировать. Выполнение такого анализа в стиле сначала фильтрация, затем анализ с применением традиционных процедурных инструментальных средств происходит все медленнее и медленнее по мере возрастания объема данных. Обычно в каждый момент времени используется один процессор и один диск, и применяются очень грубые методы поиска. Ученым требуется подход с использованием (1) разумных индексов и методов организации данных для сокращения объема поиска; (2) параллельной обработки и доступа к данным для выполнения поиска в огромных наборах данных в пределах секунд; (3) мощных средств анализа, которые можно было бы применить к поднабору анализируемых данных.
Один из подходов состоит в использовании среды параллельного программирования MPI (Message Passing Interface) для написания процедурных программ, которые прогоняют файлы сквозь массив процессоров – каждый узел массива анализирует одну часть иерархии. Это подходит для очень регулярных задач обработки массивов, но кажется не слишком пригодным для непредвиденного анализа табличных данных. В MPI и различных форматах массива файлов отсутствует поддержка методов индексирования, возможно только разделенное последовательное сканирование. В самом MPI отсутствует какое-либо понятие метаданных, кроме имен файлов.
В связи с разрастанием файловых систем до петабайтных архивов с миллиардами файлов научное сообщество должно произвести синтез на основе систем баз данных и файловых систем. Как минимум, иерархия файлов будет заменена базой данных, каталогизирующей атрибуты и происхождение каждого файла. Обработка файлов, ориентированная на множества, сделает имена файлов все более неуместными – анализ будет применяться "ко всем файлам с указанными атрибутами", а не опираться на указываемый список имен или шаблонов имен файлов/каталогов. На самом деле, неуместными могут стать и сами файлы (они представляют собой всего лишь контейнеры данных). Можно считать предвестником этой идеи подход Map-Reduce, впервые предложенный в Google2. С нашей точки зрения, ключевым аспектом Map-Reduce является то, что в нем применяются тысячи процессоров и дисков для параллельного исследования больших наборов данных. В этой системе имеется очень простая модель данных, подходящая для обработки в стиле Google, но мы полагаем, что в следующем десятилетии она разовьется в достаточно общую модель.
Сообщество баз данных обеспечивает автоматическое выполнение запросов с распараллеливанием на уровнях процессорной обработки и ввода-вывода в течение более десяти лет. Это автоматическое распараллеливание сегодня дает возможность крупных корпорациям обрабатывать 100-терабайтные набора данных с использованием 1000-процессорных кластеров. Мы полагаем, что многие из этих методов применимы и к научным наборам данных3.
Другие полезные возможности баз данных
Системы баз данных приближаются к решению проблемы управления данными петабайтного масштаба, руководствуясь потребностями управлять гигантскими хранилищами информации в коммерческих и правительственных организациях. Эти системы скрывают понятие файла и работают с коллекциями данных. Они могут образовывать федеративные объединения многих различных источников, позволяя программам видеть их как единую коллекцию данных. Они также позволяют программам опираться на любые атрибуты данных.
Системы баз данных обеспечивают очень мощные средства определения данных для специфицирования абстрактных форматов данных и способов организации данных. Они позволяют реплицировать данные, так что их можно организовывать несколькими способами (по времени, по пространственному расположению, по другим атрибутам). Эти методы простираются от простых индексов до материализованных представлений, в которых могут комбинироваться данные из многих источников.
Системы баз данных обеспечивают мощный ассоциативный поиск (поиск по значению, а не по местоположению), а также автоматические параллельные доступ и исполнение, что существенно для анализа петабайтных данных. Они обеспечивают непроцедурный и параллельный поиск данных для быстрого нахождения поднаборов данных, а также много инструментальных средств для автоматического проектирования структур данных и управления ими.
Кроме того, удалось достичь громадного прогресса в анализе данных с использованием кубов данных, и теперь исследования фокусируются на интеграции алгоритмов машинного обучения, которые выводят тенденции, производят кластеризацию данных и обнаруживают аномалии. Все эти средства нацелены на облегчение анализа коммерческих данных, но они равно применимы и к анализу научных данных.
Конец потери соответствия
Традиционные табличные системы баз данных пригодны для анализа объектов (галактик, спектров, белков, событий и т.д.). Но даже в этих случаях поддержка временных рядов, пространственных, текстовых и других типов данных оказывается недостаточной. В системах баз данных традиционно не поддерживается основной научный тип данных – N-мерный массив. В большинстве систем массивы приходится маскировать под blob’ы (binary large objects). Этот набор проблем обычно называют потерей соответствия – имея в виду несоответствие между моделью программирования и возможностями базы данных. Потеря соответствия затрудняет отображение многих научных приложений на традиционные табличные системы баз данных.
Но системы баз данных меняются. Они интегрируются с языками программирования, чтобы обеспечить поддержку объектно-ориентированных баз данных. Это новое поколение объектно-реляционных систем баз данных воспринимает любой тип данных (будь то обычное плавающее число, массив, строка символов или составной объект, такой как XML- или HTML-документ) как инкапсулированный тип, значения которого могут храниться в поле записи. В действительности, эти системы позволяют либо сохранять значение прямо в записи (встроенным образом), либо хранить в записи ссылку на реальное место хранения этого значения (связанным образом). Эта объектная модель с возможностями связывания и встраивания хорошо подходит для интеграции систем баз данных и файловых систем – файлы рассматриваются как связанные объекты. Запросы могут читать и писать эти расширенные типы с использованием тех же методов, что и для обычных типов. На самом деле, мы ожидаем, что в большинстве систем баз данных к набору типов будут добавлены HDF и другие форматы файлов.
Как только вы сможете поместить свои типы и программы внутрь базы данных, вы получите преимущества параллелизма, непроцедурных запросов и независимости данных, присущие традиционным системам баз данных. Мы полагаем, что эта интеграция баз данных, файловых систем и языков программирования будет в будущем ключом к управлению данными и обеспечению доступа к данным в петабайтных системах управления базами данных.
Что неладно с файлами?
Все строится на основе файлов. В HDF используются файлы. В системах баз данных используются файлы. Но в файловых системах отсутствуют метаданные, кроме иерархической структуры каталогов и имен файлов. В них поддерживается модель данных "сделай сам", которой не принесет пользу разрастающийся набор средств анализа данных. В них поддерживаются методы доступа "сделай сам", которые не будут обеспечивать параллельный, ассоциативный, темпоральный или пространственный поиск. В них также отсутствует высокоуровневый язык запросов. Наконец, большинство файловых систем может управлять миллионами файлов, но к тому времени, когда файловая система сможет работать с миллиардами файлов, она станет системой баз данных.
Как вы можете видеть, мы придерживаемся экуменических представлений о том, что такое база данных. Мы рассматриваем NetCDF, HDF, FITS и Google Map-Reduce как зарождающиеся системы баз данных (другие люди могут расценивать их как файловые системы). У них имеется язык схемы (метаданных) для определения метаданных. У них имеются несколько стратегий индексирования и простой язык манипулирования данными. У них имеются зачатки непроцедурного и параллельного программирования. И у них есть набор средств для создания, доступа, поиска и визуализации данных. Так что, с нашей точки зрения, они являются простыми системами баз данных.
Почему ученые не используют базы данных сегодня
Традиционные системы баз данных отстают в поддержке основных научных типов данных, но в них имеется несколько свойств, очень сильно требуемых для выполнения анализа научных данных: анализ на основе непроцедурных запросов, автоматический параллелизм и развитые средства ассоциативного, темпорального и пространственного поиска.
Если вооружиться той дискуссионной точкой зрения, что HDF, NetCDF, FITS и Rootg являются зарождающимися системами баз данных, которые обеспечивают метаданные и переносимость, но в которых отсутствует анализ на основе непроцедурных запросов, автоматическое распараллеливание и развитая индексация, то можно увидеть достаточно ясный путь к интеграции этих сообществ.
Некоторые ученые используют базы данных для некоторых работ, но, как правило, большинство ученых базами данных не пользуется. Почему? Почему табличные базы данных настолько успешно используются в коммерческих приложениях и терпят такой провал в большинстве научных приложений? Когда спрашиваешь коллег-ученых, почему они не используют базы данных для управления своими данными, обычно дается один или несколько из следующих ответов:
- Мы не видим в них никаких преимуществ. Как кажется, издержки на изучение инструментальных средств (определение данных, загрузка данных, запросы) того не стоят.
- В них не предлагаются хорошие средства визуализации/построения диаграмм.
- Я могу справиться со своими объемами данных с использованием языка программирования.
- В них не поддерживаются наши типы данных (массивы, пространственные, текстовые типы и т.д.).
- В них не поддерживаются наши паттерны доступа (пространственные, темпоральные и т.д.).
- Мы пробовали с ними работать, но они слишком медленные.
- Мы пробовали с ними работать, но как только мы загрузили свои данные, мы больше не смогли манипулировать данными с использованием наших стандартных прикладных программ.
- Для их использования требуется дорогостоящие гуру (администраторы баз данных).
Все эти ответы основываются на опыте и существенных инвестициях. Часто этот опыт приобретался на основе использования устарелых систем (систем баз данных урожая 1990 г.) или чересчур молодых систем (ранней объектно-ориентированной базы данных или ранней версии Postgres или MySQL). Тем не менее, достаточно очевидно, что базы данных должны быть существенно усовершенствованы, прежде чем они заслужат повторного внимания.
Почему обстоятельства теперь изменились
Обстоятельством, которое вынуждает выполнить вторую попытку, является то, что modus operandi (образ действия) "file-ftp" просто не будет работать для петабайтных наборов данных. Требуется некоторый новый способ управления информацией и доступа к ней. Мы утверждаем, что ключом к этому являются метаданные, и что непроцедурный язык манипулирования данными в комбинации с индексированием данных играет основную роль в обеспечении поиска и анализа данных.
Имеется конвергенция файловых систем, систем баз данных и языков программирования. В расширяемых системах баз данных используются объектно-ориентированные приемы из языков программирования, позволяющие определять сложные объекты как естественные типы базы данных. Файлы (или расширенные файлы, подобные HDF) становятся тогда частью базы данных и получают преимущества от параллельного поиска и управления метаданными. Очень вероятно, что эти зарождающиеся системы баз данных в следующем десятилетии будут интегрироваться с "магистральными" системами баз данных, и что некоторые новые разновидности управляемых метаданными систем анализа и управления потоками работ вытеснят как традиционные базы данных, так и научные форматы файлов и сопутствующие им наборы инструментальных средств.
Некоторые намеки на успех
Имеются начальные признаки того, что этот подход является правильным. Один из нас показал, что проводить анализ поверх системы баз данных оказывается несравненно проще и гораздо быстрее, чем на основе подхода, ориентированного на файлы4. Ускорение обеспечивается за счет улучшенного индексирования и параллелизма.
Имеется также значительный успех в добавлении определяемых пользователями функций и хранимых процедур к астрономическим базам данных. Проекты MyDB и CasJobs для Sloan Digital Sky Survey обеспечивают хороший пример перемещения программ к базе данных5.
В экспериментах проекта BaBar в SLAC производится управление петабайтным хранилищем событийных данных. В системе используется комбинация Oracle для управления некоторыми архивами файлов и физической системы анализа данных Root6.
В системе управления потоками работ GridDB7 роль систем баз данных расширяется на конвейерную обработку, область, традиционно обслуживаемую промежуточным "процессо-центрическим" программным обеспечением8, 9. Такое промежуточное программное обеспечение автоматически распараллеливает потоки работ императивных, основанных на файлах программ (написанных, например, на Fortran/C/Python/Java) за счет использования "схемы потока работ", описывающей программы и их зависимости. В GridDB для совершенствования конвейерной обработки используются методы баз данных; более точно, используются схемы, которые содержат информацию не только о потоках работ, но и о данных (т.е. схему базы данных). Комбинация схем потока работ и базы данных позволяет обеспечить декларативные интерфейсы и улучшить согласованность и производительность конвейерной обработки.
При адаптивном моделировании методом конечных элементов тратится значительное время и требуется работа по программированию на обеспечение ввода, вывода и на установку контрольных точек. Мы (Хебер) используем базу данных для представления крупных моделей конечных элементовh. Исходная модель представляется в базе данных, и в базу данных записывается каждая контрольная точка и каждый шаг анализа. Использование базы данных позволяет осуществлять запросы для определения более совершенных разбиений сетки, а также применять параллельный индексный доступ к модельным данным для управления визуализацией и вычислениями. В каждом коммерческом пакете конечных элементов используется некоторая проприетарная форма "базы данных". Однако у них ограничены область применения, функциональные возможности и масштабируемость, и обычно они скрываются внутри конкретного стека приложений. Каждый исполнитель задания MPI получает из базы данных свой раздел (по запросу) и выгружает в базу данных свои результаты. Объем этих данных на два-четыре порядка больше объема входной сетки, что порождает проблемы с производительностью как в традиционной среде, так и в среде базы данных. Дополнительным преимуществом подхода с применением базы данных является то, что средства визуализации могут отслеживать вычисления и управлять ими путем чтений из базы данных и записи в нее. Наконец, хотя мы фокусировались на возможности баз данных упросить и ускорить получение необработанных модельных данных, мы не можем преуменьшить важность основной характеристики подхода: обеспечение интерфейсов для декларативного анализа данных. Большую часть своего времени ученые посвящают работе именно с такими средствами. Мы надеемся применить аналогичные идеи в некоторых исследованиях турбулентности, выполняемых в Johns Hopkinsi.
Заключение
Научные центры, управляющие научными данными и обслуживающие их, возникают вокруг научных инструментов следующего поколения. Прототипами этой тенденции могут служить сообщества Всемирного телескопаj, GenBank и BaBar. Одна группа ученых собирает данные и управляет этими архивами. Более крупная группа ученых исследует эти архивы таким же образом, как предыдущие поколения исследовали свои частные данные. Результаты анализа часто возвращаются в архив и добавляются в общий фонд данных.
Поскольку коллекция данных теперь отделяется от анализа данных, требуются обширные метаданные, описывающие данные в стандартных терминах, чтобы люди и программы могли понимать данные. Наличие хороших метаданных становится основным условием совместного использования данных в разных научных дисциплинах и различных средствах анализа и визуализации данных.
Имеется конвергенция зарождающихся баз данных (HDF, NetCDF, FITS,..), которые фокусируются, прежде всего, на аспектах метаданных и обмена данными, и традиционных систем управления базами данных (SQL и др.), которые ориентированы на управление и анализ сверхбольших наборов данных. Достоинствами традиционных систем являются автоматическое распараллеливание, индексирование и непроцедурный доступ, но от них требуется включение типов данных научного сообщества и обеспечение сосуществования с данными файловых систем. Мы полагаем, что этот синтез станет возможен за счет расширения систем баз данных путем объединения баз данных с языками программирования, чтобы можно было встроить в систему управления данными новый тип или связать систему с новым типом.
Для научного анализа ключевое значение будут иметь три технических достижения: (1) обширные метаданные и стандарты метаданных, которые облегчат обнаружение существования данных, понимание данных людьми и программами и отслеживание происхождения данных; (2) искусные средства анализа, которые позволят ученым легко задавать вопросы и понимать и визуализировать ответы; (3) ориентированный на множества параллельный доступ к данным, который поддерживается новыми индексными схемами и новыми алгоритмами, позволяющими в интерактивном режиме исследовать петабайтные наборы данных.
Целью является интеллектуальная рабочая тетрадь, которая поможет ученым исследовать мировые данные. Центральную роль в обеспечении таких рабочих тетрадей будут играть научные центры данных с вычислительными ресурсами, предназначенными для изучения громадных архивов данных. Поскольку объемы данных исключительно велики, а пропускная способность ввода-вывода недостаточна, для достижения приемлемой производительности существенно перемещение кода к данным. Следовательно, научные центры будут оставаться основными движущими средствами, а федерации, по-видимому, будут играть вторичную роль. Научные центры будут обеспечивать как архивы и исходную инфраструктуру для разработки этих петабайтных архивов, так и алгоритмы и инструментальные средства для их анализа.
Примечания
1 Committee on Data Management, Archiving, and Computing (CODMAC), Data Level Definitions
2 "MapReduce: Simplified Data Processing on Large Clusters", J. Dean, S. Ghemawat, ACM OSDI, Dec. 2004
3 "Parallel Database Systems: the Future of High Performance Database Systems", D. DeWitt, J. Gray, CACM, Vol. 35, No. 6, June 1992
4 "When Database Systems Meet the Grid", M. Nieto Santisteban et. al., CIDR, 2005
5 "Batch is back: CasJobs serving multi-TB data on the Web", W. O’Mullane, et. al, in preparation.
6 "Lessons Learned from Managing a Petabyte", J. Becla and D. L. Wang, CIDR, 2005
7 D. T. Liu and M. J. Franklin, VLDB, 2004
8 M. Litzkow, M. Livny and M. Mutka, Condor – A Hunter of Idle Workstations, International Conference of Distributed Computing Systems, 1988.
9 I. Foster and C. Kesselman, Globus: A Metacomputing Infrastructure Toolkit, Journal of Supercomputer Applications and High Performance Computing, 1997.
Примечания переводчика
a Международный астрономический проект Sloan Digital Sky Survey
b SLAC – Stanford Linear Accelerator Center, BaBar – международный проект в области физики высоких энергий, основанный на использовании детектора BaBar в SLAC.
c SDSC – San Diego Supercomputer Center, BIRN – Biomedical Informatics Research Network
d NCBI – National Center for Biotechnology Information.
e LHC – Large Hadron Collider.
f International Virtual Observatory Alliance.
g ROOT.
h Мне удалось найти в Internet только одну презентацию, посвященную этой работе.
i На сайте группы из университета Johns Hopkins, специализирующейся на исследованиях турбулентности, пока отсутствует какая-либо информация по этому поводу.
j См, например, здесь.