Современные информационные технологии/
3.Программное обеспечение
Утарбаев К.К.
Западно-Казахстанский инженерно- гуманитарный университет
Зависимость методики анализа больших
объёмов данных от степени структурированности данных
Проблема
предоставления больших данных для анализа является одной из важнейших проблем,
возникающих перед крупномасштабным (large scale)
анализом данных. Стандартный подход к решению проблемы предоставления больших
данных для анализа заключается в использовании системы управления базами данных
(СУБД) для управления хранением данных.
При высокой структурированности данных
предпочтительным становится применение СУБД, а при низкой - систем облачных
вычислений. Обычные СУБД не способны справляться с большими объёмами данных,
поэтому применяется специализированный класс параллельных СУБД (PDBMS). Параллельные СУБД требуют для своей работы кластерную
среду, состоящую из множества узлов. Системы облачных вычислений в основе имеют
распределенную и виртуализированную архитектуру.
Для того чтобы провести правильное
сравнение облачных технологий и параллельных СУБД обратимся к теореме CAP предложенной Fox A. и Brewer E.A..
Согласно теореме в каждой системе можно
достичь не более двух и следующих трех свойств: согласованность данных (consistency),
доступность, устойчивость к разделению (partition tolerance). Возможно
построение систем с разными характеристиками в зависимости от выбранных
свойств. При выборе согласованности данных и доступности возможно построение
одиночной СУБД или кластерной СУБД с использованием двухфазовой фиксации (commit) (которая не является устойчивой к разделению). Для
достижения согласованности данных и устойчивости к разделению можно
использовать распределенные блокировки и согласующие алгоритмы. Доступность
уменьшается из-за блокировок и недоступности небольшого числа разделов.
Наконец, если отказаться от согласованности для получения высокой доступности и
устойчивости к разделению, то становится возможным построение систем типа DNS. В этом случае используются техники связанные с
несогласованностью (leases) и разрешением конфликтов.
Для построения крупномасштабных
распределенных систем требуется устойчивость к разделению т.к. в них
гарантировано случаются сетевые сбои. Обычно предпочтение отдается облачным
системам т.к. они являются экономически более доступными.
Ввиду высокой экономической доступности
облачных систем предпочтение обычно отдается им, особенно в веб-приложениях. С
другой стороны PDBMS являются развитием
традиционных баз данных и выбираются в случаях, когда необходима
согласованность данных.
Есть две философии проектирования BASE и ACID.
В случае использования BASE требования к приложению должны быть тщательно
изучены, чтобы решить проблему согласованности данных, которая не решается
системой автоматически.
Плюсами будет повышенная масштабируемость.
При использовании ACID отпадают проблемы согласованности данных, но
производительность ограничивается общей сериализуемостью.
Облачные вычисления и большая часть PDBMS предназначены для разных целей. Облачные технологии
используются главным образом для OLAP, а PDBMS для OLTP, но есть
также специализированные базы данных предназначенные и для OLAP.
PDBMS используют традиционную реляционную модель данных. В
этом смысле облачные системы более гибкие и предоставляют комплексные модели
данных (т.е. вложенные). Методы выражения запросов кардинально разные:
параллельные базы данных используют SQL и
select-project-join запросы, а облачные системы используют UDF и пользовательские трансформации. Это результат
соответствующих им назначений, которые немного различаются: параллельные базы
данных управляют крупномасштабными данными, а облачные системы анализируют
крупномасштабные данные.
Взаимодействие с системами тоже
различается. Облачные системы не требуют предопределения схемы данных.
Пользователь избавляется от бремени загрузки данных в rigid-таблицы и сразу же
может приступать к анализу. Если результаты достаточно хороши, то анализ может
быть повторен и улучшен со временем. Такой подход более быстр и гибок и лучше
отвечает на изменения по сравнению с традиционным подходом баз данных.
Не все согласны с преимуществами облачных
систем. Продолжается обсуждения, в которых пытаются определить лучший подход.
Основная критика приходится на неэффективность brute force подхода в сравнении
с технологиями баз данных. В целом в облачных вычислениях не используются
результаты многолетних исследований в области баз данных.
Сторонники облачного подхода утверждают,
что не каждая задача, связанная с данными может быть решена посредством СУБД.
Кроме того SQL и реляционная модель не всегда
является лучшим решением. Фактически также считают в сообществе баз данных.
По этим причинам многие нереляционные
базны данных получили широкое распространение в сети. Так называемое движение
«NoSQL» синтезирует эту тенденцию. Жертвуя возможность выполнения joins и ACID
свойствами в пользу производительности и масштабируемости происходит возврат к
более простой key-value архитектуре. Логика приложений часто слишком сложна,
чтобы быть выраженной в реляционных терминах (the impedance mismatch problem).
Программисты обычно используют «binary blobs» хранящиеся в таблицах и получают
доступ к ним через первичный ключ.
В декларативные языки типа SQL программистам часто приходится давать «подсказки»
оптимизатору для достижения оптимального плана выполнения запроса. Это проблема
становится более очевидной по мере того как растет размер данных. В этих случая
передача управления программисту обычно наилучший вариант.
Следующая таблица резюмирует относительные
преимущества каждой системы.
|
Параллельные базы данных |
Облачные вычисления |
|
Широкое назначение (анализ и обновление
данных, пакетный и интерактивный подходы) |
Предназначены для масштабирования на
крупных commodity-кластерах |
|
Высокая сохранность данных посредством ACID-транзакций |
Очень высокая доступность и
отказоустойчивость |
|
Инструментальные средства (загрузка,
менеджмент, отчетность, интеллектуальный анализ данных, визуализация
данных) |
Гибкая модель данных, во время загрузки
нет необходимости конвертировать данные в нормализованную схему |
|
Стандартный, декларативный и
высокоуровневый язык запросов: SQL |
Полная интеграция с популярными языками
программирования |
|
Автоматическая оптимизация запросов |
Полный контроль над производительностью |
Литература:
1.
Fox A., Brewer E.A. Harvest, Yield, and Scalable Tolerant Systems. //
HOTOS ’99: Proceedings of the the 7th Workshop on Hot Topics in Operating
Systems. – IEEE Computer Society, March 1999. – P. 174-178.
2. Gilbert S., Lynch N. Brewer’s
conjecture and the feasibility of consistent, available, partition-tolerant web
services. // SIGACT News. – June 2002. – Vol. 33. – No. 2. – P. 51-59.
3.Черняк Леонид, «Большие Данные —
новая теория и практика (рус.)» // Открытые системы. СУБД. — М.: Открытые системы, 2011. — № 10. — ISSN 1028-7493